Учебники

Семь принципов

В этом руководстве представлены семь основных принципов тестирования программного обеспечения, которые должен знать каждый профессиональный тестировщик программного обеспечения и специалист по обеспечению качества.

Нажмите здесь, если видео не доступно

Фон

Важно, чтобы вы достигли оптимальных результатов тестирования при проведении тестирования программного обеспечения, не отклоняясь от цели. Но как вы определяете, что придерживаетесь правильной стратегии тестирования? Для этого вам нужно придерживаться некоторых основных принципов тестирования. Вот семь основных принципов тестирования, которые широко практикуются в индустрии программного обеспечения.

Чтобы понять это, рассмотрим сценарий, в котором вы перемещаете файл из папки A в папку B.

Подумайте обо всех возможных способах проверить это.

Помимо обычных сценариев, вы также можете проверить следующие условия

  • Попытка переместить файл, когда он открыт
  • У вас нет прав безопасности для вставки файла в папку B
  • Папка B находится на общем диске, и объем памяти заполнен.
  • В папке B уже есть файл с таким же именем, фактически список бесконечен
  • Или предположим, что у вас есть 15 полей ввода для проверки, каждое из которых имеет 5 возможных значений, количество проверяемых комбинаций будет 5 ^ 15

Если бы вы протестировали все возможные комбинации, проект EXECUTION TIME & COSTS увеличился бы в геометрической прогрессии. Нам нужны определенные принципы и стратегии для оптимизации усилий по тестированию

Вот 7 принципов:

1) исчерпывающее тестирование невозможно

Да! Исчерпывающее тестирование невозможно. Вместо этого нам необходим оптимальный объем тестирования на основе оценки риска приложения.

И вопрос на миллион долларов, как вы определяете этот риск?

Чтобы ответить на это, давайте сделаем упражнение

По вашему мнению, какая операция наиболее вероятно приведет к сбою вашей операционной системы?

Я уверен, что большинство из вас догадались бы, открыв 10 разных приложений одновременно.

Поэтому, если бы вы тестировали эту Операционную систему, вы бы поняли, что дефекты могут быть обнаружены в многозадачной деятельности, и ее необходимо тщательно протестировать, что подводит нас к следующему принципу кластеризации дефектов.

2) Кластеризация дефектов

Кластеризация дефектов, которая утверждает, что небольшое количество модулей содержит большинство обнаруженных дефектов. Это приложение принципа Парето к тестированию программного обеспечения: примерно 80% проблем обнаруживаются в 20% модулей.

По своему опыту вы можете определить такие рискованные модули. Но у этого подхода есть свои проблемы

Если одни и те же тесты повторяются снова и снова, в конечном итоге одни и те же тестовые примеры больше не будут обнаруживать новых ошибок.

3) парадокс пестицидов

Повторное использование одной и той же смеси пестицидов для уничтожения насекомых во время земледелия со временем приведет к тому, что у насекомых будет развиваться устойчивость к пестицидам. Таким образом, пестициды будут неэффективны для насекомых. То же самое относится и к тестированию программного обеспечения. Если проводится один и тот же набор повторяющихся тестов, метод будет бесполезен для обнаружения новых дефектов.

Чтобы преодолеть это, необходимо регулярно проверять и пересматривать контрольные примеры, добавляя новые и различные контрольные примеры, чтобы помочь найти больше дефектов.

Тестеры не могут просто зависеть от существующих методов тестирования. Он должен постоянно следить за улучшением существующих методов, чтобы сделать тестирование более эффективным. Но даже после всего этого пота и тяжелой работы в тестировании, вы никогда не сможете заявить, что ваш продукт не содержит ошибок. Чтобы понять этот момент, давайте посмотрим это видео публичного запуска Windows 98

Вы думаете, что такая компания, как MICROSOFT, не провела бы тщательное тестирование своей ОС и рискнула бы своей репутацией, просто чтобы увидеть, как их ОС рушится во время публичного запуска!

4) Тестирование показывает наличие дефектов

Следовательно, принцип тестирования гласит, что — Тестирование говорит о наличии дефектов и не говорит об отсутствии дефектов. Т.е. тестирование программного обеспечения снижает вероятность того, что в программном обеспечении останутся не обнаруженные дефекты, но даже если дефекты не обнаружены, это не является доказательством правильности.

Но что, если вы будете работать усерднее, принимая все меры предосторожности и сделав свой программный продукт безошибочным на 99%. И программное обеспечение не отвечает потребностям и требованиям клиентов.

Это приводит нас к следующему принципу, который гласит: отсутствие ошибок

5) Отсутствие ошибки — ошибка

Вполне возможно, что программное обеспечение, которое на 99% не содержит ошибок, по-прежнему невозможно использовать. Это может быть в случае, если система тщательно проверена на неправильное требование. Тестирование программного обеспечения — это не просто поиск дефектов, но также проверка того, что программное обеспечение отвечает потребностям бизнеса. Отсутствие ошибки является ошибкой, т. Е. Обнаружение и устранение дефектов не помогает, если сборка системы непригодна для использования и не отвечает потребностям и требованиям пользователя.

Чтобы решить эту проблему, следующий принцип тестирования гласит, что раннее тестирование

6) Раннее тестирование

Раннее тестирование. Тестирование должно начинаться как можно раньше в жизненном цикле разработки программного обеспечения. Таким образом, любые дефекты в требованиях или стадии проектирования фиксируются на ранних стадиях. Гораздо дешевле исправить дефект на ранних этапах тестирования. Но как рано начинать тестирование? Рекомендуется начать поиск ошибки, как только требования будут определены. Подробнее об этом принципе в следующем учебном пособии.

7) Тестирование зависит от контекста

Тестирование зависит от контекста, что в основном означает, что способ тестирования сайта электронной коммерции будет отличаться от способа тестирования рекламы с готового приложения. Все разработанные программы не идентичны. Вы можете использовать другой подход, методологии, методы и типы тестирования в зависимости от типа приложения. Например, тестирование любой POS-системы в розничном магазине будет отличаться от тестирования банкомата.

Краткое изложение семи принципов тестирования

Принцип 1 Тестирование показывает наличие дефектов
Принцип 2 Исчерпывающее тестирование невозможно
Принцип 3 Раннее тестирование
Принцип 4 Кластеризация дефектов
Принцип 5 Парадокс пестицидов
Принцип 6 Тестирование зависит от контекста
Принцип 7 Отсутствие ошибок — заблуждение

Миф: «Принципы только для справки. Я не буду использовать их на практике».

Это так очень не соответствует действительности. Принципы тестирования помогут вам создать эффективную стратегию тестирования и составить наброски тестовых примеров с обнаружением ошибок

Но изучение принципов тестирования — это то же самое, что учиться водить в первый раз.

Вначале, когда вы учитесь водить, вы обращаете внимание на все, включая переключение передач, скорость, управление сцеплением и т. Д. Но с опытом вы просто сосредотачиваетесь на вождении, а все остальное получается естественно. Такой, что вы даже проводите беседы с другими пассажирами в машине.

То же самое относится и к принципам тестирования. Опытные тестировщики усвоили эти принципы до уровня, на котором они применяют их даже не задумываясь. Следовательно, миф о том, что принципы не используются на практике, просто не соответствует действительности.