Crash e segnalazione di errori allo sviluppatore [dal punto di vista dell'utente]

3

Ho alcune domande riguardanti l'arresto anomalo o la segnalazione di errori all'utente. Stiamo sviluppando un sito Web e client mobili in cui consentiamo ai nostri utenti di segnalare eventuali bug e arresti anomali tramite e-mail. Richiediamo all'utente di inviare l'e-mail dal suo account e-mail, in modo che possano essere identificati. Ecco alcune domande a riguardo:

  1. Abbiamo usato per inviare l'ultimo stacktrace di java quando l'utente preme il pulsante "invia segnalazione errori". Poiché ha solo dettagli tecnici che l'utente potrebbe non capire o preoccuparsi, è necessario mostrare questo stacktrace all'utente?

  2. Cosa succede se l'utente è preoccupato per la privacy? È buona pratica raccogliere stacktraces di arresti anomali e comportamenti insoliti tenendo a mente la privacy degli utenti? Se non è quello che sono le altre alternative?

  3. Per i dispositivi mobili cosa succede se l'utente vuole inviare un rapporto di errore al server ma non c'è alcuna connettività di rete, è necessario avere una registrazione di questo tipo di errori comuni che non sono correlati all'applicazione?

posta Prasham 24.05.2011 - 11:50
fonte

3 risposte

5

I miei due centesimi.

Tieni presente che questa particolare comunità è probabilmente una sezione trasversale di programmatori, quindi non siamo il tuo utente medio. :) Riesco a leggere i miei pensieri che sto rispondendo come "l'utente che sa come programmare", e non un normale essere umano.

  • Abbiamo usato per inviare l'ultimo stacktrace di java quando l'utente preme il pulsante "invia segnalazione errori". Poiché ha solo dettagli tecnici che l'utente potrebbe non capire o preoccuparsi, è necessario mostrare questo stacktrace all'utente?

Come utente geek, mi piace avere l'opzione (ma non l'obbligo) di vedere lo stacktrace. Stranamente, il mio miglior esempio è Microsoft - quando qualcosa va orribilmente male in alcuni casi danno un pulsante "vedi dettagli" che mi dà la traccia dello stack. 9 volte su 10 Non farò clic sul pulsante, non lo clicco, lo guarderò e lo invierò. Ma una volta ogni tanto ottengo solo abbastanza informazioni esoteriche da poter cambiare il mio comportamento e far sì che l'app faccia ciò che voglio.

  • Cosa succede se l'utente è preoccupato per la privacy? È buona pratica raccogliere stacktraces di arresti anomali e comportamenti insoliti tenendo a mente la privacy degli utenti? Se non è quello che sono le altre alternative?

Penso che sia necessario fornire all'utente sia le opzioni che le informazioni. Per me questa è la cosa etica. Le mie app per dispositivi mobili Android mi avvisano, innanzitutto: "questa app invierà informazioni dettagliate sugli errori sullo stato del dispositivo alla società in caso di errore". È molto verboso, sospetto che ci sia un modo migliore per dirlo.

Quindi, penso che la funzione sia un'impostazione permanente e / o un'opzione caso per caso per disattivare la segnalazione degli errori. Personalmente, preferisco caso per caso, dal momento che posso prendere la decisione in base alle condizioni attuali - quanto è grande il problema? Quanto è alta la mia larghezza di banda? ecc.

  1. Per i dispositivi mobili cosa succede se l'utente vuole inviare un rapporto di errore al server ma non c'è alcuna connettività di rete, è necessario avere una registrazione di questo tipo di errori comuni che non sono correlati all'applicazione?

IMO: per le app mobili, no. Per me, c'è un contratto implicito che le mie app mobili non riempiranno il mio telefono con le informazioni sugli errori solo perché possano essere inoltrate al ritorno della connettività. Potrei aspettarmelo da un'app di posta elettronica, dove sto cercando di inviare del contenuto, ma non mi aspetto da errori. Penso che quando stai progettando la segnalazione degli errori in remoto devi presumere che perderai un discreto numero di errori, quindi i rapporti di errore che ricevi sul server centrale non sono rappresentativi di tutti gli errori che si sono mai verificati in remoto.

