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