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