7 принципов тестирования
Тестирование может выявить присутствие ошибок, но не может доказать в полной мере, что дефектов нет. Сколько бы успешных тестов не провели, нельзя утверждать, что нет таких тестов, которые бы не нашли ошибку.
- 1. Тестирование демонстрирует наличие дефектов, а не их отсутствие.
Тестирование может выявить присутствие ошибок, но не может доказать в полной мере, что дефектов нет. Сколько бы успешных тестов не провели, нельзя утверждать, что нет таких тестов, которые бы не нашли ошибку. - 2. Исчерпывающее тестирование недостижимо.
Сколь бы скрупулёзным тестирование не было, нельзя учесть все возможные сценарии, а значит и предвидеть все возможные ошибки. - 3. Заблуждение об отсутствии ошибок.
Можно сколько угодно находить ошибки, и даже, казалось бы, не обнаруживая их больше, нет гарантии того, что ошибки найдены все и продукт полностью качественный и готовый. Надо помнить такую аксиому - не существует какого-либо продукта без багов или ошибок. - 4. Раннее тестирование сохраняет время и деньги.
Этот принцип связан с понятием «цена дефекта». Цена дефекта существенно растет на протяжении жизненного цикла разработки ПО. Чем раньше обнаружен дефект, тем быстрее, проще и дешевле его исправить. - 5. Принцип скопления или кластеризация дефектов.
Принцип, который предполагает, что небольшое количество модулей содержат в себе большинство багов. Это яркий пример применения принципа Парето в тестировании: 20% модулей содержат 80% всех багов. - 6. Тестирование зависит от контекста.
Выбор методологии, техники и вида тестирования напрямую зависит от природы самой системы. К примеру, медицинское программное обеспечение требует более тщательной проверки, чем компьютерная игра. - 7. Парадокс пестицида.
Если один и тот же пестицид использовать на протяжении долгого времени, например, для истребления неких жуков, то со временем его эффективность упадёт, так как у этих насекомых выработается устойчивость к одному и тому же пестициду. Такая же ситуация и с тестами, если повторять одни и те же тесты снова и снова, в какой-то момент они перестанут выявлять новые ошибки.