Тестирование программного обеспечения. Основы
Шрифт:
Цель № 4. Создание уверенности в уровне качества объекта тестирования. Проверяется программа, чтобы убедиться, что она соответствует предъявляемым к ней критериям и параметрам качества. Есть, к примеру, зафиксированные параметры качества программы: она должна запускаться и отображать свой интерфейс через 5 секунд после запуска; документ в программе должен сохраняться за 2 секунды; в программе не должно быть критических дефектов и т. д. Специалисты проверяют, что программа соответствует установленным параметрам качества.
Цель № 5. Предотвращение дефектов, т. е. максимальное сокращение количества дефектов путём их предотвращения на ранних этапах создания программного обеспечения.
Цель № 6. Обнаружение отказов и дефектов в ПО. В этом случае мы выявляем уже занесённые в результате разработки ПО дефекты. Это могут быть: дефекты в логике работы программы; ошибки в алгоритмах; дефекты в интерфейсе и взаимодействии с пользователем; дефекты в работе с внешними системами и базами данных; недочёты в документации и описании функционала. Проводится систематический поиск и выявление таких дефектов. Это позволяет устранить их до выхода в продуктивное окружение, чтобы обеспечить его корректную и безаварийную работу. В идеале, все дефекты должны быть найдены и исправлены на этапе тестирования, прежде чем программа будет поставлена пользователю.
Цель № 7. Предоставление заинтересованным лицам достаточной информации, позволяющей им принять обоснованные решения в отношении уровня качества объекта тестирования. В ходе тестирования специалисты по тестированию проверяют соответствие программы требованиям, выявляют дефекты. На основании полученных результатов формируют отчёты, в которых указывают количество и критичность найденных дефектов, степень реализации функциональных и нефункциональных требований и другие показатели качества. Эта информация позволяет заинтересованным сторонам принять обоснованное решение о готовности программы: нужна ли доработка для устранения дефектов, возможен ли запуск в эксплуатацию или требуется ещё один цикл разработки и тестирования.
Цель № 8. Соблюдение договорных, правовых или нормативных требований, или стандартов и/или проверка соответствия объекта тестирования таким требованиям и стандартам. Специалисты по тестированию проверяют, что разрабатываемая программа соответствует государственным или международным стандартам, законодательству и т. д. Пример: программа работает с платёжными системами и должна соответствовать их стандартам и требованиям. При тестировании специалисты должны убедиться в этом, в противном случае данная программа не будет допущена к работе с платёжными системами.
Цели тестирования могут отличаться, в зависимости от этапа жизненного цикла программы, на котором проводится тестирование, а также в зависимости от назначения и типа тестируемого компонента или программы.
Верификация и валидация
Проводя тестирование, мы в этот момент проводим верификацию и валидацию программы. Кого-то смутят уже сами эти слова и явно не появится желания погружаться в определения непонятных терминов. Однако, придётся в них разобраться, так как специалисты по тестированию сталкиваются с ними постоянно.
Верификация – подтверждение того, что заданные требования полностью реализованы в программе.
Подтвердить, что заданные требования полностью реализованы в программе – означает необходимость убедиться, что программисты сделали то, что заказчик зафиксировал в требованиях. Рассмотрим на примере. У заказчика есть требование к программе по сложению чисел. Смотрите таблицу:
Верифицируя программу при проведении тестирования, мы должны проверить, что изложенные требования реализованы и всё сделано так, как требовалось. Мы проверяем, что можно вводить только положительные целые числа, что максимальное количество вводимых и отображаемых символов равно четырём, что в поле можно вводить информацию с клавиатуры, вставлять данные из буфера обмена и из поля можно копировать данные в буфер обмена. Если программа одну из проверок не пройдёт, к примеру, из поля нельзя будет копировать данные, то программа не она верификацию, так как не все требования реализованы. Если же все требования соблюдены, программа пройдёт верификацию. С этим разобрались.
Теперь рассмотрим валидацию.
Валидация – подтверждение того, что функции программы при её использовании соответствуют требованиям и ожиданиям заказчика и программа способна выполнять задачи, которые от неё ожидают.
Валидируя программу, мы должны проверить, что реализованная программистами функциональность соответствует требованиям и ожиданиям заказчика. Рассмотрим на примере. У заказчика есть требование к программе по сложению чисел. Смотрите таблицу:
Проводя верификацию, мы убедились, что в поле отображения результатов после сложения чисел отображается результат. Однако через 10 секунд он исчезает. В требованиях не сказано, сколько времени отображать результат сложения, поэтому верификация пройдена. Однако заказчики ожидают, что он не будет исчезать. И логически мы это понимаем. Т. е. программа соответствует требованиям, но не соответствует ожиданиям заказчика, а это означает, что она не прошла валидацию. Если все требования соблюдены, и программа работает, как ожидает заказчик, она пройдёт валидацию.
Позитивное и негативное тестирование
В программе есть заявленный функционал, который описан в требованиях, и, проверяя данный функционал, мы проводим позитивное тестирование, т. е. убеждаемся, что программа работает так, как описано в требованиях, при использовании допустимых и корректных данных. Нам также необходимо проверить, как программа будет работать, если использовать некорректные данные и непредусмотренные ситуации – это уже негативное тестирование.