Kalbant apie programinės įrangos testavimą, žmogaus smegenys yra geriausias testavimo įrankis. Kai bandome programinę įrangą, mes apdorojame informaciją, sprendžiame problemas, priimame sprendimus ir kuriame naujas idėjas.
Kaip bandytojai turėtume žinoti skirtingus mąstymo tipus, kad galėtume juos susieti su skirtingomis situacijomis. Pavyzdžiui, žiūrėdami į projekto schemą, turime būti analitiški. Galvodami apie scenarijus, turime galvoti abstrakčiai.
Skirtingos testavimo veiklos reikalauja skirtingų mąstymo procesų. Dėl šios priežasties svarbu mokėti „įjungti“ skirtingus kiekvienos veiklos mąstymo režimus.
Panagrinėkime skirtingus mąstymo tipus ir tai, kaip juos galima pritaikyti programinės įrangos testavimo ir įvairių testavimo veiklų kontekste.
Kūrybinis mąstymas reiškia pažvelgti į kažką naujai. Tai pats „mąstymo už ribų“ apibrėžimas.
Kūrybiškai mąstydami mes atsiribojame nuo nusistovėjusių teorijų, taisyklių ir procedūrų bei darome viską naujai ir vaizduotiškai.
Pavyzdžiui, bandymų kontekste tai gali būti tada, kai taikome naujas testavimo technikas, pvz. porinis bandymo metodas, kad sumažintų permutacijų skaičių, tačiau padidintų aprėptį.
Analitinis mąstymas reiškia sugebėjimą atskirti visumą į pagrindines jos dalis, kad būtų galima ištirti dalis ir jų santykius. Tai apima mąstymą logišku, žingsnis po žingsnio, siekiant suskaidyti didesnę informacijos sistemą į savo dalis.
Pavyzdžiui, kai mes žiūrime į architektūrines diagramas ir bandome išsiaiškinti kelią per sistemą ir atskirus komponentus.
Geras pavyzdys yra tai, kai analizuojame, kas nutinka, kai vartotojas pateikia formą, o užklausa siunčiama API, kuri bendrauja su duomenų baze.
Kritinis mąstymas yra sugebėjimas samprotauti kruopščiai ką nors analizuojant, siekiant nustatyti jo pagrįstumą ar tikslumą. Kalbama apie aktyvų mokinį, o ne pasyvų informacijos gavėją.
Kritinis mąstymas yra galbūt svarbiausias mąstymo tipas testavimo kontekste. Būdami bandytojais, visada turėtume kvestionuoti idėjas ir prielaidas, o ne priimti jas nominalia verte.
Pavyzdžiui, žiūrėdami į vartotojo istoriją, mes galime užduoti klausimus apie priėmimo kriterijus o ne priimti juos tokius, kokie jie mums duoti.
Konkretus mąstymas reiškia sugebėjimą suvokti ir pritaikyti faktines žinias. Tai priešinga abstrakčiam mąstymui.
Konkrečiai mąstantys žmonės mėgsta vykdyti nurodymus ir turi išsamų planą. Jie nekenčia visko, kas yra neryšku ar dviprasmiška. Tokie konkretūs mąstytojai nori dirbti su sąrašais ir skaičiuoklėmis.
Testavimo kontekste bandytojai reikalauja, kad prieš pradedant bandymą būtų visos instrukcijos. Pvz. kai kurie bandytojai nepradės testuoti, kol vartotojo istorijoje nebus apibrėžti visi priimtinumo kriterijai.
Priešingai konkrečiam mąstymui, abstraktus mąstymas reiškia sugebėjimą mąstyti apie dalykus, kurių iš tikrųjų nėra.
Abstrakčiai mąstantys programinės įrangos testuotojai žiūri į platesnę idėjų ir informacijos reikšmę, o ne į konkrečias detales.
Pavyzdžiui, bandymų ir pasakojimų viliojimo sesijų metu testuotojai, turintys galimybę mąstyti abstrakčiai, gali pateikti įdomių testų scenarijų. Užuot tik perskaitę priėmimo kriterijus, bandytojai pažvelgs į vartotojo istoriją ir bandys išsiaiškinti, kaip tai galėtų būti susiję ar paveikti kitas sistemos dalis.
„Divergentinis mąstymas“ reiškia sugebėjimą generuoti kūrybines idėjas, ieškant daugybės galimų sprendimų, stengiantis rasti tinkamą. Tai apima faktų ir duomenų surinkimą iš įvairių šaltinių, o tada logikos ir žinių pritaikymą priimant sprendimus.
Atlikdami žvalgomuosius bandymus, mes taikome orakulai ir euristika ir priimti sprendimus remiantis mūsų ankstesne patirtimi.
Konvergentinis mąstymas - tai galimybė organizuotai, logiškai sujungti daugybę skirtingų temos dalių ar perspektyvų, kad būtų rastas vienas atsakymas.
Pavyzdžiui, bandydami rasti pagrindinę defekto priežastį, mes renkame svarbią informaciją ir išgauname reikiamus duomenis.
Nuoseklus (tiesinis) mąstymas reiškia sugebėjimą tvarkyti informaciją tvarkingai nustatytu būdu. Tai apima laipsnišką progresavimą, kai atsakymas į žingsnį turi būti gautas prieš žengiant kitą žingsnį.
Programinės įrangos testavimo kontekste tai koreliuoja su tuo, kai mes vykdome scenarijų su iš anksto nustatytais veiksmais ir laukiamais rezultatais.
Holistinis (netiesinis) mąstymas yra gebėjimas pamatyti bendrą vaizdą ir atpažinti, kaip komponentai sudaro didesnę sistemą. Tai apima jūsų minties proceso išplėtimą keliomis kryptimis, o ne tik viena kryptimi.
Testavimo kontekste tai yra tada, kai atliekame integraciją arba sistemos testavimą.
Programinės įrangos testavimas reikalauja gilaus mąstymo. Tai procesas, kai nuolat keliami klausimai ir analizuojama gaunama informacija. Skirtingos bandomosios veiklos reikalauja skirtingų mąstymo procesų. Suprasti skirtingus mąstymo tipus padės užduoti teisingus klausimus.
Apklausdami testuotojus, turėtume užduoti scenarijais pagrįstus klausimus, kurie naudoja testuotojo mąstymo galimybes atsižvelgiant į minėtus mąstymo tipus.