Автоматическое тестирование
Продолжительность лабораторной работы - 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), хранилище и тип автоматического теста.
Задание
- Изучить теоретический материал.
- Создать автоматический тест.
- Привязать автоматический тест к тестовому случаю






