Какво представлява Sanity Check в сферата на софтуерното тестване?

+7 гласа
608 прегледа
попитан 2016 май 16 в Тестване на софтуер от Nikola (1,150 точки)
Здравейте,

може ли да ми помогнете? Интересувам се от това какво означава термина Sanity Check и дали може да ми дадете някои примери?

2 отговори

+4 гласа
отговорени 2016 май 16 от Daniel Ivanov (11,160 точки)
редактиран 2017 април 5 от Daniel Ivanov

Привет,

Sanity check, иначе казано на български „проверка за здрав разум“ , представлява тестване/валидиране на нещо, което трябва да спазва много ясна и проста логика. Все едно питаш някой да валидира дали едно нещо не е ненормално и следва логиката така, както и той. Тази проверка не е само в сферата на QA-ството и и се използва в широка практика.

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

Sanity check/testing се прави когато development team-а иска набързо да видят състоянието, в което е самият продукт (в кой state на проекта са)  и е обикновено след промяна в кода .

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

Друго нещо, което си струва да се отбележи е, че sanity check-а се слави с бързината си.

Относно примерите:

  • В математиката бърз пример: проверка дали нещо на квадрат дава някакво число

74 на квадрат дали е равно на 4,366. Правиш груба проверка колко е 70 на квадрат - 70 на квадрат е колкото 7 на квадрат x 10 на квадрат, което прави 49 х 100 = 4,900. Е няма как 74 на квадрат да е 4,366 при положение, че 70 на квадрат е 4,900.

  • Друг пример: Ако приложението ви, което например пресмята нещо,се причупи на 2+2 да дава  5, няма смисъл да смятаме sin 30 + cos 50 или други по-сложни примери и функции.
+4 гласа
отговорени 2016 май 16 от IvayloHristov (5,410 точки)

Никола, Sanity Check се налага, защото понякога процесите на софтуерно тестване са много времеотнемащи като време и ресурси. Например може да има ситуация, когато за да се изтества нещо се изисква да се пуснат тестове ( много често това са автоматични тестове ), които за самото им протичане минават дни и се ангажират много компютри. Тогава се получава кофти ако билда на софтуера дори не може да зареди или има фундаменталана грешка, която е ясно, че всичките тестове ще се оцветят в червено.  Когато имаме такава ситуация първо се прави един прост тест за това дали има смисъл да се тества.

 

Sanity check е тест за това дали изобщо има смисъл да се започва с цялостно тестване

Ако трябва да дам пример с не ИТ термини. Представи си, че си купуваш няколко кашона с много скъпи плочки за банята. И понеже са много скъпи искаш при покупката да извикаш 3 - 4 приятеля и да отворите кашоните и да проверите всяка една плочка ( в детайли ) дали няма драскотина, малка пукнатина или дали няма малки точици. Това изиска да извикаш приятелите си, да са на място за проверката и да им ангажираш мега много време. Но представи си, че отвориш кашоните и плочките всички до една са натрошени на сол. Тогава си изгубил времето на приятелите си да пътуват и тн. 

За това в такава ситуация се прави един бърз поглед на кашоните и ако на пръв поглед плочките изглеждат здрави, тогава викаш бригадата от приятели тестери. Това е sanity check. 

...