Programvaretesting og forskjellige tenkningstyper

Når det gjelder programvaretesting, er den menneskelige hjerne det beste testverktøyet. Når vi tester programvare, behandler vi informasjon, løser problemer, tar beslutninger og lager nye ideer.

Som testere bør vi være klar over de forskjellige tenkningstypene, slik at vi kan knytte dem til forskjellige situasjoner. Når vi for eksempel ser på et designdiagram, må vi være analytiske. Når vi tenker på scenarier, må vi tenke på en abstrakt måte.

Ulike testaktiviteter krever forskjellige tankeprosesser. Av denne grunn er det viktig å kunne “slå på” de forskjellige tenkemodusene for hver aktivitet.




Tenketyper i sammenheng med programvaretesting

La oss undersøke de forskjellige tenkningstypene og hvordan hver enkelt kan brukes i sammenheng med programvaretesting og forskjellige testaktiviteter.

Kreativ eller lateral tenking

Kreativ tenkning betyr å se på noe på en ny måte. Det er selve definisjonen av 'å tenke utenfor boksen.'


I kreativ tenkning bryter vi oss fra etablerte teorier, regler og prosedyrer og gjør ting på en ny og fantasifull måte.

I sammenheng med testing kan dette for eksempel være når vi bruker nye testteknikker, f.eks. parvis testteknikk for å redusere antall permutasjoner, men likevel øke dekningen.

Analytisk tenkning

Analytisk tenkning refererer til evnen til å skille en helhet i sine grunnleggende deler for å undersøke delene og deres forhold. Det innebærer å tenke på en logisk, trinnvis måte for å bryte ned et større informasjonssystem i delene.

For eksempel når vi ser på arkitektoniske diagrammer og prøver å finne ut stien gjennom systemet og individuelle komponenter.


Et godt eksempel er når vi analyserer hva som skjer når en bruker sender inn et skjema og forespørselen sendes til et API som kommuniserer med en database.

Kritisk tenking

Kritisk tenkning er evnen til å resonnere ved å analysere noe nøye for å bestemme dets gyldighet eller nøyaktighet. Det handler om å være en aktiv lærer i stedet for en passiv mottaker av informasjon.

Kritisk tenking er muligens den viktigste typen tenking i test-sammenheng. Som testere bør vi alltid stille spørsmål ved ideer og antakelser i stedet for å godta dem til pålydende.

For eksempel når vi ser på en brukerhistorie, kan vi stille spørsmål om akseptkriterier i stedet for å godta dem slik de er gitt til oss.


Betongtenking

Konkret tenkning refererer til evnen til å forstå og anvende faktakunnskap. Det er motsatt av abstrakt tenkning.

Folk som tenker konkret, liker å følge instruksjonene og har detaljerte planer. De hater alt som er uklart eller tvetydig. Som sådan foretrekker konkrete tenkere å jobbe med lister og regneark.

I forbindelse med testing er dette når testere krever at alle instruksjoner skal eksistere før de begynner å teste. F.eks. noen testere begynner ikke å teste før alle akseptkriteriene er definert i en brukerhistorie.

Abstrakt tenkning

Motsatt konkret tenkning refererer abstrakt tenkning til evnen til å tenke på ting som faktisk ikke er til stede.


Programvaretestere som tenker abstrakt ser på den bredere betydningen av ideer og informasjon i stedet for de konkrete detaljene.

For eksempel i sammenheng med testing og story grooming økter, kan testere med evnen til å tenke på en abstrakt måte komme med interessante testscenarier. I stedet for bare å lese akseptkriteriene, vil testere se på en brukerhistorie og prøve å finne ut hvordan dette kan forholde seg til eller påvirke andre deler av systemet.

Avvikende tenking

Divergent Thinking refererer til evnen til å generere kreative ideer ved å utforske mange mulige løsninger i et forsøk på å finne en som fungerer. Det innebærer å bringe fakta og data sammen fra forskjellige kilder og deretter bruke logikk og kunnskap for å ta beslutninger.

Når vi gjør utforskende testing, søker vi orakler og heuristikker og gjøre vurderinger basert på våre tidligere erfaringer.


Konvergent tenking

Konvergent tenkning er evnen til å sette sammen en rekke forskjellige brikker eller perspektiver på et emne på en eller annen organisert, logisk måte for å finne et enkelt svar.

For eksempel når vi prøver å finne en årsak til en mangel, samler vi inn relevant informasjon og trekker ut nødvendige data.

Sekvensiell tenking

Sekvensiell (lineær) tenkning refererer til evnen til å behandle informasjon på en ordnet foreskrevet måte. Det innebærer en trinnvis progresjon der et svar på et trinn må oppnås før et nytt skritt tas.

I sammenheng med programvaretesting, korrelerer dette med når vi følger et skript med forhåndsdefinerte trinn og forventede resultater.

Helhetstenking

Holistisk (ikke-lineær) tenking er evnen til å se det store bildet og gjenkjenne hvordan komponentene danner det større systemet. Det innebærer å utvide tankeprosessen din i flere retninger, snarere enn i bare én retning.

I sammenheng med testing er dette når vi utfører integrering eller systemtesting.

Konklusjon

Programvaretesting krever dyp tenkning. Det er en prosess med stadig å stille spørsmål og analysere informasjonen vi mottar. Ulike testaktiviteter krever forskjellige tenkeprosesser. Å forstå de forskjellige tenkningstypene vil hjelpe deg med å stille de riktige spørsmålene.

Når vi intervjuer testere, bør vi stille scenariobaserte spørsmål som utøver testernes tenkeevne når det gjelder tenkningstypene ovenfor.