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




Рассмотрим семь важных моментов в тестирования:


  1. Тестирование показывает наличие дефектов
  2. Исчерпывающее тестирование невозможно
  3. Профилактика раннего тестирование
  4. Кластеризация дефектов
  5. Парадокс повторения
  6. Тестирование зависит от контекста
  7. Заблуждение об отсутствии ошибок
Тестирование показывает наличие дефектов
Цель тестирования программного обеспечения — выявить моменты когда программа может выйти из строя. Тестирование программного обеспечения говорит о наличии проверенных дефектов и не говорит об их полном отсутствии. Тестировщик может упустить некоторые критичные случаи поломки программы, а разработчик не включит в код проверку этого случая.
Даже многократное тестирование никогда не может гарантировать, что программное обеспечение не содержит ошибок на 100%. Тестирование позволяет отследить заранее выявленные дефекты в новом программном коде
Исчерпывающее тестирование невозможно
Тестировщик стремиться настроить процесс тестирования функциональности программного обеспечения на всех возможных входных данных (действительных или недействительных). Но исчерпывающее тестирование невозможно, т. е. программное обеспечение никогда не сможет протестировать каждый набор тестов. Он может протестировать только некоторые тестовые случаи и предположить, что программное обеспечение правильное, и оно будет давать правильный результат в каждом тестовом примере. Если программное обеспечение будет тестировать каждый тестовый пример, это потребует больше затрат, усилий, что в больших проектах нецелесообразно.
профилактика раннего тестирования
Чтобы найти дефект в программном обеспечении, необходимо начать раннее тестирование. Дефект, обнаруженный на ранних этапах SDLC, будет стоить намного дешевле. Для повышения производительности программного обеспечения тестирование программного обеспечения начнется на начальном этапе, т. е. тестирование будет выполняться на этапе анализа требований.
кластеризация дефектов
в проекте небольшое количество модулей может содержать большую часть дефектов. Принцип Парето для тестирования программного обеспечения гласит, что 80% дефектов программного обеспечения происходит из-за 20% модулей.
парадокс Повторения
повторение одних и тех же тестов снова и снова не приведет к обнаружению новых ошибок. Поэтому необходимо просмотреть тестовые случаи и добавить или обновить тестовые примеры, чтобы найти новые ошибки.
тестирование зависит от контекста
подход к тестированию зависит от контекста разрабатываемого программного обеспечения. Различные типы программного обеспечения должны выполнять различные типы тестирования. Например, тестирование сайта электронной коммерции отличается от тестирования приложения для Android.
заблуждение об отсутствии ошибок
если созданное программное обеспечение на 99% не содержит ошибок, но не соответствует требованиям пользователя, то оно непригодно для использования. Необходимо не только, чтобы программное обеспечение не содержало ошибок на 99 %, но также необходимо, чтобы оно выполняло все требования заказчика.