Файл: Обеспечения Базовый курс (3е издание) Версия книги 2 от 17. 04. 2023.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 896
Скачиваний: 31
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Подробная классификация тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 98/301 o
Тестирование на основе условий (condition testing
250
)
— техника те- стирования (по методу белого ящика), в которой проверяется выпол- нение отдельных условий (условием считается выражение, которое может быть вычислено до значения «истина» или «ложь»). o
Тестирование на основе комбинаций условий (multiple condition testing
251
)
— техника тестирования (по методу белого ящика), в которой проверяется выполнение сложных (составных) условий. o
Тестирование на основе отдельных условий, порождающих ветв-
ление («решающих условий») (modified condition decision coverage testing
252
)
— техника тестирования (по методу белого ящика), в которой проверяется выполнение таких отдельных условий в составе сложных условий, которые в одиночку определяют результат вычисления всего сложного условия. o
Тестирование на основе решений (decision testing
253
)
— техника те- стирования (по методу белого ящика), в которой проверяется выпол- нение сложных ветвлений (с двумя и более возможными вариантами).
Несмотря на то что «два варианта» сюда также подходит, формально такую ситуацию стоит отнести к тестированию на основе условий. o
Тестирование на основе путей (path testing
254
)
— техника тестирова- ния (по методу белого ящика), в которой проверяется выполнение всех или некоторых специально выбранных путей в коде приложения.
Если говорить строго научно, то определения большинства видов тестирования на основе структур кода должны звучать чуть-чуть иначе, т.к. в программировании условием считается выражение без логических операторов, а решением — выражение с логиче- скими операторами. Но глоссарий ISTQB не делает на этом ак- цента, а потому приведённые выше определения можно считать корректными. Однако, если вам интересно, рекомендуется озна- комиться с заметкой «What is the difference between a Decision and a Condition?
»
255
Кратко вся суть видов тестирования на основе структур кода показана в таблице 2.3.c.
250
Condition Testing. A white box test design technique in which test cases are designed to execute condition outcomes (condition is a logical expression that can be evaluated as True or False, e.g. A > B). [ISTQB Glossary]
251
Multiple Condition Testing. A white box test design technique in which test cases are designed to execute combinations of single condition outcomes (within one statement). [ISTQB Glossary]
252
Modified Condition Decision Coverage Testing. Technique to design test cases to execute branch condition outcomes that independently affect a decision outcome and discard conditions that do not affect the final outcome. [
«Guide to Advanced Soft- ware Testing, Second Edition
», Anne Mette Hass].
253
Decision Testing. A white box test design technique in which test cases are designed to execute decision outcomes (decision is program point at which the control flow has two or more alternative routes, e.g. a node with two or more links to separate branches). [ISTQB Glossary]
254
Path testing. A white box test design technique in which test cases are designed to execute paths. [ISTQB Glossary]
255
«What is the difference between a Decision and a Condition?» [
http://www-01.ibm.com/support/docview.wss?uid=swg21129252
]
Подробная классификация тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 99/301
Таблица 2.3.c — Виды тестирования на основе структур кода
Русскоязычное
название
Англоязычное
название
Суть (что проверяется)
Тестирование на ос- нове выражений
Statement testing
Отдельные атомарные участки кода, например x = 10
Тестирование на ос- нове ветвей
Branch testing
Проход по ветвям выполнения кода.
Тестирование на ос- нове условий
Condition testing,
Branch Condition Test- ing
Отдельные условные конструкции, например if (a == b)
Тестирование на ос- нове комбинаций условий
Multiple condition test- ing,
Branch Condition
Combination Testing
Составные условные конструкции, например if ((a == b) || (c == d))
Тестирование на ос- нове отдельных усло- вий, порождающих ветвление («решаю- щих условий»)
Modified Condition De- cision Coverage Test- ing
Отдельные условия, в одиночку влияю- щие на итог вычисления составного условия, например в условии if ((x == y)
&& (n == m)) ложное значение в каждом из отдельных условий само по себе при- водит к результату false вне зависимости от результата вычисления второго усло- вия
Тестирование на ос- нове решений
Decision testing
Сложные ветвления, например оператор switch
Тестирование на ос- нове путей
Path testing
Все или специально выбранные пути
• Тестирование на основе (моделей) поведения приложения (application behav- ior/model-based testing): o
Тестирование по таблице принятия решений (decision table test- ing
256
)
— техника тестирования (по методу чёрного ящика), в которой тест-кейсы разрабатываются на основе т.н. таблицы принятия реше- ний, в которой отражены входные данные (и их комбинации) и воздей- ствия на приложение, а также соответствующие им выходные данные и реакции приложения. o
Тестирование по диаграмме или таблице состояний (рассмотрено ранее
{97}
). o
Тестирование по спецификациям (specification-based testing, black box testing) (
рассмотрено ранее
{74}
). o
Тестирование по моделям поведения приложения (model-based testing
257
)
— техника тестирования, в которой исследование приложе- ния (и разработка тест-кейсов) строится на некой модели: таблице принятия решений
{99}
, таблице или диаграмме состояний
{97}
, пользова- тельских сценариев
{146}
, модели нагрузки
{91}
и т.д. o
Тестирование на основе вариантов использования (use case test- ing
258
)
— техника тестирования (по методу чёрного ящика), в которой тест-кейсы разрабатываются на основе вариантов использования. Ва- рианты использования выступают в основном источником информа- ции для шагов тест-кейса, в то время как наборы входных данных
256
Decision Table Testing. A black box test design technique in which test cases are designed to execute the combinations of inputs and/or stimuli (causes) shown in a decision table (a table showing combinations of inputs and/or stimuli (causes) with their associated outputs and/or actions (effects), which can be used to design test cases). [ISTQB Glossary]
257
Model-based Testing. Testing based on a model of the component or system under test, e.g., reliability growth models, usage models such as operational profiles or behavioral models such as decision table or state transition diagram. [ISTQB Glossary]
258
Use case testing. A black box test design technique in which test cases are designed to execute scenarios of use cases. [ISTQB
Glossary]
Подробная классификация тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 100/301 удобно разрабатывать с помощью техник выбора входных данных
{94}
В общем случае источником информации для разработки тест-кейсов в этой технике могут выступать не только варианты использования, но и другие пользовательские требования
{40}
в любом их виде. В случае если методология разработки проекта подразумевает использование пользовательских историй, этот вид тестирования может быть заме- нён тестированием на основе пользовательских историй (user story testing
259
). o
Параллельное тестирование (parallel testing
260
)
— техника тестирова- ния, в которой поведение нового (или модифицированного) приложе- ния сравнивается с поведением эталонного приложения (предположи- тельно работающего верно). Термин «параллельное тестирование» также может использоваться для обозначения способа проведения те- стирования, когда несколько тестировщиков или систем автоматиза- ции выполняют работу одновременно, т.е. параллельно. Очень редко
(и не совсем верно) под параллельным тестированием понимают му- тационное тестирование
{94}
o
Тестирование на основе случайных данных (random testing
261
)
— техника тестирования (по методу чёрного ящика), в которой входные данные, действия или даже сами тест-кейсы выбираются на основе
(псевдо)случайных значений так, чтобы соответствовать операцион- ному профилю (operational profile
262
)
— подмножеству действий, соот- ветствующих некоей ситуации или сценарию работы с приложением.
Не стоит путать этот вид тестирования с т.н. «обезьяньим тестирова- нием» (monkey testing
263
). o A/B-
тестирование (A/B testing, split testing
264
)
— техника тестирования, в которой исследуется влияние на результат выполнения операции из- менения одного из входных параметров. Однако куда чаще можно встретить трактовку A/B-тестирования как технику тестирования удоб- ства использования
{88}
, в которой пользователям случайным образом предлагаются разные варианты элементов интерфейса, после чего оценивается разница в реакции пользователей.
Крайне подробное описание некоторых видов тестирования, отно- сящихся к данной классификации, можно найти в книге Ли Ко- упленда «Практическое руководство по разработке тестов» (Lee
Copeland
, «A Practitioner's Guide to Software Test Design»):
• Тестирование по таблице принятия решений — в главе 5.
• Тестирование по диаграмме или таблице состояний — в главе 7.
• Тестирование на основе вариантов использования — в главе 9.
259
User story testing. A black box test design technique in which test cases are designed based on user stories to verify their correct implementation. [ISTQB Glossary]
260
Parallel testing. Testing a new or an altered data processing system with the same source data that is used in another system.
The other system is considered as the standard of comparison. [ISPE Glossary]
261
Random testing. A black box test design technique where test cases are selected, possibly using a pseudo-random generation algorithm, to match an operational profile. This technique can be used for testing non-functional attributes such as reliability and performance. [ISTQB Glossary]
262
Operational profile. The representation of a distinct set of tasks performed by the component or system, possibly based on user behavior when interacting with the component or system, and their probabilities of occurrence. A task is logical rather that physical and can be executed over several machines or be executed in non-contiguous time segments. [ISTQB Glossary]
263
Monkey testing. Testing by means of a random selection from a large range of inputs and by randomly pushing buttons, ignorant of how the product is being used. [ISTQB Glossary]
264
Split testing is a design for establishing a causal relationship between changes and their influence on user-observable behavior.
[«Controlled experiments on the web: survey and practical guide», Ron Kohavi]
Подробная классификация тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 101/301
2.3.2.14.
Классификация по моменту выполнения (хронологии)
Несмотря на многочисленные попытки создать единую хронологию тестиро- вания, предпринятые многими авторами, по-прежнему можно смело утверждать, что общепринятого решения, которое в равной степени подходило бы для любой методологии управления проектами, любого отдельного проекта и любой его ста- дии, просто не существует.
Если попытаться описать хронологию тестирования одной общей фразой, то можно сказать, что происходит постепенное наращивание сложности самих тест- кейсов и сложности логики их выбора.
• Общая универсальная логика последовательности тестирования состоит в том, чтобы начинать исследование каждой задачи с простых позитивных тест-кейсов, к которым постепенно добавлять негативные (но тоже доста- точно простые). Лишь после того, как наиболее типичные ситуации покрыты простыми тест-кейсами, следует переходить к более сложным (опять же, начиная с позитивных). Такой подход — не догма, но к нему стоит прислу- шаться, т.к. углубление на начальных этапах в негативные (к тому же — сложные) тест-кейсы может привести к ситуации, в которой приложение от- лично справляется с кучей неприятностей, но не работает на элементарных повседневных задачах. Ещё раз суть универсальной последовательности:
1) простое позитивное тестирование;
2) простое негативное тестирование;
3) сложное позитивное тестирование;
4) сложное негативное тестирование.
• Последовательность тестирования, построенная по иерархии компонентов: o
1 ... 11 12 13 14 15 16 17 18 ... 38
Восходящее тестирование (bottom-up testing
265
)
— инкрементальный подход к интеграционному тестированию
{77}
, в котором в первую оче- редь тестируются низкоуровневые компоненты, после чего процесс пе- реходит на всё более и более высокоуровневые компоненты. o
Нисходящее тестирование (top-down testing
266
)
— инкрементальный подход к интеграционному тестированию
{77}
, в котором в первую оче- редь тестируются высокоуровневые компоненты, после чего процесс переходит на всё более и более низкоуровневые компоненты. o
Гибридное тестирование (hybrid testing
267
)
— комбинация восходя- щего и нисходящего тестирования, позволяющая упростить и ускорить получение результатов оценки приложения.
Поскольку термин «гибридное» является синонимом «комби- нированное», под «гибридным тестированием» может пони- маться практически любое сочетание двух и более видов, тех- ник или подходов к тестированию. Всегда уточняйте, о гибриде чего именно идёт речь.
265
Bottom-up testing. An incremental approach to integration testing where the lowest level components are tested first, and then used to facilitate the testing of higher level components. This process is repeated until the component at the top of the hierarchy is tested. [ISTQB Glossary]
266
Top-down testing. An incremental approach to integration testing where the component at the top of the component hierarchy is tested first, with lower level components being simulated by stubs. Tested components are then used to test lower level compo- nents. The process is repeated until the lowest level components have been tested. [ISTQB Glossary]
267
Hybrid testing, Sandwich testing. First, the inputs for functions are integrated in the bottom-up pattern discussed above. The outputs for each function are then integrated in the top-down manner. The primary advantage of this approach is the degree of support for early release of limited functionality. [«Integration testing techniques», Kratika Parmar]
Подробная классификация тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 102/301
• Последовательность тестирования, построенная по концентрации внимания на требованиях и их составляющих:
1)
Тестирование требований, которое может варьироваться от беглой оценки в стиле «всё ли нам понятно» до весьма формальных под- ходов, в любом случае первично по отношению к тестированию того, как эти требования реализованы.
2)
Тестирование реализации функциональных составляющих требо- ваний логично проводить до тестирования реализации нефункцио- нальных составляющих, т.к. если что-то просто не работает, то про- верять производительность, безопасность, удобство и прочие не- функциональные составляющие бессмысленно, а чаще всего и во- все невозможно.
3)
Тестирование реализации нефункциональных составляющих тре- бований часто становится логическим завершением проверки того, как реализовано то или иное требование.
• Типичные общие сценарии используются в том случае, когда не существует явных предпосылок к реализации иной стратегии. Такие сценарии могут ви- доизменяться и комбинироваться (например, весь «типичный общий сцена- рий 1» можно повторять на всех шагах «типичного общего сценария 2»). o
Типичный общий сценарий 1:
1)
Дымовое тестирование
{79}
2)
Тестирование критического пути
{80}
3)
Расширенное тестирование
{81}
o
Типичный общий сценарий 2:
1)
Модульное тестирование
{77}
2)
Интеграционное тестирование
{77}
3)
Системное тестирование
{78}
o
Типичный общий сценарий 3:
1)
Альфа-тестирование
{84}
2)
Бета-тестирование
{84}
3)
Гамма-тестирование
{84}
В завершение ещё раз подчеркнём, что рассмотренные здесь классифика- ции тестирования не являются чем-то каноническим и незыблемым. Они лишь при- званы упорядочить огромный объём информации о различных видах деятельности тестировщиков и упростить запоминание соответствующих фактов.