Аксиомы тестирования

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