Jedinica 7 / 11

Pisanje izvješća o pogrešci i određivanje prioriteta: jasni, ponovljivi zapisi s umjetnom inteligencijom

Dobici:

  • Sposobnost pretvaranja raštrkanih opažanja u izvješće koje sadrži jasan naslov, determinističke korake reprodukcije, očekivane/stvarne rezultate i dokaze uz podršku umjetne inteligencije
  • Biti sposoban umjetnoj inteligenciji nametnuti pravilo 'koristi samo informacije koje ja dam, ne izmišljati' i jamčiti ponovljivost uz vlastitu kontrolu
  • Biti u stanju razlikovati ozbiljnost (tehnički utjecaj) i prioritet (poslovna hitnost) i dati konačnu oznaku s poslovnim kontekstom

Greška koju ispitivač pronađe je vrijedna samo ako je popravljena; Popravljanje uvelike ovisi o kvaliteti izvješća o pogrešci—zapisa koji dokumentira nedostatak na način da ga programer može razumjeti, reproducirati i popraviti. Loše napisano izvješće o pogrešci ("prijava ne radi") satima će zaustaviti programera, dovesti do dopisivanja naprijed-natrag i često se zatvoriti jer se "ne može reproducirati". Dobro izvješće uključuje jasne korake, očekivane i stvarne rezultate, informacije o kontekstu i dokaze. Umjetna inteligencija (AI) vrlo je dobra u pretvaranju vaših raštrkanih opažanja u profesionalno, strukturirano izvješće. Ali središnje upozorenje vrijedi i ovdje: umjetna inteligencija ne može izmisliti korake koje ne vidite; može popuniti informacije koje nedostaju "razumnim" ali netočnim nagađanjima. Vaš je posao osigurati da se svaki redak izvješća temelji na onome što ste stvarno primijetili.

Anatomija dobrog izvješća o bugovima

Učinkovito izvješće uključuje ove komponente:

  • Naslov: Kratko, specifično, pretraživo. Ne "Postoji pogreška"; "Nije moguće kliknuti gumb 'Naplata' s više od 10 artikala u košarici (Chrome)".
  • Koraci za reprodukciju: numerirani, sljedivi od nule, deterministički. Programer bi trebao moći vidjeti pogrešku nakon što slijedi ove korake.
  • Očekivani rezultat: Što se trebalo dogoditi prema kriterijima prihvatljivosti.
  • Stvarni rezultat: Što se dogodilo (poruka pogreške, zaslon, ponašanje).
  • Okruženje: preglednik/uređaj, verzija, okruženje (test/uživo), korisnička uloga, podaci.
  • Dokaz: snimka zaslona, ​​video zapis, zapisnik, trag pogreške (trag hrpa).
  • Ozbiljnost i prioritet: Detaljno u nastavku.
Savjet: prije slanja izvješća pitajte "ako dam ove korake nekom drugom, može li vidjeti pogrešku bez moje pomoći?" pitati. Ako je odgovor "ne", izvješće je nepotpuno. AI može izvješće učiniti lijepim, ali samo vi možete jamčiti ponovljivost.

Nasilje i prioritet: dva pobrkana pojma

Ozbiljnost je tehnički učinak pogreške: ruši li se sustav, podaci su izgubljeni ili se radi o grešci pri upisu? Prioritet je koliko hitno treba popraviti; radi se o utjecaju na poslovanje. To dvoje ne ide uvijek u istom smjeru: pogrešno pisanje naziva tvrtke na početnoj stranici je niske ozbiljnosti, ali visokog prioriteta (ugled). U rijetkim rubnim slučajevima, kolaps može biti visoke ozbiljnosti, ali niskog prioriteta. AI vam pomaže da napravite ovu razliku kada dajete zapažanja; ali konačnu oznaku dajete vi koji poznajete poslovni kontekst.

nasilje

primjer

prioritet

primjer

Kritično (blokator)

Plaćanje nije moguće izvršiti

Hitno (P1)

Gubitak prihoda u životu

Visoki (glavni)

Izvješće daje netočan ukupni iznos

Visoko (P2)

Obavezno za nadolazeće izdanje

Srednje (manje)

Rijetka rubna pogreška

Srednje (P3)

U planiranom sprintu

Nisko (trivijalno)

Poravnanje gumba je isključeno

Nisko (P4)

Kad postoji prilika

Slab upit / Jak upit

