ТОП 10:

Тестирование программного обеспечения. Модели тестирования белого и черного ящика. Виды испытания и их характеристика.



 

Тестирование – процесс выполнения программы с целью обнаружения ошибок. Шаги процесса тестирования задаются тестами (тестовыми вариантами). Каждый тестовый вариант определяет:

- свой набор исходных данных и условий запуска программы;

- набор ожидаемых результатов работы программы.

Полную проверку программы гарантирует исчерпывающее тестирование. Оно требует проверить все наборы исходных данных, все варианты их обработки и включает, таким образом, большое количество тестовых вариантов. Провести исчерпывающее тестирование обычно в полном объеме не удается из-за недостатка времени.

Тестовые варианты должны быть разработаны заранее. Хорошим считают тестовый вариант с высокой вероятностью обнаружения еще не раскрытой ошибки. Успешным называют тест, который обнаруживает до сих пор не раскрытую ошибку.

Тестирование обеспечивает:

- обнаружение ошибок;

- демонстрацию соответствия функций программы ее назначению;

- демонстрацию реализации требований к характеристикам программы;

- оценку надежности программы.

 

Процесс тестирования представлен на рис.

 

 

На входе процесса тестирования три потока: текст программы, исходные данные для запуска программы, ожидаемые результаты.

Выполняются тесты, все полученные результаты оцениваются. Это значит, что реальные результаты тестов сравниваются с ожидаемыми результатами. Когда обнаруживаются несовпадение, фиксируется ошибка и начинается отладка, которая заключается в поиске и исправлении ошибок.

После сбора и оценивания результатов тестирования прогнозируется надежность ПО. Если регулярно встречаются серьезные ошибки, то качество и надежность ПО подозрительны, поэтому необходимо усилить тестирование. Если функции ПО реализованы правильно, серьезные ошибки не обнаруживаются, то может быть сделан один из двух выводов:

- качество и надежность ПО удовлетворительны;

- тесты не способны обнаружить серьезные ошибки, поэтому тестовые варианты необходимо пересмотреть и провести дополнительное тестирование.

Результаты, накопленные в ходе тестирования, могут оцениваться и более формальным способом с использованием моделей надежности ПО, выполняющих прогноз надежности по реальным данным об интенсивности ошибок.

 

Существует 2 принципа тестирования программы:

- функциональное тестирование (тестирование «черного ящика»);

- структурное тестирование (тестирование «белого ящика»).

Тестирование «черного ящика». Известны функции программы. Исследуется работа каждой функции на всей области определения (рис. 2). Рассматриваются системные характеристики, при этом игнорируется ее внутренняя логическая структура. Эти тесты демонстрируют: как выполняются функции, как программа принимает исходные данные, как вырабатываются результаты, как сохраняется целостность внешней информации.

 
 

Методы тестирование черного ящика:

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

2) Анализа граничных значений. Он учитывает границы перехода от одного класса к другому. Требует проверки условий ввода, области ввода.

3) Предположения об ошибках. Основан на предыдущем опыте тестировщика. Тесты исходя из понимания специфики программы, знания её входных и выходных данных.

 

 

 
 

Тестирование «белого ящика». Известна внутренняя структура программы. Исследуются внутренние элементы программы и связи между ними (рис. 3).

 

 

Объектом тестирования является не внешнее, а внутреннее поведение программы. Проверяется корректность построения всех элементов программы и правильность их взаимодействия друг с другом.

Методы тестирования белого ящика:

1) Метод тестирования базового пути (покрытия операторов). Тестовые варианты разрабатываются для проверки базового множества путей (маршрутов) в программе. Они гарантируют однократное выполнение каждого оператора программы при тестировании. Определяется базовое множество независимых линейных путей. Подготавливаются тестовые варианты, инициирующие выполнение каждого пути.

2) Метод покрытия решений, или покрытия переходов. Число тестов должно быть такое, чтобы каждый условный оператор принял все возможные значения (обычно "истина" и "ложь"). Поскольку условный оператор может состоять из двух и более условий, то при использовании настоящего метода не все условия могут быть протестированы.

3) Метод покрытия условий. Число тестов должно быть такое, чтобы все возможные результаты каждого условия в операторах перехода выполнялись хотя бы один раз. Но при этом может случиться, что сам условный оператор не примет всех возможных значений.

4) Метод покрытия решений/условий. Этот метод сочетает в себе два предыдущих метода.

5) Метод комбинаторного покрытия условий. Этот метод требует создания такого числа тестов, чтобы перебрать все возможные комбинации результатов проверки условий. Однако, если компилятор оптимизирует логические выражения, эта проверка может не получиться (так же, как и в методе покрытия условий).







Последнее изменение этой страницы: 2017-02-22; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.232.51.69 (0.006 с.)