Аксиомы тестирования
Материал из Rosalab Wiki
- Хороший тест тот, который позволяет обнаружить ошибку, а не тот, который демонстрирует правильную работу программы.
- Тесты, не способствующие обнаружению ошибок и только подтверждающие корректность функционирования программного обеспечения, являются неэффективными, т.к. приводят к бесполезным затратам ресурсов и времени.
- Одна из самых сложных проблем при тестировании - решить, когда нужно его закончить.
- Невозможно тестировать свою собственную программу. Тестирование должно быть в высшей степени разрушительным процессом, но программист не может относиться к своей программе как разрушитель (психологические причины, жесткий график, давление коллектива и т.д.).
- Необходимая часть всякого теста — описание ожидаемых выходных данных или результатов. Ожидаемые результаты нужно определять заранее.
- Избегайте невоспроизводимых тестов, не тестируйте «с лету».
- Никогда не используйте тестов, которые тут же выбрасываются. Более того, тесты следует документировать и хранить в такой форме, чтобы каждый мог использовать их повторно.
- Готовьте тесты, как для правильных, так и для неправильных входных данных.
- По мере того как растет количество найденных ошибок, так же растет вероятность такого же количества не найденных ошибок.
- Тест удаляется из дальнейшей работы, если он отработал правильно, т.к. его повторный пропуск не дает ничего нового.
- Тест возвращается в работу, если вносились изменения в блоки, работающие при этом тесте.
- Составляя календарный план разработки программного обеспечения, разумно всегда настаивать на выделении необходимого времени для обеспечения надлежащего качества его тестирования.
- Если программное обеспечение правильно ведет себя для солидного набора тестов, нет оснований утверждать, что в нем нет ошибок.