1.5 Что такое тестирование, QA, QC? Верификация и валидация
Тестирование (testing) - процесс, содержащий все активности жизненного цикла, как динамические, так и статистические, касающиеся планирования, подготовки и оценки компонента или системы и связанных с этим результатов работ с целью определить, что они соответствуют описанным требованиям, показать, что они пригодны для заявленных целей и для определения дефектов. [ISTQB].
Динамические - с запуском кода. Статистические - без запуска кода.
Тестирование программного обеспечения - процесс анализа программного средства и сопутствующей документации с целью выявления дефектов и повышения качества продукта. [по С. Куликову]
Тестирование ПО - способность оценить качество ПО и снизить риск отказа ПО. [Где-то из Интернета]
Тестирование ПО - проверка соответствия результатов работы программного продукта на соответствие заданным критериям. [Где-то из Интернета 2]
- Оценка рабочих продуктов (требования, пользовательские истории, проектирование и код)
- Все ли указанные требования выполнены
- Завершен ли объект и работает, как ожидают пользователи и заинтересованные лица
- Создание уверенности в уровне качества объектов тестирования
- Предотвращение и обнаружение отказов и дефектов
- Предоставление заинтересованным лицам достаточной информации, позволяющей им принять обоснованные решения
- Снижение уровня риска ненадлежащего качества ПО
- Соблюдение договорных, правовых или нормативных требований, или стандартов и/или проверка соответствия объекта тестирования им
[ISTQB CTFL Syllabus 2018]
Отладка (debugging) - деятельность разработки для нахождения, анализа и исправления таких дефектов. Последующее подтверждающее тестирование проверяет, устранены ли дефекты. [ISTQB CTFL Syllabus 2018]
Контроль качества (Quality control, QC) - набор действий, предназначенных для оценивания качества компонента или системы. [ISTQB]
Тестеровщик работает контрено с продуктом, контролирует качество конкретного продукта. Тестировщик не работает с процессами. Для процессов существует другой процесс. Тестирование конкретно работает с продуктом, а не с процессами.
Обеспечение качества (Auality assurance, QA) - активности, направленные на обеспечение уверенности в том, что требования к качеству будут выполнены. [ISTQB]
QA направлен на процессы в компании.
Различия QA и QC:
QC (Контроль качества) - включает различную деятельность, в том числе работы по тестированию, которые поддерживают достижение соответствующего уровня качества.
QA (Обеспечение качества) - сосредоточено на соблюдении соответствующих процессов для обеспечения уверенности, что будут достигнуты соответствующие уровни качества. [ISTQB]
Управление качеством (Quality management, QM) - скоординированные действия по руководству и контролю организации в отношении качества, которые включают в себя установление политики качества и целей качества, планирование качества, контроль качества, обеспечение качества и повышение качества. [ISTQB]
Валидация и Верификация
Верификация (Verification) - доказанное объективными результатами исследования подтверждение того, что определенные требования были выполнены. [ISTQB]
Валидация (Validation) - доказанное объективными результатами исследования подтверждение того, что требования для ожидаемого конкретного использования приложения были выполнены.
Различия верификации и валидации:
- Верификация: 1) Нужды заказчика; 2) Делаем ли мы продукт правильно?
- Валидация: 1) Нужды пользователя; 2) Делаем ли мы правильный продукт?
Процесс Верификации - делаем ли мы продукт правильно? То есть соответствуем ли всем требованиям, стандартам, технической документации, требованиям заказчика.
Процесс Валидации - делаем ли мы тот продукт, который нужен и понравиться пользователю?
Поступило ТЗ, нужно сделать велосипед. Мы сделали велосипед, он соответствует требованиям заказчика (нужный цвет, размер, детали, материалы и тд.). Большой, двухколесный, с рамой (типа школьник). Но незадача: этот велосипед разрабатывался для детей, возрастом до 3-х лет. И он не подойдет ребенку 3-х лет. То есть велосипед не пройдет Валидацию!