Slabo: "Prijavi ovu pogrešku: plaćanje ne radi."
Jako: "Prevedite moja zapažanja u nastavku u standardni format izvješća o pogreškama: naslov, koraci reprodukcije (numerirani), očekivani rezultat, stvarni rezultat, okolina, ozbiljnost i prioritetna preporuka (opravdana). Koristite samo informacije koje sam dao; nadopunite sva polja koja nedostaju, označite 'INFORMACIJE NEDOSTAJU: ...'. Zapažanja: Chrome 120, testno okruženje, 12 artikala u košarici, ništa se ne događa kada pritisnem 'Naplata', 'undefined is not a function' greška u konzoli, nema problema s 11 proizvoda."

Snažan brz; nameće format, pravilo "prilagođavanja" i označavanje informacija koje nedostaju. Na taj će način izvješće biti točno i pošteno.

Otkrivanje dvostruke pogreške

U velikim timovima ista se greška prijavljuje uvijek iznova. AI može usporediti vaše novo izvješće s postojećim otvorenim programskim pogreškama i označiti potencijalne duplikate — to vaš sustav za praćenje programskih pogrešaka (Jira, Azure DevOps, GitHub Issues) održava čistim. Ali pazite: dvije pogreške koje se naizgled čine slične mogu imati različite temeljne uzroke; Usporedite ponovljene proizvodne korake i okruženje oba izvješća prije zatvaranja AI-jevog "dupliciranog" prijedloga. Slučajno zatvorenom "duplikatu" zapravo nedostaje zasebna pogreška.

Od traga pogreške do temeljnog uzroka: Snaga umjetne inteligencije za čitanje zapisa

Najtehničkiji dio izvješća o pogrešci često je praćenje pogreške (trag snopa — raščlamba toga koja je linija koda, s kojim lancem poziva pokrenula pogrešku). Dugi i složeni dnevnici mogu umoriti čak i programera. AI čita dnevnik od stotina redaka i u sekundama sažima najkritičnije retke, moguću hipotezu o uzroku i točku koda gdje je pogreška pokrenuta. Ovo skraćuje izvješće i daje programeru izravnu početnu točku.

No zapamtite dva ograničenja. Prvo, temeljni uzrok koji navodi AI je hipoteza, a ne dokaz; Programer ne bi trebao pokušavati to popraviti bez provjere. Drugo, dnevnici često sadrže osobne podatke (e-pošta, korisnički ID, token sesije); Zakrijte ta područja prije postavljanja trupca na vozilo. Dobra praksa je da AI prvo kaže "popis polja koja treba maskirati u ovom dnevniku", a zatim analizira očišćeni dnevnik.

Savjet: Umjesto lijepljenja cijelog dnevnika u izvješće, uključite najkritičnijih 3-5 redaka koje umjetna inteligencija sažima i poveznicu na cijeli dnevnik. Na taj način izvješće ostaje čitljivo, a programer koji treba detalje može pristupiti cijelom dnevniku.

Četiri predloška za kopiranje

1) Od opažanja do izvješća:

Vaša uloga: viši QA. Prevedite sljedeća neobrađena zapažanja u standardno izvješće o pogrešci: Naslov / Koraci reprodukcije (numerirani) / Očekivano / Stvarno / Okruženje / Napomena o dokazima / Ozbiljnost + Prioritet (opravdano). PRAVILO: koristiti samo podatke koje ja dam; označi polje koje nedostaje kao "INFORMACIJE NEDOSTAJU:..." Zapažanja: [neobrađene bilješke]

2) Kontrola ponovljivosti:

Pročitajte ovo izvješće o pogrešci iz perspektive programera koji nikada nije vidio pogrešku. Slijedite korake i označite mjesta na kojima neće proizvesti pogrešku: dvosmislen korak, nedostajući preduvjet, nedostajući testni podaci, preskočeni uvjet. Recite mi koje podatke trebam dodati za svaku prazninu. Izvješće: [zalijepi izvješće]

3) Savjetnik za ozbiljnost/prioritet:

Opisujem sljedeću pogrešku: [pogreška + poslovni kontekst]. Dajte prijedloge i obrazloženja odvojeno za ozbiljnost (tehnički utjecaj) i prioritet (poslovna hitnost). Objasnite zašto bi to dvoje moglo biti različito. Ja ću donijeti konačnu odluku.

4) Sažetak traga dnevnika/pogreške:

