Този урок представя седемте основни принципа за тестване на софтуера, които всеки тестващ софтуер и специалист по QA трябва да знае.
7 Принципи на тестване на софтуер
- Тестването показва наличие на дефекти
- Изчерпателно тестване не е възможно
- Ранно тестване
- Групиране на дефекти
- Парадокс на пестицидите
- Тестването зависи от контекста
- Липса на грешки
Нека научим принципите на тестване със следния видео пример -
Щракнете тук, ако видеоклипът не е достъпен
Заден план
Важно е да постигнете оптимални резултати от теста, докато провеждате тестване на софтуера, без да се отклонявате от целта. Но как определяте, че следвате правилната стратегия за тестване? За това трябва да се придържате към някои основни принципи на тестване. Ето общите седем принципа на тестване, които са широко практикувани в софтуерната индустрия.
За да разберете това, помислете за сценарий, при който премествате файл от папка A в папка B.
Помислете за всички възможни начини, по които можете да тествате това.
Освен обичайните сценарии, можете да тествате и следните условия
- Опитва се да премести файла, когато е отворен
- Нямате права за защита, за да поставите файла в папка Б
- Папка B е на споделено устройство и капацитетът за съхранение е пълен.
- Папка Б вече има файл със същото име, всъщност списъкът е безкраен
- Или да предположим, че имате 15 полета за въвеждане за тестване, като всяко има 5 възможни стойности, броят на комбинациите, които трябва да се тестват, ще бъде 5 15
Ако трябваше да тествате всички възможни комбинации, проект ВРЕМЕТО НА РАЗВИТИЕ И РАЗХОДИТЕ би се увеличил експоненциално. Нуждаем се от определени принципи и стратегии, за да оптимизираме усилията за тестване
Ето 7-те принципа:
1) Изчерпателно тестване не е възможно
Да! Изчерпателно тестване не е възможно. Вместо това се нуждаем от оптималното количество тестове въз основа на оценката на риска на приложението.
И въпросът за милион долара е, как определяте този риск?
За да отговорим на това, нека направим упражнение
Според вас коя операция най-вероятно ще доведе до отказ на вашата операционна система?
Сигурен съм, че повечето от вас биха предположили, Отваряйки 10 различни приложения едновременно.
Така че, ако тествахте тази операционна система, щяхте да осъзнаете, че вероятно е да се открият дефекти в многозадачната дейност и трябва да бъдат тествани задълбочено, което ни води до следващия ни принцип Дефектиране
2) Групиране на дефекти
Клъстериране на дефекти, което гласи, че малък брой модули съдържат повечето от откритите дефекти. Това е приложението на принципа на Парето за тестване на софтуер: приблизително 80% от проблемите се намират в 20% от модулите.
По опит можете да идентифицирате такива рискови модули. Но този подход има свои проблеми
Ако едни и същи тестове се повтарят отново и отново, в крайна сметка същите тестови случаи вече няма да намерят нови грешки.
3) Пестицид Парадокс
Повтарящото се използване на същата смес от пестициди за унищожаване на насекоми по време на земеделие с течение на времето ще доведе до развиване на устойчивост на насекомите срещу пестицида. Същото се отнася и за тестване на софтуер. Ако се провеждат същите набори от повтарящи се тестове, методът ще бъде безполезен за откриване на нови дефекти.
За да се преодолее това, тестовите случаи трябва редовно да се преглеждат и преразглеждат, като се добавят нови и различни тестови случаи, за да се открият повече дефекти.
Тестерите не могат просто да зависят от съществуващите техники за тестване. Той трябва непрекъснато да се грижи за подобряване на съществуващите методи, за да направи тестването по-ефективно. Но дори и след цялата тази пот и упорита работа при тестване, никога не можете да твърдите, че продуктът ви не съдържа грешки. За да се приберем вкъщи, нека видим това видео на публичното стартиране на Windows 98
Смятате, че компания като MICROSOFT не би изпробвала щателно своята операционна система и би рискувала репутацията си, само за да види как нейната операционна система се срива по време на публичното й стартиране!
4) Тестването показва наличие на дефекти
Следователно принципът на тестване гласи, че - Тестването говори за наличие на дефекти и не говори за липса на дефекти. т.е. тестването на софтуер намалява вероятността от неоткрити дефекти да останат в софтуера, но дори и да не бъдат открити дефекти, това не е доказателство за коректност.
Но какво ще стане, ако работите допълнително, като вземете всички предпазни мерки и направите своя софтуерен продукт 99% без грешки. А софтуерът не отговаря на нуждите и изискванията на клиентите.
Това ни води до следващия ни принцип, който гласи, че - Отсъствие на грешка
5) Отсъствие на грешка - заблуда
Възможно е софтуерът, който е 99% без грешки, да е все още неизползваем. Това може да се случи, ако системата е тествана щателно за грешно изискване. Тестването на софтуер не е просто откриване на дефекти, но и проверка дали софтуерът отговаря на нуждите на бизнеса. Липсата на грешка е заблуда, т.е. намирането и отстраняването на дефекти не помага, ако компилацията на системата е неизползваема и не отговаря на нуждите и изискванията на потребителя.
За да се реши този проблем, следващият принцип на тестване гласи, че Ранното тестване
6) Ранно тестване
Ранно тестване - Тестването трябва да започне възможно най-рано в жизнения цикъл на разработката на софтуер. Така че всички дефекти в изискванията или фазата на проектиране се улавят в ранните етапи. Много по-евтино е да се поправи дефект в ранните етапи на тестване. Но колко рано трябва да започне тестването? Препоръчително е да започнете да намирате грешката в момента, в който са определени изискванията. Повече за този принцип в по-късен урок за обучение.
7) Тестването зависи от контекста
Тестването зависи от контекста, което всъщност означава, че начинът, по който тествате сайт за електронна търговия, ще се различава от начина, по който тествате реклама на приложението на рафта. Всички разработени софтуери не са идентични. Може да използвате различен подход, методологии, техники и видове тестване в зависимост от типа на приложението. Например тестване, всяка POS система в магазин за продажба на дребно ще бъде различна от тестването на банкомат.
Мит: "Принципите са само за справка. Няма да ги използвам на практика."
Това е толкова много невярно. Тестовите принципи ще ви помогнат да създадете ефективна тестова стратегия и да изготвите проектопримери за улавяне на грешки.
Но изучаването на принципите на тестване е точно като да се научите да шофирате за първи път.
Първоначално, докато се научите да шофирате, обръщате внимание на всяко нещо като превключване на предавките, скорост, управление на съединителя и т.н. Но с опит просто се фокусирате върху шофирането, останалото идва по естествен път. Такова, че дори провеждате разговори с други пътници в колата.
Същото важи и за принципите на тестване. Опитните тестери са възприели тези принципи до ниво, което ги прилагат дори без да се замислят. Следователно митът, че принципите не се използват на практика, просто не е верен.