Глава 2. Расширенная теория тестирования программного обеспечения. Основные моменты этой главы 1. Понять сложность и экономичность тестирования программного обеспечения. 2. Освоить этапы тестирования программного обеспечения 3. Освоить методы тестирования программного обеспечения. 4. Освойте классификацию тестирования программного обеспечения. 5. Понимать распространенные модели процесса тестирования программного обеспечения. 1. Сложность и экономичность тестирования программного обеспечения Сложность тестирования ПО (1) Полное тестирование нереально (2) Тестирование программного обеспечения рискованно. (3) Феномен пестицидов (4) Неопределенность дефектов Экономика тестирования программного обеспечения Помимо прямых расходов на тестирование, затраты на тестирование также включают другие сопутствующие затраты. Основными факторами, определяющими стоимость тестирования, являются: (1) Целевые пользователи программного обеспечения (2), количество возможных пользователей (3) Воздействие, вызванное потенциальными дефектами (4) Бизнес-возможности организации-разработчика Адекватность тестирования программного обеспечения Адекватность тестирования программного обеспеченияипрограммное потребности в обеспечении、программное Реализация программного обеспечения связана с Адекватностью; тестирования программного Рекомендации по обеспечению имеют следующие пункты: (1), Ограниченный достаточный набор тестов Существует для любого программного обеспечения; (2) Монотонность тестирования программного обеспечения. Если набора тестовых данных и теста тестируемой программной системы достаточно, то добавления еще некоторых тестовых данных все еще достаточно; (3) Несложность тестирования программного обеспечения. Даже если все компоненты программного обеспечения адекватно протестированы, это не означает, что все программное обеспечение было адекватно протестировано; (4) Отсутствие декомпозиции тестирования программного обеспечения Даже если тестирования программной системы в целом достаточно, это не означает, что каждый компонент программной системы был полностью протестирован; (5)、Сложность тестирования ПО Объем данных для тестирования программного обеспечения пропорционален сложности программного обеспечения; упражняться: 1. Может ли автоматизированное тестирование заменить ручное тестирование? 2. Сейчас не хватает тестировщиков ПО. Могут ли выполнять эту работу другие сотрудники с большим запасом времени? 3. Проблемы возникли после выпуска программного обеспечения, поскольку тестировщики программного обеспечения не проверили его должным образом. 2. Этапы тестирования программного обеспечения Модульное тестирование Также известное как модульное тестирование, оно относится к проверке и проверке наименьшего тестируемого модуля программного обеспечения. (1) Когда выполнять Модульное тестирование Часто после того, как программисты пишут код, код компилируется и компилируется. подготовки, и на раннем этапе следует провести некоторую подготовительную работу (автор: Модульное тестированиеплан、писать Модульное тестирование Варианты использования и т. д.) (2) Кто это сделает? тестирование Обычно тестируется инженерами или разработчиками по тестированию «белого ящика» (3)、Модульное Что является основой для обучения Сама исходная программа, включая код и комментарии, а также документ «Детальный проект» проекта. (4)、Модульное Каковы критерии прохождения обучения? Программа пройдена все Модульное Вариант использования обучения имеет покрытие операторов 100% и покрытие ветвей 85%. (5) Как выполнять Модульное тестирование В основном используется метод тестирования белого ящика: обычно сначала статически проверяют, соответствует ли код спецификации, а затем динамически запускают код, чтобы проверить фактические результаты его работы. Интеграционное тестирование Соберите тестируемые модульные модули в системы или подсистемы, а затем протестируйте их, также называемое тестированием интерфейса; сосредоточьтесь на тестировании частей интерфейса различных модулей (например, правильности передачи параметров между функциями). (1) Когда выполнять Интеграционное тестирование Юниты и интеграция часто выполняются одновременно, что является Модульным Следующий этап обучения (2) Кто будет выполнять Интеграционное тестирование Обычно тестируется инженерами или разработчиками по тестированию «белого ящика» (3)、Интеграционное Что является основой для обучения Модульное Модули обучения и документы «Эскизный дизайн» Тестирование системы Это относится к тестированию всей программной системы в целом, включая тестирование функций, производительности, а также программной и аппаратной среды, в которой работает программное обеспечение. (1) Когда проводить Тестирование системы Тестирование проводится после завершения интеграции всей системы; на раннем этапе в основном проверяется, соответствуют ли функции системы требованиям, на более позднем этапе в основном проверяется, соответствует ли производительность работы системы требованиям; и совместимость системы в различных программных и аппаратных средах и т. д. (2) Кто будет выполнять процедуру? системы Инженер по тестированию черного ящика (3)、Тестирование Что лежит в основе системы Основной основой является документ «Спецификация системных требований». Приемочное тестирование Ссылки на Тестирование На более позднем этапе системы в основном участвуют тестировщики пользователей или тестер и другой персонал по обеспечению качества, это также программное обеспечение. обеспечение Последний процесс, который официально передается пользователю Важность. От этого зависит, сможет ли пользователь наконец принять,подписать и оплатить. [Метод работы проектного программного обеспечения: депозит 20%? Среднесрочный обзор 50%? Окончательное принятие 30%] Приемочное тестированиеразделен наαтестиβтест, Альфа-тестирование: относится к внутреннему тестированию с участием пользователей, тестировщиков, разработчиков и т. д. Бета-тест: относится к общедоступному тесту внутренней части, который полностью передается конечному пользователю для тестирования (также называемый тестом UAT). Таблица взаимосвязей между этапами тестирования и типами тестовых случаев: этап тестирования Тип теста исполнительный Модульное тестирование Функциональное тестирование модуля, включая некоторые тесты интерфейса и тесты пути. Разработчик Интеграционное тестирование Тестирование интерфейса, тестирование пути, включая некоторые функциональные тесты Разработчик, если уровень тестировщика высокий, это может выполнить тестер. Тестирование системы Функциональное тестирование, тестирование надежности, тестирование производительности, тестирование пользовательского интерфейса, тестирование безопасности, стресс-тестирование, тестирование надежности, тестирование установки/удаления. тестер Приемочное тестирование Для реальных проектов это в основном то же самое, что и выше, и включает тестирование документов для программных продуктов, в основном это тестирование соответствующих технических документов. тестер, может включать пользователей
3. Методы тестирования программного обеспечения
статическое тестирование Процесс, который фактически не запускает тестируемое программное обеспечение, а вместо этого статически проверяет возможные ошибки в программном коде, интерфейсе или документации. Динамическое тестирование Процесс фактического запуска тестируемого программного обеспечения, ввода соответствующих тестовых данных и проверки соответствия фактических результатов ожидаемым. тестирование черного ящика Этот метод рассматривает тестовый объект как черный ящик. Тестер полностью игнорирует внутреннюю логическую структуру и внутренние характеристики программы. Он только проверяет, соответствует ли функция программы своему функциональному описанию на основе технического задания программы. Поэтому обучение черного ящикапозвони еще раз Функциональное тестирование или тест на основе данных. тестирование белого ящика Этот метод рассматривает тестовый объект как открытый ящик, что позволяет тестировщику использовать внутреннюю логическую структуру и связанную информацию программы для разработки или выбора вариантов использования теста, а также для тестирования всех логических путей программы. Определите, соответствует ли фактическое состояние ожидаемому, проверив состояние программы в разных точках. Поэтому обучение белого ящик, также известный как структурный тест или тест на основе логики 。 Тестирование серого ящика Это между черным и молодежью белого ящикамежду,сосредоточиться на Выход правильный для входа, но и ориентируйтесь навнутренняя производительность。Тестирование серого ящикакомбинированныйтестирование белого ящикакоробкатестирование черного Элементы ящика Учитывает клиента, конкретные знания системы и операционную среду. 4. Классификация тестирования программного обеспечения. Взаимосвязь между различными категориями испытаний показана ниже.
Функциональное тестирование датестирование черного ящика с одной стороны, он проверяет фактическую программу Соответствуют ли функции обеспечения потребностям пользователей. Функциональное Обучение можно разделить на множество типов: 1、логика Функциональное тестирование 【Самое важное】 Необходимо написать серию тестовых примеров для проверки различных логических функций. 2. Тестирование интерфейса Вообще ставлю программу обеспечениеинтерфейстест Тот же примерпрограммное обеспечениеизлогика Функциональное сценарии использования для обучения пишутся отдельно, используя упрощенную форму тестовых сценариев использования (чек-лист), чек-лист не предполагает реализацию конкретных логических функций, а касается только вопросов интерфейса, таких как расположение меню, шрифты, стили и т. д. 3. Юзабилити-тест Это относится к проверке программной системы с точки зрения рациональности и удобства использования программного обеспечения для выявления областей программного обеспечения, которые неудобны для использования пользователями. 4. Тест установки Включает установку и удаление Установка — это первый шаг пользователя к использованию программного обеспечения, а также первое впечатление пользователя о программном обеспечении; тест установки следует рассматривать как самостоятельную задачу, и следует написать тестовые примеры для установки и удаления программного обеспечения; 5. Тест на совместимость: Включая тестирование совместимости оборудования и тестирование совместимости программного обеспечения. Тестирование совместимости оборудования: совместимость программного обеспечения, работающего на разных аппаратных платформах, таких как ПК, ноутбуки, серверы и т. д. Тестирование совместимости программного обеспечения: Программное и аппаратное обеспечение проектного программного обеспечения относительно фиксировано. Его необходимо тестировать только в среде использования конечного пользователя. Как правило, тестирование совместимости не рассматривается. Тестирование производительности Производительность программного обеспечения включает в себя множество аспектов, в основном включая производительность по времени и по пространству. Время производительности: в основном относится ко времени ответа конкретной транзакции программного обеспечения (интервал ответа на запрос составляет 3 секунды). Производительность пространства: в основном относится к системным ресурсам, потребляемым при работе программного обеспечения (определенное требование к установке программного обеспечения). 1、в целом Тестирование производительности Это означает, что тестируемая система может работать в нормальной программной и аппаратной среде без какого-либо давления на нее. производительности。 2. Тест стабильности Также называемое тестированием надежности, оно относится к непрерывной работе внутренней тестовой системы для проверки стабильности системы во время работы. 3. Нагрузочный тест Относится к возможности непрерывной работы тестируемой системы в пределах допустимого предельного диапазона для проверки стабильности системы. 4. Стресс-тест Это означает постоянное добавление давления в испытуемую систему до тех пор, пока испытуемая система не будет разрушена. Он используется для проверки максимального давления, которое может выдержать система. о Тестирование Жизненный случай производительности: Предположим, что человек может легко нести один мешок риса, с большим трудом нести два мешка риса и не более трех мешков риса, тогда: в целом Тестирование производительность: я позволю ему нести мешок риса Тест на устойчивость: я попросил его нести мешок с рисом, а также попросил его пробежать несколько кругов по детской площадке, чтобы посмотреть, сколько времени ему понадобится, чтобы потерять сознание от истощения. Нагрузочный тест: я попросил его нести два мешка риса и пробежать несколько кругов по детской площадке, чтобы посмотреть, сколько времени ему понадобится, чтобы потерять сознание от истощения. Стресс-тест: я попросил его нести два мешка риса, три мешка риса, четыре мешка риса... и обнаружил, что он может нести до трех мешков риса. Регрессионное тестирование Относится к повторению тестовых случаев предыдущей версии при тестировании новой версии программного обеспечения. тест на дым Это относится к проверке возможности реализации основных функций программного обеспечения и возможности его тестирования перед проведением крупномасштабного тестирования новой версии. Случайное тестирование Это означает, что все входные данные в тесте генерируются случайным образом, и его цель — смоделировать реальную работу пользователя и найти некоторые предельные ошибки. 5. Модель процесса тестирования программного обеспечения. Жизненный цикл программного обеспечения делится на планирование, анализ требований, проектирование программного обеспечения, написание программ, тестирование программного обеспечения, а также эксплуатацию и обслуживание. модель водопада Традиционная модель водопада,программное Статус и ценность программного обеспечения не отражаются, и тест может использоваться только в качестве корректирующей работы постфактум. Ранние ошибки могут быть исправлены только на более поздних стадиях разработки. повреждение может быть только обнаружено, что повлечет за собой серьезные последствия. Поскольку разработка Модели является линейной, пользователи могут видеть результаты разработки только до конца всего процесса, тем самым увеличивая риски развития.
Модель V Модель V является наиболее широко известной тест-моделью и очень четко обозначает различные уровни, существующие в процессе тестирования, описывая эти этапы. тестирование и соответствие между различными этапами процесса разработки Модель Недостатки В: Существуют ограничения. Он рассматривает процесс тестирования только как этап после анализа спроса, проектирования системы и кодирования. Он нацелен только на ошибки в программе и игнорирует функции проверки и подтверждения действий по тестированию при анализе спроса, проектировании системы и других действиях.
Модель W Модель W сопровождает всю программу цикл разработки обеспечения, и объектом тестирования является не только программа, требования, дизайн и т. д. Также необходимо тестирование, тестирование и разработка выполняются одновременно. Модель Wот Модель V эволюционировал по сравнению с Моделью V,Модель W добавил программное обеспечение обеспечение Деятельности по проверке и валидации, которые должны выполняться одновременно на каждом этапе разработки. Для текущего программного обеспечения обеспечение Разработка сложных и меняющихся ситуаций, Модель W не освобождает руководство тестирования от замешательства.
Модель H В модели H процесс тестирования программного обеспечения представляет собой независимый процесс, который выполняется на протяжении всего цикла продукта и выполняется одновременно с другими процессами.