Yunit 7 / 11

Pagsusulat at pag-prioritize ng ulat ng error: malinaw, maaaring kopyahin ang mga talaan na may ai

Mga nadagdag:

  • Kakayahang baguhin ang mga nakakalat na obserbasyon sa isang ulat na naglalaman ng isang malinaw na pamagat, mga deterministikong hakbang sa pagpaparami, inaasahan/aktuwal na mga resulta at ebidensya sa suporta ng artificial intelligence
  • Ang kakayahang magpataw ng panuntunan ng 'gamitin lamang ang impormasyong ibinibigay ko, huwag gawin ito' sa artificial intelligence at ginagarantiyahan ang muling paggawa gamit ang sarili nitong kontrol
  • Ang kakayahang makilala sa pagitan ng kalubhaan (teknikal na epekto) at priyoridad (pagkamadalian sa negosyo) at ibigay ang panghuling label na may konteksto ng negosyo

Ang bug na mahahanap ng tester ay mahalaga lamang kung ito ay maayos; Ang pag-aayos nito ay higit na nakasalalay sa kalidad ng ulat ng bug—isang talaan na nagdodokumento ng isang depekto sa paraang mauunawaan, mai-reproduce, at maayos ito ng developer. Ang isang hindi magandang nakasulat na ulat ng bug ("hindi gumagana ang pag-login") ay magpipigil sa developer ng maraming oras, hahantong sa pabalik-balik na pagsusulatan, at madalas na magsasara bilang "hindi maaaring magparami." Kasama sa isang mahusay na ulat ang mga malinaw na hakbang, inaasahan at aktwal na mga resulta, impormasyon sa konteksto at ebidensya. Ang artificial intelligence (AI) ay napakahusay sa paggawa ng iyong mga nakakalat na obserbasyon sa isang propesyonal at structured na ulat. Ngunit ang gitnang caveat ay nalalapat din dito: Ang AI ay hindi makakagawa ng mga hakbang na hindi mo nakikita; maaaring punan ang nawawalang impormasyon ng "makatuwirang hitsura" ngunit hindi tumpak na mga hula. Ang iyong trabaho ay tiyakin na ang bawat linya ng ulat ay batay sa kung ano talaga ang iyong naobserbahan.

Anatomy ng isang magandang ulat ng bug

Kasama sa isang epektibong ulat ang mga bahaging ito:

  • Pamagat: Maikli, tiyak, mahahanap. Hindi "May error"; "Hindi ma-click ang button na 'Checkout' na may higit sa 10 item sa cart (Chrome)".
  • Mga hakbang sa pagpaparami: May bilang, masusubaybayan mula sa simula, deterministiko. Dapat makita ng developer ang error pagkatapos sundin ang mga hakbang na ito.
  • Inaasahang resulta: Ano ang dapat na nangyari ayon sa pamantayan sa pagtanggap.
  • Aktwal na resulta: Ano ang nangyari (mensahe ng error, screen, gawi).
  • Environment: Browser/device, bersyon, environment (test/live), tungkulin ng user, data.
  • Ebidensya: Screenshot, video, log, error trace (stack trace).
  • Kalubhaan at priyoridad: Detalye sa ibaba.
Tip: Bago magpadala ng ulat, tanungin ang "kung ibibigay ko ang mga hakbang na ito sa ibang tao, makikita ba nila ang error nang wala ang tulong ko?" magtanong. Kung ang sagot ay "hindi", hindi kumpleto ang ulat. Maaaring gawing maganda ng AI ang ulat, ngunit ikaw lang ang makakagarantiya ng muling paggawa.

Karahasan at priyoridad: dalawang nalilitong konsepto

