Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.68 Mб
Скачать

3.2 Результаты тестирования системы

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

Принципы тестирования:

  • процесс тестирования более эффективен, если проводится не автором программы;

  • описание предполагаемых значений результатов тестовых прогонов должно быть необходимой частью тестового набора данных;

  • необходимо досконально изучать результаты применения каждого теста;

  • тесты для неправильных и непредусмотренных входных данных должны разрабатываться также тщательно, как для правильных, предусмотренных;

  • необходимо проверять не только, делает ли программа то, для чего она предназначена, но и не делает ли она то, что не должна делать;

  • вероятность наличия необнаруженных ошибок в части программы пропорциональна числу ошибок, уже обнаруженных в этой части.

Методы тестирования:

  • статическое тестирование – наиболее формализованное, базируется на правилах структурного построения программ и обработки данных, проверка степени выполнения этих правил проводится без изменения объектного кода программы путем формального анализа текста программы на языке программиро­вания;

  • детерминированное тестирование, которое требует многократного выполнения программы на ЭВМ с использованием определенных, специальным образом подобранных тестовых наборов данных; контролируется каждая комбинация исходных данных и соответствующие результаты, а также каждое утверждение в спецификации тестируемой программы;

  • стохастическое тестирование предполагает использование в качестве исходных данных множества случайных величин с соответствующими распределениями, а для сравнения полученных результатов используются также распределения случайных величин;

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

Детерминированное тестирование основывается на двух подходах: структурное тестирование и функциональное тестирование.

При построении тестовых наборов данных по принципу «белого ящика» (структурное тестирование) руководствуются следующими критериями:

  • покрытие операторов – предполагает выбор такого тестового набора данных, который вызывает выполнение каждого оператора в программе хотя бы один раз;

  • покрытие узлов ветвления (покрытие решений) – предполагает разработку такого количества тестов, чтобы в каждом узле ветвления был обеспечен переход по веткам «истина» и «ложь» хотя бы один раз;

  • покрытие условий – если узел ветвления содержит более одного условия, тогда нужно разработать число тестов, достаточное для того, чтобы возможные результаты каждого условия в решении выполнялись, по крайней мере, один раз каждой точке входа в программу должно быть передано управление при вызове;

  • комбинаторное покрытие условий – требует создания такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении и все точки входа выполнялись, по крайней мере, один раз;

  • метод эквивалентного разбиения – построение тестов методов эквивалентного разбиения;

  • анализ граничных значений – предполагает исследование ситуаций, возникающих на границах и вблизи границ эквивалентных разбиений;

  • метод функциональных диаграмм – заключается в преобразовании входной спецификации программы в функциональную диаграмму (диаграмму причинно-следственных связей) с помощью простейших булевских отношений, построе­ния таблицы решений (методом обратной трассировки), которая является основой для написания эффективных тестовых наборов данных.

Критерии завершенности тестирования:

  • когда время, отведенное по графику на тестирование, истекло;

  • когда все тесты выполняются без выявления ошибок (т.е. оказались неудачными);

  • критерий, основанный в значительной степени на здравом смысле и информации о количестве ошибок, полученных в процессе тестирования (для этого строят график зависимости количества ошибок и времени их появления, по форме полученной кривой можно определить, стоит продолжать тестирование или нет);

  • подход, при котором для определения критерия завершенности тестирования используются количественные показатели надежности, рассчитываемые по моделям надежности.

Для тестирования разработанной системы применялись методы детерминированного тестирования. Тестовые данные подбирались с учетом критериев покрытия операторов, покрытия узлов ветвления, покрытия условий и анализа граничных значений.

Всякая достаточно большая система не может быть протестирована за один раз. Поэтому можно выделить следующие этапы тестирования:

  • тестирование модулей, которое производится в случае, если модуль может быть проверен автономно от других модулей. При этом необходимо убедительно продемонстрировать, что модуль работает корректно во всех граничных условиях;

  • тестирование подсистем, целью которого является проверка сопряжения между собой модулей, входящих в подсистему, корректную передачу данных между ними;

  • тестирование системы. На этом уровне выявляются ошибки сопряжения, сложные ошибки быстродействия и емкости, логические ошибки.

В качестве критериев полноты тестирования можно рекомендовать: число тестов, на которых была проверена программа; число часов правильного функционирования программы; процент модулей, проверенных при тестировании.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]