Файл: Обеспечения Базовый курс (3е издание) Версия книги 2 от 17. 04. 2023.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 891
Скачиваний: 31
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Альтернативные и дополнительные классификации тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 103/301
2.3.3.
Альтернативные и дополнительные классификации тестиро-
вания
Для полноты картины остаётся лишь показать альтернативные взгляды на классификацию тестирования. Одна из них (рисунки 2.3.i и 2.3.j) представляет не более чем иную комбинацию ранее рассмотренных видов и техник. Вторая (рисунки
2.3.k и 2.3.l) содержит много новых определений, но их подробное изучение выхо- дит за рамки данной книги, и потому будут даны лишь краткие пояснения (при необ- ходимости вы можете ознакомиться с первоисточниками, которые указаны для каж- дого определения в сноске).
Ещё раз подчеркнём: здесь приведены лишь определения. Соответству- ющим видам и техникам тестирования в первоисточниках посвящены де- сятки и сотни страниц. Пожалуйста, не ожидайте от этого раздела подроб- ных пояснений, их не будет, т.к. это — «очень дополнительный» материал.
Рисунок 2.3.i — Классификация тестирования согласно книге «Foundations of Soft- ware Testing: ISTQB Certification
» (Erik Van Veenendaal, Isabel Evans) (русскоязыч- ный вариант)
Тестирование
Статическое
Динамическое
Неформальный просмотр
Беглый просмотр
Технический просмотр
Формальная инспекция
Статический анализ
По потоку управления
По потоку данных
На основе опыта
тестировщика
Предугадывание ошибок
Исследователь- ское тестирование
На основе структур
кода
Выражений
Переходов
Условий
Комбинаций условий
На основе
спецификаций
На основе классов эквивалентности
На основе граничных условий
По вариантам использования
По таблице принятия решений
По диаграмме состояний
Альтернативные и дополнительные классификации тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 104/301
Рисунок 2.3.j — Классификация тестирования согласно книге «Foundations of Soft- ware Testing: ISTQB Certification
» (Erik Van Veenendaal, Isabel Evans) (англоязыч- ный вариант)
В следующей классификации встречаются как уже рассмотренные пункты, так и ранее не рассмотренные (отмечены пунктирной линией). Краткие определе- ния не рассмотренных ранее видов тестирования представлены после рисунков
2.3.k и 2.3.l.
Testing Techniques
Static
Dynamic
Informal Review
Walkthrough
Technical Review
Inspection
Static Analysis
Control Flow
Data Flow
Experience-based
Error Guessing
Exploratory Testing
Structure-based
Statement
Decision
Condition
Multiple Condition
Specification-based
Equivalence
Partitioning
Boundary Value
Analisys
Use Case Testing
Decision Tables
State Transition
Альтернативные и дополнительные классификации тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 105/301
Рисунок 2.3.k — Классификация тестирования согласно ISO/IEC/IEEE 29119-4
(русскоязычный вариант)
Техники тестирования
На основе опыта
тестировщика
На основе структур кода
На основе дерева классификаций
Проверка использования всех объявлений
На основе синтаксиса
Комбинаторные техники
Всех комбинаций
Попарное
Предугадывание ошибок
На основе условий
На основе выражений
На основе решений
На основе спецификаций
На основе классов эквивалентности
На основе граничных условий
На основе вариантов использования
По таблице принятия решений
По диаграмме состояний
С выбором значений- представителей
С выбором базового набора значений
По графу причинно- следственных связей
На основе сценариев
На основе случайных данных
На основе ветвей
На основе комбинаций условий
На основе отдельных условий, порождающих ветвление
По потоку данных
Проверка всех вычислений на основе всех объявлений
См. в основной классификации «На основе опыта тестировщика, сценариев, чек-листов» и
«На основе (моделей) поведения приложения»
Проверка всех ветвлений на основе всех объявлений
Проверка всех вычислений и ветвлений на основе всех объявлений
Проверка использования всех объявлений и всех путей без переобъявлений (без циклов или с однократными повторениями циклов)
Альтернативные и дополнительные классификации тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 106/301
Рисунок 2.3.l — Классификация тестирования согласно ISO/IEC/IEEE 29119-4 (ан- глоязычный вариант)
Альтернативные и дополнительные классификации тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 107/301
• Тестирование на основе дерева классификаций (classification tree
268
method
269
)
— техника тестирования (по методу чёрного ящика), в которой тест-кейсы создаются на основе иерархически организованных наборов эк- вивалентных входных и выходных данных.
• Тестирование на основе синтаксиса (syntax testing
270
)
— техника тестиро- вания (по методу чёрного ящика), в которой тест-кейсы создаются на основе определения наборов входных и выходных данных.
• Комбинаторные техники или комбинаторное тестирование (combinatorial testing
271
)
— способ выбрать подходящий набор комбинаций тестовых данных для достижения установленного уровня тестового покрытия в случае, когда проверка всех возможных наборов значений тестовых данных невозможна за имеющееся время. Существуют следующие комбинаторные техники: o
Тестирование всех комбинаций (all combinations testing
272
)
— тести- рование всех возможных комбинаций всех значений всех тестовых данных (например, всех параметров функции). o
Попарное тестирование (рассмотрено ранее
{95}
). o
Тестирование с выбором значений-представителей (each choice testing
273
)
— тестирование, при котором по одному значению из каждого набора тестовых данных должно быть использовано хотя бы в одном тест-кейсе. o
Тестирование с выбором базового набора значений (base choice testing
274
)
— тестирование, при котором выделяется набор значений
(базовый набор), который используется для проведения тестирования в первую очередь, а далее тест-кейсы строятся на основе выбора всех базовых значений, кроме одного, которое заменяется значением, не входящим в базовый набор.
Также см. классификацию тестирования на основе выбора входных данных
{94}
, которая расширяет и дополняет данный список.
• Тестирование по графу причинно-следственных связей (cause-effect gra- phing
275
)
— техника тестирования (по методу чёрного ящика), в которой тест- кейсы разрабатываются на основе графа причинно-следственных связей
(графического представления входных данных и воздействий со связанными с ними выходными данными и эффектами).
268
Classification tree. A tree showing equivalence partitions hierarchically ordered, which is used to design test cases in the classi- fication tree method. [ISTQB Glossary]
269
Classification tree method. A black box test design technique in which test cases, described by means of a classification tree, are designed to execute combinations of representatives of input and/or output domains. [ISTQB Glossary]
270
Syntax testing. A black box test design technique in which test cases are designed based upon the definition of the input domain and/or output domain. [ISTQB Glossary]
271
Combinatorial testing. A means to identify a suitable subset of test combinations to achieve a predetermined level of coverage when testing an object with multiple parameters and where those parameters themselves each have several values, which gives rise to more combinations than are feasible to test in the time allowed. [ISTQB Glossary]
272
All combinations testing. Testing of all possible combinations of all values for all parameters. [
«Guide to advanced software testing, 2nd edition
», Anne Matte Hass].
273
Each choice testing. One value from each block for each partition must be used in at least one test case. [
«Introduction to
Software Testing. Chapter 4. Input Space Partition Testing
», Paul Ammann & Jeff Offutt]
274
Base choice testing. A base choice block is chosen for each partition, and a base test is formed by using the base choice for each partition. Subsequent tests are chosen by holding all but one base choice constant and using each non-base choice in each other parameter. [
«Introduction to Software Testing. Chapter 4. Input Space Partition Testing», Paul Ammann & Jeff Offutt]
275
Cause-effect graphing. A black box test design technique in which test cases are designed from cause-effect graphs (a graphical representation of inputs and/or stimuli (causes) with their associated outputs (effects), which can be used to design test cases).
[ISTQB Glossary]
Альтернативные и дополнительные классификации тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 108/301
• Тестирование по потоку данных (data-flow testing
276
)
— семейство техник тестирования, основанных на выборе отдельных путей из потока управления с целью исследования событий, связанных с изменением состояния пере- менных. Эти техники позволяют обнаружить такие ситуации, как: переменная определена, но нигде не используется; переменная используется, но не определена; переменная определена несколько раз до того, как она исполь- зуется; переменная удалена до последнего случая использования.
Здесь придётся немного погрузиться в теорию. Над переменной в общем слу- чае может выполняться несколько действий (покажем на примере перемен- ной x):
• объявление (declaration): int x;
• определение (definition, d-use): x = 99;
• использование в вычислениях (computation use, c-use): z = x + 1;
• использование в условиях (predicate use, p-use): if (x > 17) { … };
• удаление (kill, k-use): x = null;
Теперь можно рассмотреть техники тестирования на основе потока данных.
Они крайне подробно описаны в разделе 3.3 главы 5 книги Бориса Бейзера
«Техники тестирования ПО» («Software Testing Techniques, Second Edition»,
Boris Beizer
), мы же приведём очень краткие пояснения: o
Проверка использования всех объявлений (all-definitions testing
277
)
— тестовым набором проверяется, что для каждой переменной суще- ствует путь от её определения к её использованию в вычислениях или условиях. o
Проверка всех вычислений на основе всех объявлений (all-c-uses testing
278
)
— тестовым набором проверяется, что для каждой перемен- ной существует путь от каждого её определения к её использованию в вычислениях. o
Проверка всех ветвлений на основе всех объявлений (all-p-uses testing
279
)
— тестовым набором проверяется, что для каждой перемен- ной существует путь от каждого её определения к её использованию в условиях. o
Проверка всех вычислений и ветвлений на основе всех объявле-
ний (all-uses testing
280
)
— тестовым набором проверяется, что для каж- дой переменной существует хотя бы один путь от каждого её опреде- ления к каждому её использованию в вычислениях и в условиях. o
Проверка использования всех объявлений и всех путей без пере-
объявлений (без циклов или с однократными повторениями цик-
лов) (all-du-paths testing
281
)
— тестовым набором для каждой перемен- ной проверяются все пути от каждого её определения к каждому её использованию в вычислениях и в условиях (самая мощная стратегия, которая в то же время требует наибольшего количества тест-кейсов).
276
Data flow testing. A white box test design technique in which test cases are designed to execute definition-use pairs of variables.
[ISTQB Glossary]
277
All-definitions strategy. Test set requires that every definition of every variable is covered by at least one use of that variable (c- use or p-use). [
«Software Testing Techniques, Second Edition», Boris Beizer]
278
All-computation-uses strategy. For every variable and every definition of that variable, include at least one definition-free path from the definition to every computation use. [
«Software Testing Techniques, Second Edition», Boris Beizer]
279
All-predicate-uses strategy. For every variable and every definition of that variable, include at least one definition-free path from the definition to every predicate use. [
«Software Testing Techniques, Second Edition», Boris Beizer]
280
All-uses strategy. Test set includes at least one path segment from every definition to every use that can be reached by that definition. [
«Software Testing Techniques, Second Edition», Boris Beizer]
281
All-DU-path strategy. Test set includes every du path from every definition of every variable to every use of that definition.
[«Software Testing Techniques, Second Edition», Boris Beizer]
Альтернативные и дополнительные классификации тестирования
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 109/301
Для лучшего понимания и запоминания приведём оригинальную схему из книги Бориса Бейзера (там она фигурирует под именем «Figure 5.7. Relative
Strength of Structural Test Strategies
»), показывающую взаимосвязь стратегий тестирования на основе потока данных (рисунок 2.3.m).
Рисунок 2.3.m — Взаимосвязь и относительная мощность стратегий тестирования на основе потока данных (по книге Бориса Бейзера «Техники тестирования ПО»)
All-Paths
All-DU-Paths
All-Uses
All-C-Uses/Some-P-Uses
All-P-Uses/Some-C-Uses
All-C-Uses
All-Defs
All-P-Uses
Branch
Statement
Классификация по принадлежности к тестированию по методу белого и чёрного ящиков
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 110/301
1 ... 12 13 14 15 16 17 18 19 ... 38
2.3.4.
Классификация по принадлежности к тестированию по ме-
тоду белого и чёрного ящиков
Типичнейшим вопросом на собеседовании для начинающих тестировщиков является просьба перечислить техники тестирования по методу белого и чёрного ящиков. Ниже представлена таблица 2.3.d, в которой все вышерассмотренные виды тестирования соотнесены с соответствующим методом. Эту таблицу можно использовать также как справочник по видам тестирования (они представлены в той же последовательности, в какой описаны в данной главе).
Важно! В источниках наподобие ISTQB-глоссария многие виды и техники тестирования жёстко соотнесены с методами белого или чёрного ящика.
Но это не значит, что их невозможно применить в другом, не отмеченном методе. Так, например, тестирование на основе классов эквивалентности отнесено к методу чёрного ящика, но оно прекрасно подходит и для напи- сания модульных тест-кейсов, являющихся ярчайшими представителями тестирования по методу белого ящика.
Воспринимайте данные из представленной ниже таблицы не как «этот вид тестирования может применяться только для…», а как «чаще всего этот вид тестирования применяется для…»
Таблица 2.3.d — Виды и техники тестирования в контексте методов белого и чёр- ного ящиков
Вид тестирования
(русскоязычное название)
Вид тестирования (англо-
язычное название)
Белый ящик
Чёрный ящик
Статическое тестирование
{73}
Static testing
Да
Нет
Динамическое тестирова- ние
{73}
Dynamic testing
Изредка
Да
Ручное тестирование
{75}
Manual testing
Мало
Да
Автоматизированное тести- рование
{76}
Automated testing
Да
Да
Модульное (компонентное) тестирование
{77}
Unit testing, Module testing,
Component testing
Да
Нет
Интеграционное тестирова- ние
{77}
Integration testing
Да
Да
Системное тестирование
{78}
System testing
Мало
Да
Дымовое тестирование
{79}
Smoke test, Intake test, Build verification test
Мало
Да
Тестирование критического пути
{80}
Critical path test
Мало
Да
Расширенное тестирова- ние
{81}
Extended test
Мало
Да
Позитивное тестирование
{82}
Positive testing
Да
Да
Негативное тестирование
{82}
Negative testing, Invalid testing
Да
Да
Тестирование веб-приложе- ний
{83}
Web-applications testing
Да
Да
Тестирование мобильных приложений