Ang kalubhaan ay ang teknikal na epekto ng error: nag-crash ba ang system, nawala ang data, o typo ba ito? Ang priyoridad ay kung gaano kabilis ito kailangang ayusin; ay tungkol sa epekto sa negosyo. Ang dalawa ay hindi palaging papunta sa parehong direksyon: ang maling spelling ng pangalan ng kumpanya sa homepage ay mababa ang kalubhaan ngunit mataas ang priyoridad (reputasyon). Sa isang bihirang kaso sa gilid, ang isang pagbagsak ay maaaring may mataas na kalubhaan ngunit mababa ang priyoridad. Tinutulungan ka ng AI na gawin ang pagkakaibang ito kapag nagbigay ka ng obserbasyon; ngunit ang panghuling label ay ibinibigay mo na nakakaalam ng konteksto ng negosyo.

karahasan

halimbawa

priority

halimbawa

Kritikal (Blocker)

Hindi makumpleto ang pagbabayad

Apurahan (P1)

Pagkawala ng kita sa live

Mataas (Major)

Ang ulat ay nagbibigay ng maling kabuuan

Mataas (P2)

Isang kinakailangan para sa paparating na paglabas

Katamtaman (Minor)

Bihirang edge case error

Katamtaman (P3)

Sa isang nakaplanong sprint

Mababa (Trivial)

Naka-off ang alignment ng button

Mababa (P4)

Kapag may pagkakataon

Mahinang prompt / Malakas na prompt

Mahina: "Iulat ang error na ito: hindi gumagana ang pagbabayad."
Strong: "Isalin ang aking mga obserbasyon sa ibaba sa karaniwang format ng ulat ng bug: pamagat, mga hakbang sa pagpaparami (numero), inaasahang resulta, aktwal na resulta, kapaligiran, kalubhaan at rekomendasyon ng priyoridad (nabibigyang-katwiran). Gamitin lamang ang impormasyong ibibigay ko; buuin ang anumang nawawalang mga field, markahan ang 'NAWALA NG IMPORMASYON: ...'. Mga Obserbasyon: Chrome 120, kapaligiran ng pagsubok, 'Naka-press ang 12 item sa cart, 'Walang nangyari kapag wala ako', 'Tingnan ang 12 na mga item sa cart, 'Walang nangyari.' function' error sa console, Walang problema sa 11 produkto."

Napakahusay na prompt; nagpapataw ng format, ang "angkop" na panuntunan, at ang pagmamarka ng nawawalang impormasyon. Sa ganitong paraan, magiging tumpak at tapat ang ulat.

Dobleng pagtuklas ng error

Sa malalaking koponan, paulit-ulit na inuulat ang parehong error. Maaaring ihambing ng AI ang iyong bagong ulat sa mga kasalukuyang bukas na bug at mag-flag ng mga potensyal na duplicate — pinapanatili nitong malinis ang iyong system sa pagsubaybay sa bug (Jira, Azure DevOps, Mga Isyu sa GitHub). Ngunit mag-ingat: dalawang error na lumilitaw na magkatulad sa ibabaw ay maaaring may magkaibang mga sanhi; Ihambing ang paulit-ulit na mga hakbang sa produksyon at kapaligiran ng parehong mga ulat bago isara ang "duplicate" na mungkahi ng AI. Ang isang aksidenteng nakasarang "duplicate" ay talagang nawawala ang isang hiwalay na error.

Mula sa bug trace hanggang sa root cause: Ang kapangyarihan ng AI na magbasa ng mga log

Ang pinaka-teknikal na bahagi ng isang ulat ng bug ay kadalasang ang bakas ng bug (stack trace — isang breakdown kung aling linya ng code, kung saan ang chain ng tawag, ay nag-trigger ng bug). Ang mahaba at kumplikadong mga log ay maaaring mapagod maging ang developer. Binabasa ng AI ang isang log ng daan-daang linya at ibinubuod sa ilang segundo ang pinaka-kritikal na mga linya, ang posibleng root cause hypothesis, at ang code point kung saan na-trigger ang error. Ito ay parehong nagpapaikli sa ulat at nagbibigay sa developer ng direktang panimulang punto.

