Тестване на софтуер и различни видове мислене

Що се отнася до софтуерното тестване, човешкият мозък е най-добрият инструмент за тестване. Когато тестваме софтуер, ние обработваме информация, решаваме проблеми, вземаме решения и създаваме нови идеи.

Като тестери, трябва да сме наясно с различните типове мислене, за да можем да ги свържем с различни ситуации. Например, когато разглеждаме дизайнерска схема, трябва да сме аналитични. Когато мислим за сценарии, трябва да мислим абстрактно.

Различните тестови дейности изискват различни мисловни процеси. Поради тази причина е важно да можете да „включите” различните режими на мислене за всяка дейност.




Типове мислене в контекста на тестване на софтуер

Нека разгледаме различните типове мислене и как всеки от тях може да бъде приложен в контекста на софтуерното тестване и различни тестови дейности.

Творческо или странично мислене

Креативното мислене означава да гледаме на нещо по нов начин. Това е самото определение на „мислене извън кутията“.


В творческото мислене ние се откъсваме от утвърдените теории, правила и процедури и правим нещата по нов и въображаем начин.

В контекста на тестването, например, това може да бъде, когато прилагаме нови техники за тестване, напр. двойна тестова техника за намаляване на броя на пермутациите, но увеличаване на покритието.

Аналитично мислене

Аналитичното мислене се отнася до способността да се отдели едно цяло на основните му части, за да се изследват частите и техните взаимоотношения. Това включва мислене по логичен начин, стъпка по стъпка, за да се раздели по-голяма система от информация на части.

Например, когато разглеждаме архитектурни диаграми и се опитваме да разберем пътя през системата и отделните компоненти.


Добър пример е, когато анализираме какво се случва, когато потребителят изпрати формуляр и заявката е изпратена до API, който комуникира с база данни.

Критично мислене

Критичното мислене е способността да се разсъждава чрез внимателен анализ на нещо, за да се определи неговата валидност или точност. Става въпрос за това да бъдеш активен обучаем, а не пасивен получател на информация.

Критичното мислене е може би най-важният тип мислене в контекста на тестването. Като тестери, ние винаги трябва да поставяме под въпрос идеите и предположенията, вместо да ги приемаме по номинал.

Например, когато разглеждаме потребителска история, може да задаваме въпроси за критерии за приемане вместо да ги приемаме такива, каквито са ни дадени.


Конкретно мислене

Конкретното мислене се отнася до способността за разбиране и прилагане на фактически знания. Това е обратното на абстрактното мислене.

Хората, които мислят конкретно, обичат да следват инструкциите и имат подробни планове. Те мразят всичко размито или неясно. Като такива конкретни мислители предпочитат да работят със списъци и електронни таблици.

В контекста на тестването това е, когато тестерите изискват всички инструкции да съществуват, преди да започнат да тестват. Напр. някои тестери няма да започнат тестване, докато всички критерии за приемане не бъдат определени в потребителска история.

Абстрактно мислене

За разлика от конкретното мислене, абстрактното мислене се отнася до способността да се мисли за неща, които всъщност не присъстват.


Софтуерните тестери, които мислят абстрактно, гледат на по-широкото значение на идеите и информацията, а не на конкретните детайли.

Например в контекста на сесиите за тестване и поддържане на истории, тестерите със способността да мислят абстрактно могат да измислят интересни тестови сценарии. Вместо просто да четат критериите за приемане, тестерите ще разгледат историята на потребителя и ще се опитат да разберат как това може да се свърже или да повлияе на други части на системата.

Различно мислене

Различното мислене се отнася до способността да се генерират творчески идеи чрез проучване на много възможни решения в опит да се намери такова, което работи. Това включва събиране на факти и данни от различни източници и след това прилагане на логика и знания за вземане на решения.

Когато правим изследователски тестове, ние прилагаме оракули и евристика и правим преценки въз основа на предишния ни опит.


Конвергентно мислене

Конвергентното мислене е способността да се съберат редица различни части или перспективи на дадена тема по някакъв организиран, логичен начин, за да се намери един-единствен отговор.

Например, когато се опитваме да намерим основната причина за дефект, ние събираме подходяща информация и извличаме необходимите данни.

Последователно мислене

Последователното (линейно) мислене се отнася до способността да се обработва информация по подреден ред. Той включва прогресия стъпка по стъпка, при която трябва да се получи отговор на стъпка, преди да се предприеме друга стъпка.

В контекста на софтуерното тестване това е свързано с това, когато следваме скрипт с предварително дефинирани стъпки и очаквани резултати.

Цялостно мислене

Холистичното (нелинейно) мислене е способността да се види общата картина и да се разпознае как компонентите формират по-голямата система. Това включва разширяване на вашия мисловен процес в множество посоки, а не само в една посока.

В контекста на тестването това е, когато извършваме интеграция или системно тестване.

Заключение

Тестването на софтуер изисква задълбочено мислене. Това е процес на постоянно задаване на въпроси и анализ на информацията, която получаваме. Различните тестови дейности изискват различни мисловни процеси. Разбирането на различните видове мислене ще помогне при задаването на правилните въпроси.

Когато интервюираме тестери, трябва да задаваме базирани на сценарии въпроси, които упражняват мисловната способност на тестера по отношение на горните типове мислене.