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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

– когда срок, отведенный для графика тестирования, истёк;

– когда все тесты выполняются без обнаружения ошибок (т.е. сбой);

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

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

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

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

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

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

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

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

Наши рекомендации