Принципы тестирования
Принципы тестирования
по ГОСТ Р 56920-2024
системности
1) Системности
Предполагает наличие целеполагания и связанности действий в тестировании для приемлемых условий создания (модернизации, развития) конкретной системы.
целенаправленности
2) Целенаправленности при выборе и применении методов и инструментариев тестирования
Предполагает использование доступных методов и инструментариев для выявления дефектов и ошибок в проверяемых элементах ПО, начиная с самых ранних этапов создания ПО за счет проверки наиболее вероятных и востребованных ситуаций и условий функционирования системы, для которой это ПО предназначено.
Выявление дефектов и ошибок и их устранение повысит качество ПО, но по-прежнему не гарантирует их отсутствия для не проверенных, но возможных ситуаций и условий.
сбалансированности
3) Сбалансированности
Принцип сбалансированности эффектов от тестирования различных элементов ПО в условиях контекста тестирования, неопределенностей, возможных угроз и объективных ограничений, свойственных для условий эксплуатации конкретной системы.
независимости тестировщиков от разработчиков
4) Независимости тестировщиков от разработчиков
Независимость тестирования считается высокой, если тест разрабатывает один человек, а проводит другой, например, потому что независимый тестировщик с меньшей вероятностью сделает те же ошибочные предположения, что и разработчик, и поэтому с большей вероятностью выявит допущенные ошибки разработчика.
систематизации
5) Систематизации
Принцип систематизации выявленных дефектов и ошибок для определения причин их возникновения и их устранения.
Например, ошибки при выборе ненадежных составных компонентов, недостаточный охват тестового покрытия, низкая квалификация программистов или тестировщиков на предыдущих этапах тестирования.
обновления тест-кейсов
6) Регулярного обновления тестовых сценариев и примеров
Принцип регулярного критичного пересмотра и обновления тестовых сценариев и примеров для обеспечения разнообразия подходов к тестированию, совершенствованию и развитию тестировщиков.
ориентации на управление рисками
7) Ориентации на управление рисками
Ориентации на управление рисками при разработке стратегии тестирования ПО, системном анализе результатов тестирования и оценке влияния остаточных рисков на качество, безопасность и эффективность конкретной системы, для которой предназначено ПО.
Применение всех принципов включает в себя использование системного анализа требований, предметной области, контекста и рисков, расстановку приоритетов, моделирование вероятных сценариев для применения ПО, работу с конечными пользователями, применение специальных показателей, методов и инструментариев тестирования с учетом специфики конкретных систем.
International Software Testing Qualifications Board
Принципы тестирования по ISTQB
Testing shows presence of defects
1) Тестирование демонстрирует наличие дефектов
Тестирование показывает наличие дефектов, но не гарантирует их отсутствия.
Невозможно предугадать все вероятные ситуации, которые могут привести к дефекту.
Exhaustive testing is impossible
2) Исчерпывающее тестирование недостижимо
Полное тестирование с использованием всех входных комбинаций данных, результатов и предусловий физически невыполнимо.
Но, хотя предусмотреть всё невозможно, это не повод не предусматривать ничего.
В мире ограниченных ресурсов и возможностей должны использоваться анализ рисков и расстановка приоритетов.
Early testing
3) Раннее тестирование
Следует начинать тестирование на ранних стадиях жизненного цикла разработки ПО.
Так тестирование сэкономит время и деньги.
Исправление выявленных ошибок на ранних стадиях дешевле, нежели в конце.
Defects clustering
4) Скопление дефектов
Дефекты не размазаны равномерно по приложению, а сконцентрированы в некоторых модулях системы.
Это проявление принципа Парето: 80% дефектов содержатся в 20% модулей.
Pesticide paradox
5) Парадокс пестицида
Если повторять те же тестовые сценарии снова и снова, в какой-то момент этот набор тестов перестанет выявлять новые дефекты.
Поскольку ПО эволюционирует, многие из ранее найденных дефектов исправляют и старые тест-кейсы больше не срабатывают.
Поэтому необходимо регулярно пересматривать и обновлять тест-кейсы, разнообразить подходы к тестированию, применять различные техники тестирования.
Testing is context depending
6) Тестирование зависит от контекста
Невозможно выработать некий «универсальный подход к тестированию» на все случаи жизни.
Программные продукты, относящиеся к разным предметным областям, требуют разного подхода к организации и проведению процесса тестирования.
Absence-of-errors fallacy
7) Заблуждение об отсутствии ошибок
Отсутствие найденных дефектов при тестировании не означает пригодность продукта к использованию.
Система должна быть удобна пользователю в использовании и удовлетворять его ожиданиям и потребностям.
На мой взгляд, спорный пункт, т.к. существует тестирование удобства использования (usability testing), которое как раз и направлено на установление степени удобства использования, обучаемости, понятности и привлекательности для пользователей разрабатываемого продукта в контексте заданных условий.