Автоматическое тестирование
Продолжительность лабораторной работы - 2 академических часа.
Общие сведения
С помощью Visual Studio 2012 можно создать несколько типов автоматических тестов, которые позволяют более эффективно тестировать приложения. Автоматические тесты выполняют шаги теста и определяют пройден тест или завершен с ошибкой. Эти тесты можно выполнять с более высокой скоростью и периодичностью. Автоматические тесты позволяют быстро проверить правильность работы приложения после внесения изменений в его код.
Автоматические тесты можно создать на основе следующих тестов:
- Закодированных тестов пользовательского интерфейса, которые используются для тестирования пользовательского интерфейса путем выполнения последовательности действий пользователя;
- Модульных тестов, которые используются для тестирования кода на уровне методов;
- Модульных тестов баз данных, которые используются для тестирования хранимых процедур, функция и триггеров баз данных;
- Нагрузочных тестов, которые используются для тестирования производительности приложения и его устойчивости к нагрузкам;
- Веб-тестов производительности, которые используются в составе нагрузочных тестов для тестирования ответов сервера для веб-приложений.
Типы создаваемых автоматических тестов определяются конкретными целями тестирования. После создания тестов можно указать, следует ли сообщать об их результатах в рамках плана тестирования.
Создание автоматического теста
Добавим в решение ProjectTeachingLoadOfTeachers проект с закодированными тестами пользователя. Для этого в окне Добавить новый проект ( рис. 23.1) выберем шаблон Проект с закодированными тестами пользователя (1) и для проекта зададим имя CodedUITestTeachingLoad (2).
Для формирования автоматического теста запускается мастер формирования кода теста.
В диалоговом окне Сформировать код для кодированного теста ИП установим флаг Использовать существующую запись действий ( рис. 23.2).
На следующем этапе формирования кода автоматического теста открывается диалоговое окно Выбор рабочих элементов ( рис. 23.3). В диалоговом окне Выбор рабочих элементов ( рис. 23.4) установите запрос (1) на выбор рабочих элементов проекта. Запрос на выбор рабочих элементов должен существовать в командном проекте. Если требуемый запрос в командном проекте отсутствует, то его необходимо создать.
После выбора запроса нажмите кнопку Найти (2), что приведет к выводу списка доступных тестовых случаев.
Выделите требуемый тестовый случай (3). В рассматриваемом примере - это Тестирование ввода данных по студенческим группам. После нажатия кнопки ОК (4) начинается генерация кода автоматического теста.
По окончания генерации проекта автоматического тестирования CodedUITestTeachingLoad он добавляется в решение ProjectTeachingLoadOfTeachers ( рис. 23.5).
Листинг сгенерированного класса CodedUITest1 имеет следующий вид.
using System; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Windows.Input; using System.Windows.Forms; using System.Drawing; using Microsoft.VisualStudio.TestTools.UITesting; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UITest.Extension; using Keyboard = Microsoft.VisualStudio.TestTools.UITesting.Keyboard; namespace CodedUITestTeachingLoad { [CodedUITest] public class CodedUITest1 { public CodedUITest1() { } [TestMethod] public void CodedUITestMethod1() { this.UIMap.Загрузитьприложение(); this.UIMap.ВыбратьссылкуСтуденческиегруппы(); this.UIMap.ЩелкнитекнопкуДобавить(); this.UIMap.ВведитевполеГруппаППП999(); this.UIMap.ВведитевполеКоличествоиностранцев3(); this.UIMap.ВведитевполеКоличествоподгрупп2(); this.UIMap.ВполеФакультетизвыпадающегоспискавыберитеИИУ(); this.UIMap.НажмитекнопкуОК(); this.UIMap.Закройтеприложение(); } #region Дополнительные атрибуты тестирования // При написании тестов можно использовать следующие дополнительные атрибуты: ////TestInitialize используется для выполнения кода перед запуском каждого теста //[TestInitialize()] //public void MyTestInitialize() //{ // // Чтобы создать код для этого теста, выберите в контекстном меню команду "Сформировать код для кодированного теста ИП", а затем выберите один из пунктов меню. // // Дополнительные сведения по сформированному коду см. по ссылке http://go.microsoft.com/fwlink/?LinkId=179463 //} ////TestCleanup используется для выполнения кода после завершения каждого теста //[TestCleanup()] //public void MyTestCleanup() //{ // // Чтобы создать код для этого теста, выберите в контекстном меню команду "Сформировать код для кодированного теста ИП", а затем выберите один из пунктов меню. // // Дополнительные сведения по сформированному коду см. по ссылке http://go.microsoft.com/fwlink/?LinkId=179463 //} #endregion /// <summary> ///Получает или устанавливает контекст теста, в котором предоставляются ///сведения о текущем тестовом запуске и обеспечивается его функциональность. ///</summary> public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } private TestContext testContextInstance; public UIMap UIMap { get { if ((this.map == null)) { this.map = new UIMap(); } return this.map; } } private UIMap map; } }Листинг .
В методе CodedUITestMethod1 имеются вызовы методов класса UIMap, соответствующие записанным шагам ручного теста.
В сгенерированный тест, при необходимости, можно добавить дополнительные проверки, шаги, параметры.
Выполнить созданный тест можно из Microsoft Test Manager или Visual Studio 2012.
Привязка автоматического теста к тестовому случаю
Созданный автоматический тест целесообразно связать с тестовым случаем. Для этого откройте тестовый случай Тестирование ввода данных по студенческим группам ( рис. 23.6), выберите вкладку СВЯЗАННАЯ АВТОМАТИЗАЦИЯ (1), нажмите кнопку с многоточием (2).
В диалоговом окне выбора теста ( рис. 23.7) выделите ранее созданный автоматический тест и нажмите кнопку ОК. На вкладке тестового случая ( рис. 23.6) будет установлено имя (3), хранилище и тип автоматического теста.
Задание
- Изучить теоретический материал.
- Создать автоматический тест.
- Привязать автоматический тест к тестовому случаю