4️⃣Принципи тестування

Тестування програмного забезпечення – креативна та інтелектуальна робота. Розробка правильних та ефективних тестів – досить непросте заняття.

  • Тестування показує присутність дефектів, але не їх відсутність. Не можна довести, що в програмі немає багів, але тестуючи, можна зменшити ймовірність знаходження багу користувачами.

  • Вичерпне тестування неможливе. Протестувати програму з усіма можливими комбінаціями вхідних значень неможливо за скінченний проміжок часу. Навіть для простих програм типу калькулятор це означало б перевірку операцій з усіма дійсними числами від -∞ до +∞. Саме тому тестери використовують техніки тест дизайну та аналізують ризики.

  • Раннє тестування економить час і гроші. Чим швидше в життєвому циклі ми знаходимо баг, ти простіше і дешевше його пофіксити. Статичне тестування вимог набагато дешевше, ніж повне регресійне тестування системи після баг фіксу перед релізом.

  • Дефекти часто скупчуються разом. Зазвичай, знайшовши 1 помилку в певному модулі програми, ймовірність знайти там ще баги – зростає. Тут знову нам допомагає аналіз ризиків.

  • Остерігайтеся парадоксу пестицидів. Якщо одні й ті самі тести проводити багато разів – ймовірність знайти дефект зменшується. І це є одним з аргументів на користь переваги ручного тестування перед автоматизованим, оскільки мануальний тестер завжди робить варіації початкового плану.

  • Тестування контекстно залежне. Різні програми ми тестуємо по різному. Тестування автопілоту літака вимагає серйознішого підходу та зусиль ніж черговий, навіть дуже класний, інтернет магазин. Саме тому, чим більше досвіду ми маємо, тим більше ми цінуємось, оскільки знаємо різні контексти (доменні знання).

  • Відсутність помилок – це помилка. Дехто може думати, що тестери можуть знайти багато багів, їх пофіксять і багів більше не буде. Але принципи 1 та 2️ кажуть нам, що це неможливо. Більш того, знаходження і фікс великої кількості багів може призвести до хибної впевненості, що програма якісна. Насправді ж, навіть система, яку протестували і не знайшли багів може виявитись нецікавою користувачам і нікому не потрібною.

І ще декілька важливих принципів:

  • тестування повинне проводитися незалежними спеціалістами;

  • залучайте кращих професіоналів;

  • тестуйте як позитивні, так і негативні сценарії;

  • не допускайте змін в програмі в процесі тестування;

  • вказуйте очікуваний результат виконання тестів.

Last updated