Pregledajte trag/zapis pogreške u nastavku. Dajte mi sažetak (1) hipoteze temeljnog uzroka, (2) vjerojatne kodne točke gdje se pogreška dogodila, (3) 3 najkritičnija retka za dodavanje u izvješće. Maska ako ima osobnih podataka. Zapisnik: [zalijepi zapisnik]

tri mini kućišta

Slučaj 1 — Oslobađanje od "Nisam mogao proizvoditi." U jednom timu, 30% grešaka je zatvoreno jer se "ne mogu reproducirati". Predložak "provjera ponovljivosti" dodan je procesu izvješća; Prije slanja svakog izvješća, AI je označavao nedostajuće korake i preduvjete. Tri mjeseca kasnije, stopa "nije mogla proizvesti" pala je s 30% na 8%. Razlika je bila u tome što su koraci bili točni od početka.

Slučaj 2 — Opasnost od lažnih koraka. Ispitivač je zamolio AI da napiše izvješće s nepotpunim opažanjima; AI je dodao korak koji se nikada nije dogodio, poput "korisnik uključuje obavijesti sa stranice postavki". Kad je programer slijedio taj korak, nije mogao pronaći pogrešku i izgubio je vrijeme. Tim je nametnuo pravilo "koristite samo informacije koje ja dam, nemojte ih izmišljati"; Izmišljeni koraci su eliminirani.

Slučaj 3 — Razlika ozbiljnosti/prioriteta. Došlo je do tiskarske pogreške u sloganu tvrtke na početnoj stranici. Ispitivač bi to propustio kao "nisko"; AI konzultant podsjetio je da je tehničko nasilje malo, ali da je poslovni prioritet visok (element ugleda koji svaki posjetitelj dobiva). Greška je ispravljena isti dan s oznakom "visokog prioriteta".

Uobičajene greške

  • Nejasan naslov. Nepretraživi, ​​nediskriminirajući naslovi poput "Ne radi".
  • Nedostaju/preskočeni koraci. Ne pisanje onoga što je očito u vašem kontekstu; neuspjeh programera u proizvodnji.
  • Pustiti umjetnu inteligenciju da to izmisli. Ispunjavanje informacija koje nedostaju s "razumnom procjenom"; krivi koraci.
  • Ne piše očekivani rezultat. Reći "pogrešno", ali ne specificirati što je ispravno.
  • Brkanje nasilja i prioriteta. Zamijeniti to dvoje kao jednu oznaku; Pogrešna procjena utjecaja na poslovanje.
  • Osjetljivi podaci u dokazima. Dijeljenje stvarnih osobnih podataka u snimkama zaslona/zapisima bez njihovog maskiranja.

Ukratko

Vrijednost izvješća o pogrešci je u tome što programer može reproducirati i popraviti pogrešku bez vaše pomoći. AI je vrlo dobra u pretvaranju raštrkanih opažanja u profesionalno, strukturirano izvješće; Organizira naslov, korake, očekivani/stvarni rezultat, okruženje i dokaze te pruža savjetovanje o razlikovanju težine i prioriteta. Ali AI može nadoknaditi informacije koje nedostaju; Provedite pravilo "koristi samo informacije koje ja dam, označi nedostajuće" i sami jamčite ponovljivost. Maskirajte osobne podatke u dokazima.

Zadatak aplikacije

Uzmite grešku koju ste nedavno pronašli i pretvorite svoja neobrađena zapažanja u izvješće pomoću obrasca "od opažanja do izvješća" (s pravilom "prilagođavanja"). Zatim izvršite "provjeru ponovljivosti" i popunite označene praznine. Dajte izvješće kolegi i provjerite može li proizvesti pogrešku bez vaše pomoći. Na kraju, s "konzultantom za nasilje/prioritet" odredite oznake i finalizirajte ih prema vlastitom nahođenju. Zabilježite sve informacije koje AI pokušava izmisliti u procesu.

popis za provjeru

  • [ ] Moj je naslov specifičan i pretraživ.
  • [ ] Koraci reprodukcije su od nule, deterministički i potpuni.
  • [ ] Zasebno sam napisao očekivane i stvarne rezultate.
  • [ ] Podaci o postavkama i dokazima su dovršeni; Maskirao sam osobne podatke.
  • [ ] Nametnuo sam AI pravilo "nadoknadi, označi ono što nedostaje" i sam popunio praznine.
  • [ ] Zasebno sam procijenio ozbiljnost i prioritet i donio konačnu odluku.