STLC - Фундаментальные принципы тестирования
Общая цель тестирования - найти ошибки как можно раньше. И, как только ошибки будут исправлены, убедитесь, что он работает должным образом и не нарушает никаких других функций.
Для достижения этих целей приведены семь основных принципов тестирования программного обеспечения:
Что показывает тестирование?
Тестирование может показать наличие дефектов, но нет способа доказать, что в продукте нет дефектов. Этапы тестирования позволяют убедиться, что тестируемое приложение работает в соответствии с заданными требованиями, и это помогает снизить вероятность необнаруженных дефектов в приложении. Но, даже если дефектов не обнаружено, это не значит, что это абсолютно правильно. Мы можем предположить, что AUT соответствует нашим критериям выхода и поддерживает требования в соответствии с SRD.
Возможно ли исчерпывающее тестирование?
100% охват или тестирование всех комбинаций входов и возможных комбинаций невозможны, кроме тривиальных случаев. Вместо исчерпывающего тестирования для определения объема тестирования используются анализ рисков и приоритеты. Здесь можно рассматривать большинство сценариев в реальном времени, включая наиболее вероятный негативный сценарий. Это поможет нам отследить сбой.
Раннее тестирование
Действия по тестированию должны начаться как можно скорее и быть сосредоточены на определенных целях в стратегии тестирования и ожидаемых результатах. Ранняя стадия тестирования помогает выявить дефект требований или несоответствия на уровне дизайна. Если эти типы ошибок обнаруживаются на начальном этапе, это помогает нам сэкономить время и является рентабельным. Ответ на вопрос, почему тестирование следует начинать на ранней стадии, очень прост - как только получено SRD, тестировщики могут проанализировать требование с точки зрения тестирования и заметить несоответствие требований.
Кластеризация дефектов
Основываясь на предыдущем анализе дефектов продукта, можно сказать, что большинство дефектов выявляются из небольшого набора модулей, которые имеют решающее значение для применения. Эти модули могут быть идентифицированы на основе сложности, различного взаимодействия с системой или зависимости от других модулей. Если тестировщики могут идентифицировать эти важные модули, они могут больше сосредоточиться на этих модулях, чтобы выявить все возможные ошибки. В ходе исследования установлено, что 8 из 10 дефектов определяются 20% функциональностью AUT.
Парадокс пестицидов
В чем заключается парадокс пестицидов - если пестициды часто используются для обработки сельскохозяйственных культур, у насекомых появляется определенная устойчивость, и постепенно распыленные таким образом пестициды оказываются неэффективными для насекомых.
Та же концепция применима и к тестированию. Здесь насекомые - это жуки, а пестициды - это тестовые примеры, которые используются снова и снова. Если одни и те же наборы тестовых примеров выполняются снова и снова, эти тестовые примеры становятся неэффективными по истечении определенного периода времени, и тестировщики не смогут идентифицировать какой-либо новый дефект.
Чтобы преодолеть эти условия, тестовые примеры следует время от времени пересматривать и пересматривать, и могут добавляться новые и различные тестовые примеры. Это поможет в выявлении новых дефектов.
Тестирование зависит от контекста
Этот принцип гласит, что два разных типа приложений не могут быть протестированы с использованием одного и того же подхода, пока оба приложения не будут иметь одинаковую природу. Например, если тестировщик использует один и тот же подход для веб-приложений и мобильных приложений, это совершенно неверно, и существует высокий риск низкого качества выпуска продукта. Тестировщики должны использовать разные подходы, методологии, техники и покрытие для разных типов и природы приложений.
Отсутствие ошибки - заблуждение
Этот принцип гласит, что поиск дефектов и их устранение до тех пор, пока приложение или система не станут стабильными, требует много времени, а также потребляет ресурсы. Даже после исправления 99% дефектов велик риск нестабильной работы. Первым делом необходимо проверить стабильность приложения и предварительные условия среды. Только если эти два условия будут выполнены, мы сможем приступить к детальному тестированию.