Научная статья на тему 'Методология функционального тестирования программного обеспечения на основе сценариев использования и схемы приоритетов'

Методология функционального тестирования программного обеспечения на основе сценариев использования и схемы приоритетов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
806
534
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Мартюков А. С.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Методология функционального тестирования программного обеспечения на основе сценариев использования и схемы приоритетов»

Методология функционального тестирования программного обеспечения на основе сценариев использования

и схемы приоритетов

Мартюков А.С.

Московский государственный институт электроники и математики, кафедра "Информационные технологии и автоматизированные системы" E-mail: martyukov@itas.miem.edu.ru

Введение

В настоящее время создание программного обеспечения не представляется возможным без процесса тестирования, но, к сожалению, ему не всегда уделяют должное внимание. Это связано, в основном, с экономическими причинами. Производители стремясь уменьшить затраты на выпускаемый продукт часто просто не выделяют должные средства и время на проведение полноценного процесса. В большинстве случаев проводится неполноценное, так называемое, «интуитивное» тестирование в виде создания и разработки проектов в тестируемой системе. Немаловажную роль играет и отсутствие подходящей методологии тестирования.

В настоящей работе рассматривается один из этапов процесса тестирования -функциональное тестирование (метод «черного ящика» или как его еще называют -тестирование на основе покрытия спецификации требований). В этом случае тестировщик имеет доступ к программному обеспечению через те же интерфейсы, что и конечный пользователь.

Анализ разработанных средств

На данный момент разработаны различные методологии написания тест кейсов для тестирования (набор действий, условий, параметров и состояний, необходимых для проверки реализации тестируемого случая), инструментальные средства для автоматизации процесса тестирования, методы для сокращения тестового набора. Но, проанализировав все эти разработки, стоит отметить:

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

• большинство методов и методологий ориентировано на тестирование методом «белого ящика» - на структурное тестирование, основанное на покрытии кода;

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

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

• нет конкретных предписаний применения методологии.

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

Новая методология функционального тестирования

Для исследования предлагается методология функционального тестирования, состоящая из:

• выбора необходимых категорий самих тестов;

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

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

• автоматизации некоторых моментов тестирования.

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

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

Сначала каждому действию менеджером присваивается свой приоритет или указываются те действия, на которые надо обратить особое внимание. Затем все входные данные должны разбиваться на классы эквивалентности так чтобы в одном классе содержались такие тесты, что, если один тест из этого класса эквивалентности обнаруживает некоторую ошибку, то и любой другой тест из этого класса должен обнаруживать эту же ошибку. А потом каждый тест должен будет включать в себя максимальное количество классов эквивалентности. Это необходимо для определения количества тестовых случаев, которые необходимо построить, для минимизации тестового набора, а так же для получения информации о возможных существующих ошибках. На основе разбиения на классы эквивалентности строятся таблицы случаев использования, потом на основе их и имеющегося рейтинга начинается создание самих тестов, так, как уже известно, насколько объемно и качественно надо тестировать каждое действие. Это реализуется в применении различных категорий тестов для функций.

При функциональном тестировании предлагается рассматривать следующие категории тестов:

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

• верные данные - проверка правильного диапазона значений, граничных значений, форматов ввода;

• неверные данные - поведение программы при вводе данных вне правильного диапазона, формата и так далее.

• повторное выполнение - повтор предыдущего действия, повторный ввод данных;

Остальные: сброс, потери мощности, создание напряжений, тестирование

характеристик не применяются, так как не относятся к функциональному тестированию.

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

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

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

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

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

• проверки данных, требующих точных математических расчетов;

• прогона программы на необходимый этап работы;

• тестирования часто используемых функций в различных ситуациях;

Автоматизированное тестирование этих случаев так же улучшает и качество

тестирования.

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

• структуры входных данных;

• спецификаций и требований;

• моделей.

Проанализировав данные ситуации, можно сказать, насколько качественно

проведено тестирование и принять решение о дальнейших действиях.

Заключение

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

Список литературы

1. Екатерина Курач. Методология разработки тестовых случаев на основе сценариев использования. иКЬ: http://www.thalion.kiev.ua/idx.php/110/356/article (дата обращения 10.12.2009)

2. Епифанов Николай Анатольевич. Методы реализации регрессионного тестирования по расширенным тестовым наборам // Дис. ... канд. техн. наук : 05.13.11 : Санкт-Петербург, 2003 149 с.

3. В. В. Кулямин. Специальный курс «Тестирование на основе моделей.»

//Факультет ВМиК МГУ, 2009

i Надоели баннеры? Вы всегда можете отключить рекламу.