top of page
Поиск
  • Фото автораТимофей Милорадович

7 принципов тестирования программного обеспечения с примерами

By

Thomas Hamilton



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


7 принципов тестирования программного обеспечения:

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

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

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

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

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

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

Заблуждение об отсутствии ошибок



В этом учебном пособии по семи принципам вы узнаете:


Фон


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


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


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


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


Попытка переместить файл, когда он открыт

У вас нет прав безопасности для вставки файла в папку B

Папка B находится на общем диске, и емкость хранилища заполнена.

В папке B уже есть файл с таким именем, на самом деле список бесконечен

Или предположим, что у вас есть 15 полей ввода для тестирования, каждое из которых имеет 5 возможных значений, количество проверяемых комбинаций будет 5^15.

Если бы вы протестировали все возможные комбинации проекта, ВРЕМЯ И ЗАТРАТЫ НА ВЫПОЛНЕНИЕ выросли бы в геометрической прогрессии. Нам нужны определенные принципы и стратегии для оптимизации усилий по тестированию.


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

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

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


И вопрос на миллион долларов: как определить этот риск?


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


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


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


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


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

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


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


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


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

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


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


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


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


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

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


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


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


5) Отсутствие ошибки – заблуждение

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


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


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

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


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

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

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


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


Но изучение принципов тестирования похоже на обучение вождению в первый раз.


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


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

bottom of page