1. Використовуйте підхід захисного програмування. Тобто передбачайте ще під час написання програми обробку ситуацій, які “не можуть статись ні за яких обставин”. І під час тестування обов’язково переконайтесь, що програма, захищена від некоректних даних. Хорошим прикладом тут може служити перевірка на нульовий або навіть від’ємний розмір масиву в програмі обчислення середнього значення елементів цього масиву.
2. Тестуйте граничні умови: при написанні кожного циклу передбачте перевірку того факту, що тіло циклу відпрацює потрібну кількість разів; в кожному умовному виразі переконайтесь, що розгалуження відбувається правильно. Основна ідея тут полягає в тому, що коли трапляється помилка, то з великою ймовірністю вона пов’язана саме з виходом за граничні значення. І навпаки, якщо програма працює правильно при граничних значеннях тестових даних, то скоріше за все вона поводиться коректно і у звичайних умовах.
3. Аналізуйте результати тестування. Вище вже йшлося про те, що одержані результати тесту мають співпадати з очікуваними значеннями. Існують різні способи перевірки результатів:
- обчисліть для порівняння результат іншим способом, наприклад, на калькуляторі;
- використайте табличні дані;
- порівняйте з результатом роботи іншої програми, яка обчислює той самий результат іншим способом;
- в деяких випадках можна спробувати обернути результат тесту – чи одержите ви вхідні дані (така ситуація можлива, наприклад для програм шифровки або стискання інформації) ?
4. Оцінюйте обсяг тестів. Тестування не можна вважати завершеним, поки кожний оператор програми не буде перевірено.