Опубликован: 15.01.2013 | Доступ: свободный | Студентов: 1932 / 550 | Длительность: 08:58:00
Специальности: Программист
Самостоятельная работа 15:

Автоматическое тестирование

Аннотация: Цель лабораторной работы: Получить практические навыки создания автоматических тестов и привязки их к тестовым случаям.

Продолжительность лабораторной работы - 2 академических часа.

Общие сведения

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

Автоматические тесты можно создать на основе следующих тестов:

  • Закодированных тестов пользовательского интерфейса, которые используются для тестирования пользовательского интерфейса путем выполнения последовательности действий пользователя;
  • Модульных тестов, которые используются для тестирования кода на уровне методов;
  • Модульных тестов баз данных, которые используются для тестирования хранимых процедур, функция и триггеров баз данных;
  • Нагрузочных тестов, которые используются для тестирования производительности приложения и его устойчивости к нагрузкам;
  • Веб-тестов производительности, которые используются в составе нагрузочных тестов для тестирования ответов сервера для веб-приложений.

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

Создание автоматического теста

Добавим в решение ProjectTeachingLoadOfTeachers проект с закодированными тестами пользователя. Для этого в окне Добавить новый проект ( рис. 23.1) выберем шаблон Проект с закодированными тестами пользователя (1) и для проекта зададим имя CodedUITestTeachingLoad (2).

Для формирования автоматического теста запускается мастер формирования кода теста.

Создание проекта автоматического тестирования

увеличить изображение
Рис. 23.1. Создание проекта автоматического тестирования

В диалоговом окне Сформировать код для кодированного теста ИП установим флаг Использовать существующую запись действий ( рис. 23.2).

Диалоговое окно Сформировать код для кодированного теста ИП

Рис. 23.2. Диалоговое окно Сформировать код для кодированного теста ИП

На следующем этапе формирования кода автоматического теста открывается диалоговое окно Выбор рабочих элементов ( рис. 23.3). В диалоговом окне Выбор рабочих элементов ( рис. 23.4) установите запрос (1) на выбор рабочих элементов проекта. Запрос на выбор рабочих элементов должен существовать в командном проекте. Если требуемый запрос в командном проекте отсутствует, то его необходимо создать.

После выбора запроса нажмите кнопку Найти (2), что приведет к выводу списка доступных тестовых случаев.

Выделите требуемый тестовый случай (3). В рассматриваемом примере - это Тестирование ввода данных по студенческим группам. После нажатия кнопки ОК (4) начинается генерация кода автоматического теста.

Диалоговое окно Выбор рабочих элементов

Рис. 23.3. Диалоговое окно Выбор рабочих элементов
Выбор тестового случая

Рис. 23.4. Выбор тестового случая

По окончания генерации проекта автоматического тестирования CodedUITestTeachingLoad он добавляется в решение ProjectTeachingLoadOfTeachers ( рис. 23.5).

Проект CodedUITestTeachingLoad добавлен в решение ProjectTeachingLoadOfTeachers

Рис. 23.5. Проект CodedUITestTeachingLoad добавлен в решение ProjectTeachingLoadOfTeachers

Листинг сгенерированного класса 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.6. Связывание тестового случая с автоматическим тестом

В диалоговом окне выбора теста ( рис. 23.7) выделите ранее созданный автоматический тест и нажмите кнопку ОК. На вкладке тестового случая ( рис. 23.6) будет установлено имя (3), хранилище и тип автоматического теста.

Диалоговое окно выбора теста

увеличить изображение
Рис. 23.7. Диалоговое окно выбора теста

Задание

  1. Изучить теоретический материал.
  2. Создать автоматический тест.
  3. Привязать автоматический тест к тестовому случаю
кайрат мухтаров
кайрат мухтаров
Мария Морозова
Мария Морозова

Здравствуйте!

В диалоговом окне Добавить Team Foundation Server введите имя или URL-адрес сервера TFS. Ввожу как в инструкции localhost, выдает ошибку, что невозможно соединиться с сервером. Что делать? Никакого администратора нет, что вводить?