Sono sicuro che il chilometraggio varia con la praticità del sistema. Fortunatamente, non riesco a pensare a un'applicazione nel tuo cellulare medio che sia direttamente collegata alla conservazione della vita umana ...

    
risposta data 24.05.2011 - 15:11
fonte
3
  1. Mostra sempre la traccia dello stack. Una mail magica sta aprendo le porte per le cause legali.
  2. Rispetta sempre la privacy. Vedere il punto 1 sopra: questa è la possibilità per l'utente di negare l'invio a voi se trovano qualche informazione privata. Idealmente NONE dei parametri dovrebbe venire a te.
  3. Hai sempre un EULA che li convince a questo. Ancora una volta, la legge si adatta.
  4. Ho visto app per dispositivi mobili che sovrascrivono un singolo file di errore fino a quando non ottengono la connettività. Ho anche visto app mobili che riservano spazio nel loro formato file per informazioni su statistiche / errori. potresti provare uno di questi.
  5. Quando i programmi si interrompono, presumo che la traccia dello stack non contenga tutte le informazioni necessarie a causa dell'offuscamento, ecc. Assicurati di avere i simboli di rilascio memorizzati nella cache e così via. Prova a controllare un core dump come test case per ogni versione, niente di peggio che ottenere un file non valido.
  6. Se stai effettivamente ottenendo stacktraces, la tua app potrebbe essere reverse engineering. Fai attenzione se sei preoccupato per l'IP.
risposta data 24.05.2011 - 15:49
fonte
0

In un certo senso, i primi due problemi citati sono correlati. i) l'utente deve avere la possibilità di autorizzare o meno la trasmissione del rapporto di errore; ii) l'utente deve essere autorizzato a vedere il contenuto del rapporto di errore prima di decidere su i), in particolare a causa della privacy.

Se l'utente stava lavorando su qualcosa di riservato o digitato in alcune informazioni sensibili, l'utente ha motivi per preoccuparsi della privacy e NON dovrebbe autorizzare la trasmissione del rapporto di errore. Il seguente paragrafo può essere trovato nella dichiarazione sulla privacy per l'errore Microsoft -Servizio di rapporti:

"I rapporti potrebbero involontariamente contenere informazioni personali, ma queste informazioni non vengono utilizzate per identificarti o contattarti. Ad esempio, un report che contiene un'istantanea della memoria potrebbe includere il tuo nome, parte di un documento su cui stavi lavorando o dati che hai recentemente inviato a un sito web. Se si ospitano macchine virtuali che utilizzano un sistema operativo Windows, i report generati dal sistema operativo Windows per il servizio MER potrebbero includere informazioni sulle macchine virtuali. Se sei preoccupato che un rapporto possa contenere informazioni personali o confidenziali, non dovresti inviare il rapporto. "

In linea con thins, ci sono due cose importanti da considerare:

1) alcuni meccanismi di segnalazione degli errori includono alcune funzionalità di registrazione per raccogliere informazioni sulla riproducibilità, in modo che agli sviluppatori sia fornito un rapporto di errore più completo / utile, che solleva probabilmente preoccupazioni ancora più grandi in merito alla privacy;

2) anche se il report contiene solo alcune informazioni sullo stato finale relative all'errore, ad esempio lo stack trace, non è chiaro quali informazioni possa rivelare. Ad esempio, se l'errore può essere attivato solo da specifici percorsi di esecuzione che a loro volta vengono attraversati solo se l'utente immette un sottoinsieme limitato di valori o fatto clic su un determinato contenuto, è possibile dedurre tali input (almeno parzialmente) solo come stack traccia.

    
risposta data 12.02.2016 - 18:34
fonte

Leggi altre domande sui tag