
- •2015 Г.
- •1. Тестирование программного обеспечения
- •1.1 Модульное тестирование
- •1.2 Интеграционное тестирование
- •1.3 Системное тестирование
- •1.4 Регрессионное тестирование
- •1.5 Ручное и автоматизированное тестирование
- •2. Автоматизация тестирования программного обеспечения
- •2.1 Основные аспекты автоматического тестирования
- •2.2 Преимущества и недостатки автоматического тестирования
- •3. Практическая часть
- •3.1 Постановка задачи
- •3.2 Описание тестируемой программы
- •3.3 Выполнение тестирования
- •3.4 Листинг тестов
- •3.5 Листинг тестируемой программы
1.5 Ручное и автоматизированное тестирование
Ручное тестирование выполняется без применения специальных программных средств и заключается в выполнении документированной процедуры, где описана методика выполнения тестов, задающая порядок тестов и для каждого теста – список значений параметров, которые подаются на вход, и список результатов, которые ожидаются на выходе. Поскольку процедура предназначена для выполнения человеком, в ее описании для краткости могут использоваться некоторые значения по умолчанию, ориентированные на здравый смысл, и ссылки на информацию, хранящуюся в другом документе.
При генерации отчетов о ручных тестах генерируется форма, в которую тестировщик заносит данные о результатах проведенного им ручного тестирования. Само ручное тестирование может заключаться либо в выполнении тестового сценария, заданного в тест-плане, либо в экспертном анализе участков программного кода системы, которые не могут быть выполнены при автоматическом тестировании на тестовом стенде.
Форма для ручного тестирования, как правило, содержит следующую информацию:
1) Идентификатор ручного тестового примера;
2) Описание сценария ручного теста или задачи экспертного анализа;
3) Имя лица, проводившего ручное тестирование;
4) Версии требований, на основании которых проводилось ручное тестирование;
5) Ссылки на участки программного кода, для которого проводится ручное тестирование;
6) Результат тестирования. Информация о соответствии исходного кода требованиям – соответствует или не соответствует;
7) Информация о потенциально возможных проблемах внутри допустимого диапазона значений и за его пределами;
8) Информация о возможности покрытия тестируемого вручную программного кода при достижении условий, указанных в требованиях;
9) Информация об итоговом результате ручного тестового примера – успешно или неуспешно.
При автоматизированном тестировании используются программные средства для выполнения тестов и проверки результатов выполнения, что помогает сократить время тестирования и упростить его процесс. Автоматизация тестирования ПО более подробно рассмотрена в следующем разделе.
2. Автоматизация тестирования программного обеспечения
Разработка тестов, как правило, начинается с момента согласования требований к программной системе и продолжается параллельно с проектированием и конструированием программного кода. В результате к началу системного тестирования создаются тестовые наборы, включающие сотни и тысячи различных тестов. Большое количество тестов обеспечивает достаточно полное покрытие системы, всестороннюю проверку корректности функционирования системы и, следовательно, гарантирует высокое качество программного продукта. Однако проведение такого количества тестов вручную, очевидно, представляет собой сложную проблему. Решить эту проблему можно с помощью автоматизации тестирования.
2.1 Основные аспекты автоматического тестирования
Автоматизация тестирования подразумевает автоматизацию разработки тестовых наборов и автоматизацию пропуска сгенерированных тестов на разрабатываемой программной системе.
Программная часть процесса автоматизации тестирования включает следующие компоненты [5]:
1) Библиотека функций (function library)
Представляет собой набор пользовательских функций, используемых скриптами. Основным критерием при создании библиотеки функций является дублирующая функциональность, т.е. любая программная функциональность, которая встречается чаще, чем в одном скрипте.
2) Библиотека объектов (object repository)
Содержит описание всех графических объектов программной системы. Каждый элемент графического интерфейса пользователя должен быть описан в соответствующем формате и сохранен в специальном файле, прежде чем этот элемент может быть задействован в процессе тестирования.
3) Библиотека скриптов (script library)
Представляет собой набор скриптов, выполняющих задачи автоматического тестирования программной системы.
Каждое программное средство, используемое для автоматического тестирования, имеет средство опознавания объектов, библиотеку объектов и среду выполнения. Средство опознавания объектов – это утилита распознавания класса объектов и его свойств. Библиотека объектов содержит соответствующую информацию в специальном формате. Среда выполнения представляет собой графическую оболочку, позволяющую модифицировать и исполнять скрипты автоматизации.
В настоящее время существует большое количество различных инструментов для автоматического тестирования, например:
1) NUnit — порт JUnit под .NET;
2) TestNG — тестирование приложений для Java;
3) JUnit — тестирование приложений для Java;
4) Selenium — тестирование приложений HTML;
5) TOSCA Testsuite — тестирование приложений HTML, .NET, Java, SAP;
6) UniTESK — тестирование приложений на Java, Си;
7) Segue Silk Test;
8) Mercury Interactive WinRunner;
9) Rational Robot.
Для автоматизации процесса тестирования, помимо программных инструментов, также нужны соответствующая документация (описание программной инфраструктуры, матрицы выполнения и т.п.) и набор тестовых данных (входных и ожидаемых результатов).
Существует два основных подхода к автоматизации тестирования:
1) тестирование на уровне кода (в том числе модульное тестирование);
2) тестирование пользовательского интерфейса (в частности, GUI-тестирование). При этом выполняется имитация действий пользователя с помощью специальных тестовых фреймворков.
Средства автоматизации тестирования обеспечивают быстрый контроль результатов исправления ошибок и проверку уровня качества, достигнутого в программной системе.