Tandaan ang dalawang limitasyon, bagaman. Una, ang ugat na sanhi na ibinigay ng AI ay isang hypothesis, hindi ebidensya; Hindi dapat subukan ng developer na ayusin ito nang hindi ito bini-verify. Pangalawa, ang mga log ay kadalasang naglalaman ng personal na data (email, user ID, session token); I-mask ang mga lugar na ito bago ilagay ang log sa sasakyan. Ang isang magandang kasanayan ay ang sabihin muna sa AI na "ilista ang mga field na kailangang i-mask sa log na ito" at pagkatapos ay pag-aralan ang nalinis na log.

Tip: Sa halip na i-paste ang buong log sa ulat, isama ang pinakamahalagang 3-5 linya na ibinubuod ng AI at isang link sa buong log. Sa ganitong paraan mananatiling nababasa ang ulat, at maa-access ng developer na nangangailangan ng mga detalye ang buong log.

Apat na maaaring kopyahin na mga template

1) Mula sa pagmamasid hanggang sa pag-uulat:

Ang iyong tungkulin: senior QA. Isalin ang mga sumusunod na hilaw na obserbasyon sa isang karaniwang ulat ng bug: Pamagat / Mga hakbang sa pagpaparami (numero) / Inaasahan / Aktwal / Kapaligiran / Tala ng ebidensya / Kalubhaan + Priyoridad (nabibigyang-katwiran). PANUNTUNAN: gamitin lamang ang impormasyong ibinibigay ko; markahan ang nawawalang field bilang "NAWALAANG IMPORMASYON:..." Mga Obserbasyon: [raw notes]

2) Kontrol sa reproducibility:

Basahin ang ulat ng bug na ito mula sa pananaw ng isang developer na hindi pa nakakita ng bug. Sundin ang mga hakbang at markahan ang mga lugar kung saan hindi ito gagawa ng bug: hindi tiyak na hakbang, nawawalang paunang kinakailangan, nawawalang data ng pagsubok, nilaktawan na kundisyon. Sabihin sa akin kung anong impormasyon ang dapat kong idagdag para sa bawat puwang. Ulat: [idikit ang ulat]

3) Seryoso/priyoridad na tagapayo:

Inilalarawan ko ang sumusunod na error: [error + business context]. Magbigay ng mga mungkahi at katwiran nang hiwalay para sa kalubhaan (teknikal na epekto) at priyoridad (pagkamadalian sa negosyo). Ipaliwanag kung bakit maaaring magkaiba ang dalawa. Ako ang gagawa ng pangwakas na desisyon.

4) Buod ng bakas ng log/error:

Suriin ang error trace/log sa ibaba. Bigyan mo ako ng buod ng (1) ang root cause hypothesis, (2) ang malamang na code point kung saan nangyari ang error, (3) ang 3 pinaka-kritikal na linya na idaragdag sa ulat. Mag-mask kung mayroong personal na data. Log: [paste log]

tatlong mini case

Case 1 — Liberation mula sa “I Couldn’t Produce.” Sa isang team, 30% ng mga bug ang isinara bilang "hindi maaaring magparami". Ang template na "reproducibility check" ay naidagdag sa proseso ng ulat; Bago ipadala ang bawat ulat, na-flag ng AI ang mga nawawalang hakbang at kinakailangan. Pagkalipas ng tatlong buwan, bumaba ang rate ng "hindi makagawa" mula 30% hanggang 8%. Ang pagkakaiba ay ang mga hakbang ay eksakto mula sa simula.

Kaso 2 — Ang panganib ng mga pekeng hakbang. Pinasulat ng isang tester ang AI ng isang ulat na may hindi kumpletong mga obserbasyon; Nagdagdag ang AI ng isang hakbang na hindi nangyari, gaya ng "ini-on ng user ang mga notification mula sa page ng mga setting." Nang sinunod ng developer ang hakbang na iyon, hindi niya mahanap ang error at nawalan siya ng oras. Ang koponan ay nagpatupad ng panuntunang "gamitin lamang ang impormasyong ibibigay ko, huwag gawin ito"; Ang mga ginawang hakbang ay inalis.

