- •I. По объекту тестирования:
- •Типичные вопросы тестирования производительности:
- •II. По полноте информации о системе:
- •Методы стратегии чёрного ящика:
- •По степени автоматизации:
- •По степени изолированности компонентов:
- •По времени проведения тестирования:
- •По уровню тестирования:
- •По стратегии тестирования:
- •По признаку позитивности сценариев:
- •По степени подготовленности к тестированию:
II. По полноте информации о системе:
Тестирование чёрного ящика
В этой стратегии программа рассматривается как чёрный ящик. Целью тестирования ставится выяснение обстоятельств, в которых поведение программы не соответствует спецификации. Для обнаружения всех ошибок в программе необходимо выполнить исчерпывающее тестирование, то есть тестирование на всевозможных наборах данных. Для большинства программ это невозможно, поэтому применяют разумное тестирование, при котором тестирование программы ограничивается небольшим подмножеством всевозможных наборов данных. При этом необходимо выбирать наиболее подходящие подмножества, подмножества с наивысшей вероятностью обнаружения ошибок.
Стандартная процедура тестирования « черным ящиком » включает в себя следующую последовательность событий:
1. Планирование – определяется стратегия, разрабатывают серии тестов, распределяются задания между сотрудниками, этап планирования следует сразу за разработкой требований.
2. Приемочное (квалификационное) тестирование – это тестирование, проводимое при поступлении каждой новой версии ПП (проверка на стабильность). Если ПП такую проверку не проходит, то такой продукт дальше тестировать нецелесообразно, и он возвращается разработчиком.
3. Функциональное и системное тестирование, сверка и аттестация продукта – на этом этапе продукт сверяется с проектными документами. В частности, проводится функциональное тестирование, в рамках которого продукт сверяется со спецификацией, затем проводится тестирование целостности (пользовательские требования) и системное тестирование (системные требования). Тестирование целостности и системное тестирование носят название аттестационного тестирования.
4. Нагрузочные испытания. При нагрузочных испытаниях проверяется реакция программы на предельные условия эксплуатации:
• тестирование на максимальный объем данных;
• тестирование на максимальное количество одновременных запросов (для web – приложений);
• анализ требований к ресурсам (ОЗУ и дисковое пространство).
5. α и β, релиз — тестирование.
Методы стратегии чёрного ящика:
Эквивалентное разбиение. Разработка тестов этим методом осуществляется в два этапа: выделение классов эквивалентности и построение теста.
Основу метода составляют два положения:
Исходные данные необходимо разбить на конечное число классов эквивалентности. В одном классе эквивалентности содержатся такие тесты, что, если один тест из класса эквивалентности обнаруживает некоторую ошибку, то и любой другой тест из этого класса эквивалентности должен обнаруживать эту же ошибку.
Каждый тест должен включать, по возможности, максимальное количество классов эквивалентности, чтобы минимизировать общее число тестов.
Анализ граничных значений отличается от эквивалентного разбиения следующим:
Выбор любого элемента в классе эквивалентности в качестве представительного осуществляется таким образом, чтобы проверить тестом каждую границу этого класса.
При разработке тестов рассматриваются не только входные значения (пространство входов), но и выходные (пространство выходов).
Метод требует определённой степени творчества и наличия специализации. Существует несколько правил:
Построить тесты с неправильными входными данными для ситуации незначительного выхода за границы области значений.
Обязательно писать тесты для минимальной и максимальной границы диапазона.
Использовать первые два правила для каждого из входных значений (использовать пункт 2 для всех выходных значений).
Если вход и выход программы представляет упорядоченное множество, сосредоточить внимание на первом и последнем элементах списка.
Анализ граничных значений, если он применён правильно, позволяет обнаружить большое число ошибок. Однако определение этих границ для каждой задачи может являться отдельной трудной задачей. Также этот метод не проверяет комбинации входных значений.
Анализ причинно-следственных связей. Этапы построения теста:
Спецификация разбивается на рабочие участки.
В спецификации определяются множество причин и следствий. Под причиной понимается отдельное входное условие или класс эквивалентности. Следствие представляет собой выходное условие или преобразование системы. Здесь каждой причине и следствию присваивается номер.
На основе анализа семантического (смыслового) содержания спецификации строится таблица истинности, в которой последовательно перебираются всевозможные комбинации причин и определяются следствия для каждой комбинации причин.
Таблица снабжается примечаниями, задающими ограничения и описывающими комбинации, которые невозможны. Недостатком этого подхода является плохое исследование граничных условий.
Предположение об ошибке. Программист с большим опытом выискивает ошибки без всяких методов, но при этом он подсознательно использует метод предположения об ошибке. Данный метод в значительной степени основан на интуиции. Основная идея метода состоит в том, чтобы составить список, который перечисляет возможные ошибки и ситуации, в которых эти ошибки могли проявиться. Потом на основе списка составляются тесты.
Тестирование белого ящика, также называемая стратегией тестирования управляемая логикой программы позволяет проверить внутреннюю структуру программы. Исходя из этой стратегии тестировщик получает тестовые данные путем анализа логики работы программы.
Стратегия Белого ящика включает в себя следующие методы тестирования:
покрытие операторов
Критерии покрытия операторов подразумевает выполнение каждого оператора программы, по крайней мере, один раз.
покрытие решений
В соответствии с этим критерием необходимо составить такое число тестов, при которых каждое условие в программе примет как истинное значение, так и ложное значение.
покрытие условий
Данный критерий является более эффективным по сравнению с предыдущими. Записывается число тестов достаточное для того, чтобы все возможные результаты каждого условия в решении были выполнены, по крайней мере, один раз. Однако этот критерий не всегда приводит к выполнению каждого оператора, по крайней мере, один раз. Поэтому к этому критерию добавляется дополнительное условие, каждый оператор должен быть выполнен хотя бы один раз. Если после составления тестов у нас останутся не покрытые операторы, то мы должны дополнить свой набор тестов таким образом, чтобы каждый оператор выполняется не менее одного раза.
покрытие решений и условий
В соответствии с этим критерием необходимо составить тесты так, чтобы результаты каждого условия выполнялись хотя бы один раз, результаты каждого решения так же выполнялись хотя бы один раз, и каждый оператор должен быть выполнен хотя бы один раз. Хотя метод и является достаточно мощным и позволяет находить достаточно большое количество ошибок, он имеет и недостатки:
не всегда можно проверить все условия;
невозможно проверить условия, которые скрыты другими условиям;
метод обладает недостаточной чувствительностью к ошибкам в логических выражениях.
комбинаторное покрытие условий
Это критерий требует, чтобы все возможные комбинации результатов условий в каждом решении, а также каждый оператор выполнились, по крайней мере, один раз. Таким образом, для программ, содержащих только одно условие на каждое решение, минимальным является критерий набора тестов которого:
вызывает выполнение всех результатов каждого решения, по крайней мере, один раз;
выполняет каждый оператор, по крайней мере, один раз.
Для программ содержащих более одного условия минимальный критерий состоит из набора тестов, вызывающих выполнение всех возможных комбинаций результатов условий и выполняющий каждый оператор минимум один раз.