Kaso 3 — Pagkilala sa kalubhaan/priyoridad. Nagkaroon ng typo sa slogan ng kumpanya sa home page. Ipapasa ito ng tester bilang "mababa"; Ipinaalala ng AI ​​consultant na mababa ang teknikal na karahasan ngunit mataas ang priyoridad ng negosyo (ang elemento ng reputasyon na natatanggap ng bawat bisita). Naayos ang bug sa parehong araw gamit ang tag na "high priority."

Mga karaniwang pagkakamali

  • Malabong pamagat. Hindi mahahanap, walang diskriminasyong mga headline tulad ng "Hindi gumagana."
  • Nawawala/nilaktawan ang mga hakbang. Hindi pagsusulat kung ano ang halata sa iyong konteksto; kabiguan ng developer sa paggawa.
  • Hinahayaan ang AI na gumawa nito. Ang pagkakaroon ng nawawalang impormasyon na napunan ng isang "makatwirang pagtatantya"; maling hakbang.
  • Hindi isinulat ang inaasahang resulta. Pagsasabi ng "mali" ngunit hindi tinukoy kung ano ang tama.
  • Nakalilito ang karahasan at priyoridad. Napagkakamalang iisang label ang dalawa; Maling paghusga sa epekto ng negosyo.
  • Sensitibong data sa ebidensya. Pagbabahagi ng totoong personal na data sa mga screenshot/log nang hindi tinatakpan ang mga ito.

Sa buod

Ang halaga ng ulat ng bug ay ang developer ay maaaring magparami at ayusin ang bug nang wala ang iyong tulong. Ang AI ay napakahusay sa paggawa ng mga nakakalat na obserbasyon sa isang propesyonal, nakabalangkas na ulat; Inaayos nito ang pamagat, mga hakbang, inaasahan/aktwal na resulta, kapaligiran at ebidensya, at nagbibigay ng pagkonsulta sa pagkakaiba sa pagitan ng kalubhaan at priyoridad. Ngunit ang AI ay maaaring makabawi para sa nawawalang impormasyon; Ipatupad ang panuntunang "gamitin lamang ang impormasyong ibibigay ko, markahan ang nawawala" at ginagarantiyahan ang muling paggawa. Itago ang personal na data bilang ebidensya.

Gawain ng aplikasyon

Kumuha ng bug na kamakailan mong natagpuan at gawing ulat ang iyong mga hilaw na obserbasyon gamit ang pattern na "pagmamasid upang iulat" (na may "angkop" na panuntunan). Pagkatapos ay isagawa ang "reproducibility check" at punan ang mga minarkahang gaps. Ibigay ang ulat sa isang kasamahan at tingnan kung magagawa niya ang error nang wala ang iyong tulong. Panghuli, tukuyin ang mga label na may "karahasan/priyoridad na consultant" at tapusin ito sa iyong sariling paghuhusga. Tandaan ang anumang impormasyon na sinusubukang gawin ng AI sa proseso.

checklist

  • [ ] Ang aking pamagat ay tiyak at mahahanap.
  • [ ] Ang mga hakbang sa pagpaparami ay mula sa simula, deterministiko at kumpleto.
  • [ ] Isinulat ko nang hiwalay ang inaasahan at aktwal na mga resulta.
  • [ ] Kumpleto ang setting at impormasyon ng ebidensya; Tinakpan ko ang personal na data.
  • [ ] Ipinataw ko ang "make it up, mark the missing" rule sa AI ​​at ako mismo ang nagpunan ng mga puwang.
  • [ ] Sinuri ko ang kalubhaan at priyoridad nang hiwalay at ginawa ang pangwakas na desisyon.