Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Общие методические указания





Данный лабораторный практикум включает цикл из трех лабораторных работ. Все лабораторные работы выполняются на ПЭВМ в среде Windows. В качестве инструментального средства автоматизации тестирования программ используется Microsoft Visual Studio (VS) версий 2010 и выше.

VS предоставляет средства тестирования, помогающие внедрить процедуры тестирования, такие как ручное и автоматическое тестирование, произвольное тестирование и нагрузочное тестирование. Эти инструменты тестирования позволяют получить полезную информацию, которая контекстно предоставляется разработчику в среде разработки, поэтому ошибки легче воспроизводятся, а контроль качества осуществляется на протяжении всего процесса разработки. Кроме того, тест-инженеры могут эффективнее планировать, выполнять и отслеживать тесты с помощью веб-средства управления тестами или интерфейса, предоставляемого Microsoft.

В качестве языка программирования, который, предлагается использовать выбран C#, однако VS позволяет создавать тестовые проекты с использованием языков Visual Basic и C++.

При выполнении лабораторных работ используется Ultimate – наиболее полное издание Visual Studio, включающие все доступные инструменты для написания, тестирования, отладки и анализа программ, а также дополнительные инструменты для работы с базами данных и проектирования архитектуры ПО.

Лабораторные работы связаны с тестированием программных объектов (эксплуатируемых или вновь создаваемых программ и файлов). Студент, получив задание от преподавателя, на выполнение одной из данных работ, должен:

1) ознакомиться с объектом тестирования, описанным в предлагаемом варианте задания, уяснить функции этого объекта, определить входные и выходные данные;

2) если объектом тестирования является готовая программа, например, встроенный калькулятор OC Windows, то следует перейти к тестированию данной программы. [Н8] Если программа – объект тестирования отсутствует, то ее нужно разработать и отладить. Если объектом тестирования является файл, то его необходимо создать и записать на диск;

3) разработать для тестирования объекта список тестов и

включенных в них элементарных тестовых случаев;[Н9]

4) выполнить ручное тестирование и одновременно отладить тестовые случаи;

5) реализовать отлаженные тестовые случаи в виде скриптов;

6) выполнить автоматическое тестирование программного объекта;

7) составить отчет по лабораторной работе.

Отчет по результатам выполнения лабораторных работ должен включать следующие разделы:

1) титульный лист (Приложение 1);

2) название лабораторной работы, цель работы;

3) постановку задачи для конкретного варианта задания;

4) описание объекта тестирования (назначение, функции, интерфейс

пользователя, форматы входных и выходных данных и т.д.);

5) список всех используемых тестов и содержимое всех ручных тестовых случаев;

6) сведения о дефектах, обнаруженных ручными и автоматическими тестовыми случаями;

7) исходный код разработанной и отлаженной тестируемой программы (если этого требует задание);

8) код всех тестовых случаев, представленных скриптами.

Желательно при представлении тестовых случаев использовать шаблоны, описанные в пособии [1] и в лекциях.

В качестве приложения к отчету по каждой лабораторной работе должны быть представлены коды скриптов тестовых случаев на магнитном [Н10] носителе (Обложка для носителя представлена в Приложении 2).

Результаты каждой лабораторной работы должны быть защищены. Защита происходит в форме беседы между студентом и преподавателем. Во время защиты проверке подлежат все данные и программы, приведенные в отчете, а также теоретические знания, необходимые для успешного выполнения лабораторной работы.

Студент, успешно выполнивший и защитивший все лабораторные работы, получает зачет и допускается к сдаче экзамена.

ЗНАКОМСТВО С ПАКЕТОМ MICROSOFT VS ULTIMATE

 

В данном разделе на конкретном примере иллюстрируются возможности, функции и система команд пакета автоматизации тестирования VS 2012 Ultimate.

Постановка задачи. Создать тестовый проект, в котором вызывается встроенный в OC Windows калькулятор и осуществляется вычисление суммы двух чисел (12 и 45).

Порядок выполнения

Откройте VS и нажмите на стартовой странице New Project или через меню выберите File àNew àProject. В открывшемся диалоговом окне New Project выберите тип проекта Visual C# Test, укажите тип теста Coded UI Test, введите название проекта MyTestProject1 и нажмите OK.

 

 

Автоматический тест пользовательского интерфейса в VS основан на использовании сценариев (последовательностей действий). Во время записи сценария VS запоминает действия, которые выполнил тестер. После проверки тестером списка выполненных действий, на их основе создается код, который при выполнении будет повторять действия тестера. Сценарии бывают двух видов – сценарий записи и сценарий подтверждения.

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

· Record actions, edit UI map or add assertions – запись теста с помощью инструмента записи-воспроизведения;

· Use an existing actions recording – выбрать уже готовую последовательность действий.

Выберите Record actions, edit UI map or add assertion.

 

 

Окно VS свернется и на экране появится окно UI Map – Coded UI Test Builder: [Н11]

 

§ Кнопка Start Recording позволяет начать/остановить запись сценария записи.

§ Все выполненные действия можно посмотреть, нажав кнопку Show Recorded Steps.

§ С помощью следующей кнопки (Add Assertion) мы можем изменить карту пользовательского интерфейса (на карте представлены все элементы управления пользовательского интерфейса, отображаемые в тестируемом приложении). И добавить утверждение (Assert).

§ И, наконец, Generate Code – сгенерировать код сценария.

Нажмите Start Recording и откройте калькулятор Windows.

После чего нажмите Pause Recording и просмотрите выполненные вами действия.

 

 

Нажмите Generate Code, введите имя метода OpenRecordedMethod и нажмите Add and Generate.

 

Нажмите Resume Recording и выполните следующие действия:

1. Введите «12+45».

2. Нажмите Enter.

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

 

 

Нажмите Generate Code и введите имя метода SumRecordedMethod.

После генерации кода добавим проверку полученных результатов. Для этого нажмите Add Assertion. В появившемся окне Add Assertion нажмите стрелку.

 

 

В правой части окна кликните Show all the properties и в списке доступных свойств поля ввода выберите Display Text. Обратите внимание на синюю рамку вокруг поля ввода калькулятора.

 

 

Нажмите кнопку Add Assertion. В списке Comparator представлены методы класса Assert, предназначенного для сравнения фактического состояния какого либо элемента управления с эталонным. Оставим метод сравнения AreEqual и нажмем OK. Слева около свойства Display Text появилась красная галочка, указывающая, что на данный элемент добавлена проверка. Теперь нажмите Generate Code и назовите метод CompareResult.

Теперь, остается записать в сценарий закрытие калькулятора. Для этого нажмите Resume Recording, закройте калькулятор, нажмите Stop Recording и создайте метод CloseRecordedMethod. На этом создание теста законченно.

Обратите внимание, что за все время мы не написали ни одной строчки кода. При этом тест может автоматически открыть калькулятор, произвести вычисления, проверить результат и закрыть калькулятор. Во многих случаях тесты и пишутся так, особенно если они простые и вводимые данные заранее известны. Теперь давайте посмотрим код созданного нами теста. Для этого закройте окно Coded UI Test Builder.

После генерации методов в проекте должны появится три новых файла: UIMap.uitest, UIMap.Designer.cs, UIMap.cs.

· UIMap.uitest – содержит модель XML для класса UIMap, включающую все окна, элементы управления, свойства, методы, параметры, действия и проверки;

· UIMap.Designer.cs – содержит представление кода XML, содержащегося в файле UIMap.uitest. Этот файл генерируется автоматически;

· UIMap.cs – содержит дополнительный код для класса UIMap. Можно выполнять любые настройки карты пользовательского интерфейса в этом файле.

Класс самого теста (по умолчанию - CodedUITest1.cs) содержит методы теста и проверки.

Переименуем тест в CalcTest. Для этого наведите курсор на название метода и в контекстном меню выберите Refactor àRename. Введите новое название и нажмите ОК.

 

Нажмите Apply.

 

Откроем файл CodedUITest1.cs, взглянем на записанные методы:

Этот метод помечен атрибутом TestMethod и в нем вызываются методы, записанные нами, в том порядке, в котором они были записаны. Теперь нажмите на + около Additional test attributes и увидите закомментированные методы MyTestInitialize и MyTestCleanup. При необходимости, первый из них вызывается перед выполнением каждого тестового метода, а второй – после.

Взглянем на реализацию. Для этого поставьте курсор мыши на любой из методов и выберите в контекстном меню Go To Definition или нажмите F12. Все действия в сценарии снабжены комментариями.

 

 

public void OpenRecordedMethod()

{

// Launch '%SystemRoot%\System32\calc.exe'

ApplicationUnderTest calcApplication = ApplicationUnderTest.Launch(this.OpenRecordedMethodParams.ExePath, this.OpenRecordedMethodParams.AlternateExePath);

}

Экземпляры класса WinClient созданы для Рабочего стола, класса WinText - для текстового поля калькулятора и ApplicationUnderTest для окна калькулятора.

 

public void SumRecordedMethod()

{

#region Variable Declarations

WinText uIItem0Text = this.UIКалькуляторWindow.UIItem0Window.UIItem0Text;

#endregion

 

// Type '{NumPad1}{NumPad2}{Add}{NumPad4}{NumPad5}{Enter}' in '0' label

Keyboard.SendKeys(uIItem0Text, this.SumRecordedMethodParams.UIItem0TextSendKeys, ModifierKeys.None);

}

Чтобы просмотреть введенные числа, поставьте курсор на второй параметр (Keyboard.SendKeys) и нажмите F12.

public class SumRecordedMethodParams

{

#region Fields

/// <summary>

/// Type '{NumPad1}{NumPad2}{Add}{NumPad4}{NumPad5}{Enter}' in '0' label

/// </summary>

public string UIItem0TextSendKeys="{NumPad1}{NumPad2}{Add}{NumPad4}{NumPad5}{Enter}";

#endregion

}

 

public void CompareResult()

{

#region Variable Declarations

WinText uIItem0Text = this.UIКалькуляторWindow.UIItem0Window.UIItem0Text;

#endregion

// Verify that the 'DisplayText' property of '0' label equals '57'

Assert.AreEqual(this.CompareResultExpectedValues.UIItem0TextDisplayText, uIItem0Text.DisplayText);

}

public void CloseRecordedMethod()

{

#region Variable Declarations

WinButton uIЗакрытьButton = this.UIКалькуляторWindow.UIКалькуляторTitleBar.UIЗакрытьButton;

#endregion

 

// Click 'Закрыть' button

Mouse.Click(uIЗакрытьButton, new Point(31, 9));

}

 

Запустите тест нажав кнопку , либо сочетание CTRL+R,T.

 

 

Тест успешно отработал, мы видели, как открывается окно калькулятора, вводятся данные.

Теперь добавьте новый (ошибочный) тест. Для этого скопируйте метод CalcTest, вставьте копию ниже и переименуйте ее в ErrorCalcTest. Удалите метод CompareResult и на его месте в контекстном меню выберите пункт Generate Code For Code UI Test àUse Coded UI Test Builder. Аналогично предыдущему примеру запишите новый метод проверки (ErrorCompareResult).

 

Код нового метода должен выглядеть следующим образом:

Поместите собственное сообщение об ошибке в метод класса Assert. Для этого в строке вызова метода AreEqual третьим параметром допишите «Преднамеренная ошибка».

 

public void ErrorCompareResult()

{

#region Variable Declarations

WinText uIItem0Text = this.UIКалькуляторWindow.UIItem0Window.UIItem0Text;

#endregion

 

// Verify that the 'DisplayText' property of '0' label equals '75'

Assert.AreEqual(this.ErrorCompareResultExpectedValues.UIItem0TextDisplay Text, uIItem0Text.DisplayText, "Преднамеренная ошибка");

}

Запустите тесты.

 

Лабораторная работа №1

 

РАЗРАБОТКА СКРИПТОВ ДЛЯ АВТОМАТИЗАЦИИ

ТЕСТИРОВАНИЯ ФУНКЦИЙ КАЛЬКУЛЯТОРА

 

Цель работы. На примере встроенного в OC Windows калькулятора получить практический опыт автоматизации тестирования программного объекта со стандартными элементами управления.

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

Варианты заданий

 

1. Разработать скрипт, реализующий проверку операций сложения калькулятора.

2. Разработать скрипт, осуществляющий проверку операций умножения и деления калькулятора.

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

4. Разработать скрипт, выполняющий проверку вычислений значения полинома, используя схему Горнера на калькуляторе. Тип полинома взять из Таблицы 1[Н12].

5. Разработать скрипт, осуществляющий проверку вычислений суммы бесконечного ряда с заданной точностью на калькуляторе. Данные для выполнения здания приведены в Таблице 2.

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

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

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

Таблица 1

№ вар. Полином
  x7−5x6+2x5+18x4−11x3−25x2+8x+12
  8x6−44x5+50x4+55x3−55x2−56x−12
  x7+4x6-8x4+6x3+9x2+2x-3
  x8-6x7+9x6-x2+6x-9
  6x12-5x10+4x8-3x6+2x4-x2+6

Таблица 2

№ вар. Ряд Контрольная формула
 
 
 
 
 

Таблица 3

№ вар. Определенный интеграл Значение интеграла  
 
 
 
 
 

Таблица 4

№ вар. Уравнение f(x)=0 Область значений x [a;b]
  [1;3]
  [1;3]
  [1;2]
  [3;4]
  [-2;-1]

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

 

По образцу, представленному в предыдущем разделе, создайте следующие сценарии:

I. CalcOpen (сценарий записи)

Откройте калькулятор.

II. Calculation (сценарий записи)

1. Введите , используя кнопки (Унарный минус), (Добавление в память) и (Вызов из памяти).

2. Нажмите Enter.

III. CompareResult (сценарий подтверждения)

Сравните фактическое значение текстового поля калькулятора с эталонным результатом.

IV. ClearTextBox (сценарий записи)

1. Нажмите Ecs.

2. Нажмите MC (Очистка памяти).

V. CalcClose (сценарий записи)

Закройте калькулятор.

В результате должны получиться следующие методы:

 

[TestMethod]

public void CalMethod()

{

this.UIMap.CalcOpen();

this.UIMap.Calculation();

this.UIMap.CompareResult();

this.UIMap.ClearTextBox();

this.UIMap.CalcClose();

}

 

Теперь измените методы CalMethod, Calculation и CompareResult следующим образом:

 

[TestMethod]

public void CalMethod()

{

int[] x = { -20, 0, 11 };

this.UIMap.CalcOpen();

for (int i = 0; i < x.Length; i++)

{

this.UIMap.Calculation(x[i]);

System.Threading.Thread.Sleep(2000);

this.UIMap.CompareResult(x[i]);

this.UIMap.ClearTextBox();

}

this.UIMap.CalcClose();

}

 

public void Calculation(int s)

{

#region Variable Declarations

WinText uIЗапущенныйжурналText = this.UIКалькуляторWindow.UIItemWindow.UIЗапущенныйжурналText;

WinText uIItem0Text = this.UIКалькуляторWindow.UIItem0Window.UIItem0Text;

WinButton uIУнарныйминусButton = this.UIКалькуляторWindow.UIItemWindow1.UIУнарныйминусButton;

WinButton uIВызовизпамятиButton = this.UIКалькуляторWindow.UIItemWindow2.UIВызовизпамятиButton;

WinButton uIДобавлениепамятиButton = this.UIКалькуляторWindow.UIItemWindow3.UIДобавлениепамятиButton;

#endregion

 

string xs = s.ToString();

string x = "";

bool flag = false;

 

Keyboard.SendKeys(uIItem0Text, "{NumPad2}", ModifierKeys.None);

if (xs[0] == '-')

{

flag = true;

xs = xs.Remove(0, 1);

}

foreach (char j in xs)

x += "{NumPad" + j + "}";

for (int i = 0; i < 3; i++)

{

Keyboard.SendKeys(uIItem0Text, "{Multiply}", ModifierKeys.None);

Keyboard.SendKeys(uIItem0Text, x, ModifierKeys.None);

if (flag == true)

Mouse.Click(uIУнарныйминусButton, new Point(5, 18));

}

Keyboard.SendKeys(uIItem0Text, "{Enter}", ModifierKeys.None);

Mouse.Click(uIДобавлениепамятиButton, new Point(11, 12));

 

Keyboard.SendKeys(uIItem0Text, "{NumPad3}", ModifierKeys.None);

Mouse.Click(uIУнарныйминусButton, new Point(5, 18));

for (int i = 0; i < 2; i++)

{

Keyboard.SendKeys(uIItem0Text, "{Multiply}", ModifierKeys.None);

Keyboard.SendKeys(uIItem0Text, x, ModifierKeys.None);

if (flag == true)

Mouse.Click(uIУнарныйминусButton, new Point(5, 18));

}

Keyboard.SendKeys(uIItem0Text, "{Enter}", ModifierKeys.None);

Mouse.Click(uIДобавлениепамятиButton, new Point(11, 12));

 

Keyboard.SendKeys(uIItem0Text, "{NumPad5}{Multiply}", ModifierKeys.None);

Keyboard.SendKeys(uIItem0Text, x, ModifierKeys.None);

if (flag == true)

Mouse.Click(uIУнарныйминусButton, new Point(5, 18));

Keyboard.SendKeys(uIItem0Text, "{Subtract}{NumPad1}{Enter}", ModifierKeys.None);

Mouse.Click(uIДобавлениепамятиButton, new Point(11, 12));

Mouse.Click(uIВызовизпамятиButton, new Point(12, 21));

}

 

public void CompareResult(int x)

{

#region Variable Declarations

WinText uIItem0Text = this.UIКалькуляторWindow.UIItem0Window.UIItem0Text;

#endregion

int f;

f = (int)(2 * Math.Pow((double)x,3) - 3 * Math.Pow((double)x,2) + 5 * x - 1);

Assert.AreEqual(f.ToString(), uIItem0Text.DisplayText, "Ошибка");

}

 

Лабораторная работа №2

 

РАЗРАБОТКА СКРИПТОВ ДЛЯ АВТОМАТИЗАЦИИ

ТЕСТИРОВАНИЯ ТЕКСТОВЫХ ФАЙЛОВ

 

Цель работы. Приобрести навыки тестирования текстовых файлов с использованием возможностей встроенного текстового редактора OC Windows “Блокнот” (NotePad), называемого в дальнейшем Редактор.

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

 

Варианты заданий

 

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

2. Разработать скрипт, реализующий ввод группы строк в окно Редактора из текстового файла и осуществляющий проверку того, что данные строки были введены по убыванию (возрастанию).

3. Разработать скрипт, реализующий ввод в окно Редактора заранее известного текста из файла. Подсчитать количество заглавных и строчных букв. Потом, заменить в данном тексте строчные буквы на заглавные буквы, а заглавные – на строчные. Затем, вновь подсчитать количество заглавных и строчных букв. Сравнить результаты данных вычислений с количеством строчных и заглавных букв в исходном тексте.

4. Разработать скрипт, реализующий ввод в окно Редактора текста из файла. Затем, используя команду «Найти» подсчитать количество вхождений в данный текст первого слова. После этого подсчитать количество вхождений указанного слова в данном файле, не используя возможности Редактора. Сравнить и выдать на экран результаты поиска первым и вторым способом.

5. В трех текстовых файлах содержатся данные о студентах. В строках первого файла содержатся номера по порядку и фамилии студентов. В аналогичных строках второго файла содержатся номера по порядку, год рождения студента и имя факультета, на котором он обучается. Третий файл содержит объединение первых двух файлов. Разработать скрипт, который должен проверить правильность содержимого данного файла с использованием возможностей Редактора.

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

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

 

Методические указания. Объект контроля – текстовый файл (расширение.txt) с указанными в задании свойствами создается и записывается на диск с помощью любого установленного на ПЭВМ пользователя текстового редактора, например, с помощью редактора “Блокнот”. При выполнении задания анализируемый файл открывается и считывается в окно Редактора с помощью команд его меню под управлением разработанного скрипта. Выделение текста в окне Редактора, копирование текста, поиск данных и некоторые другие операции с содержимым окна так же могут быть реализованы скриптом в автоматическом режиме с помощью команд меню данного Редактора.

 

Пример. В текстовом файле “File_txt.txt” содержится пять целых положительных трехзначных чисел. Проверить, используя возможности программы «Блокнот», что данные числа расположены в файле по возрастанию.

 

Создайте следующие сценарии:

I. OpenFile (сценарий записи)

Откройте файл “File_txt.txt”.

II. CompareFile (сценарий подтверждения)

Сравните фактическое значение текстового поля калькулятора с эталонным результатом.

III. CloseFile (сценарий записи)

Закройте блокнот.

 

В результате должны получиться следующие методы:

[TestMethod]

public void CodedUITestMethod1()

{

this.UIMap.OpenFile();

this.UIMap.CompareFile();

this.UIMap.CloseFile();

}

 

public void OpenFile()

{

// Launch '%SystemRoot%\System32\notepad.exe' with arguments 'C:\Users\Владелец\Desktop\File_txt.txt'

ApplicationUnderTest notepadApplication = ApplicationUnderTest. Launch(this.OpenFileParams.ExePath, this.OpenFileParams.AlternateExePath, "C:\\Users\\Владелец\\Desktop\\File_txt.txt");

}

public void CloseFile()

{

#region Variable Declarations

WinButton uIЗакрытьButton = this.UIFile_txtБлокнотWindow.UIFile_txtБлокнотTitleBar.UIЗакрытьButton;

#endregion

 

// Click 'Закрыть' button

Mouse.Click(uIЗакрытьButton, new Point(39, 13));

}

 

Изменим код метода CompareFile следующим образом:

 

public void CompareFile()

{

#region Variable Declarations

WinEdit uIItemEdit = this.UIFile_txtБлокнотWindow.UIItemWindow.UIItemEdit;

#endregion

//преобразование строки в массив чисел

string[] text = uIItemEdit.Text.Split(' ');

List<int> arr = new List<int>();

foreach (string s in text)

{

int i = int.Parse(s);

arr.Add(i);

}

//сортировка массива

List<int> sortedArr = new List<int>(arr);

sortedArr.Sort();

//проверка равенства исходного и отсортированного массивов

if (arr == sortedArr)

Assert.AreEqual(this.AssertMethod1ExpectedValues.UIItemEditText, "true", "Данные числа расположены в файле НЕ по возрастанию");

}

 

Лабораторная работа №3

 

РАЗРАБОТКА СКРИПТОВ ДЛЯ АВТОМАТИЗАЦИИ

ТЕСТИРОВАНИЯ ПРОГРАММ С ИНТЕРФЕЙСОМ В СТИЛЕ WINDOWS

 

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

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

Варианты заданий

 

1. Вычислить интеграл любой из представленных в списке (ListBox) функций методом Симпсона. Нижний и верхний предел интегрирования, начальное количество точек разбиения и точность интегрирования задаются в специальных текстовых полях (TextBox). Для запуска процесса вычисления интеграла, а также для завершения работы программы используются командные кнопки (CommandButton). Результаты интегрирования выдаются на форму с использованием меток (Label).

2. Сформировать массив вещественных чисел случайным образом. Вывести элементы массива в виде списка (ListBox). Массив отсортировать и поместить в другой список (ListBox). Порядок сортировки (по убыванию или возрастанию элементов) задается с помощью элемента управления “флажок” (CheckBox). Для пуска процедуры заполнения массива, а также для завершения работы программы используются командные кнопки (CommandButton).

3. Имена заранее записанных на диск текстовых файлов представлены в списке (ListBox). Необходимо выбрать один из этих файлов и считать его в текстовое поле формы. В зависимости от выбранной радиокнопки определить количество слов в данном тексте, количество гласных или согласных букв. Результаты вычислений поместить в отдельное текстовое поле. Для чтения файла, поиска данных и завершения работы программы используются командные кнопки (CommandButton).

4. Имена заранее записанных на диск текстовых файлов представлены в списке (ListBox). Необходимо выбрать один из этих файлов и считать его в текстовое поле формы. В отдельном текстовом поле задать искомое слово (не более десяти символов). Реализовать бинарный поиск в данном тексте. При этом метод сортировки текста для данного поиска, а также порядок сортировки задаются с помощью радиокнопок. Результаты поиска поместить в специальное окно диалога. Для чтения файла, поиска данных и завершения работы программы используются командные кнопки (CommandButton).

5. С клавиатуры в текстовые поля формы вводятся записи, состоящие из двух полей: имени и фамилии. По команде эти данные записываются в файл с произвольным доступом. При необходимости, на экран может быть выведен либо список (ListBox) всех имеющихся в файле записей, либо список (ListBox) одного из полей. Команды записи в файл и завершения программы выполняются после нажатия командных кнопок (CommandButton). Выбор списков для вывода на экран осуществляется с помощью радиокнопок.

6. Сформировать массив целых положительных чисел. Вывести элементы массива в виде списка (ListBox). Пометить с помощью элемента управления “флажок” (CheckBox) некоторые из них. Отсортировать помеченные числа и поместить в другой список (ListBox). Порядок сортировки (по убыванию или возрастанию элементов) задается с помощью радиокнопок. Для запуска процедуры формирования массива, для запуска процедуры сортировки, а также для завершения работы программы используются командные кнопки (CommandButton).

7. Разработать программу вычисления значений полинома с использованием контекстного меню. Данное меню должно быть двух уровней. Меню верхнего уровня состоит из двух команд: “Выполнить” и “Выход”. Меню нижнего уровня, доступное после выбора команды “Выполнить” содержит следующие команды: “Вычислить”, “Очистить окно вывода”, “Параметры”. После выбора последнего пункта меню доступными для редактирования становятся текстовые поля: “Верхняя граница”, “Нижняя граница”, “Шаг”. Вычисленные значения функции выводятся на экран в виде списка (ListBox).

 

Данные для выполнения заданий 1 и 7 берутся соответственно из таблиц 3 и 1[Н13]. Точность вычисления значения интеграла выбирается студентом самостоятельно.

 

Методические указания. При разработке программы необходимо использовать формы и стандартные элементы управления (кнопки, списки, метки, окна и т.д.). Некоторые из этих элементов указаны в варианте задания и являются обязательными. Дополнительные элементы управления (если это необходимо для решения задачи) выбираются студентом самостоятельно.

 

Пример. Имеется исполнительный модуль (test.exe) программы. Данная программа предназначена для автоматического преобразования строчных букв в заглавные и наоборот. После вызова данной программы на экране появляется панель, представленная на Рис. 1. Текст программы приведен в Приложении 3.

 

Рис.1. Тестовая программа.

 

В рабочее окно панели вводится строка символов (не более 10). Если установить флажок (Check Box) “прописные / строчные” и нажать кнопку “Пуск”, то все заглавные буквы данной строки преобразуются в строчные. Остальные символы останутся без изменения. Если флажок не устанавливать и нажать “Пуск”, то все строчные буквы преобразуются в заглавные. Остальные символы, как и в предыдущем случае, не изменяются.

Завершить выполнение программы можно либо нажатием кнопки “Выход”, либо нажатием кнопки “Закрыть” в правом верхнем углу панели.

В приведенном ниже скрипте в автоматическом режиме реализованы две проверки: преобразование строки "AB&C!D*" в строку "ab&c!d*" и обратное преобразование строки "ab&c!d*" в строку "AB&C!D*".

 

Создайте следующие сценарии:

I. OpenApp (сценарий записи)

Откройте тестовую программу.

II. Test1 (сценарий записи)

1. Введите “AB&C!D*”.

2. Установите флажок “прописные / строчные”.

3. Нажмите кнопку “ Пуск ”.

III. CompareTest1 (сценарий подтверждения)

Сравните фактическое значение текстового поля с эталонным результатом (ab&c!d*).

IV. Test2 (сценарий записи)

1. Снимите флажок “прописные / строчные”.

2. Нажмите кнопку “ Пуск ”.

V. CompareTest2 (сценарий подтверждения)

Сравните фактическое значение текстового поля с эталонным результатом (AB&C!D*).

VI. CloseApp (сценарий записи)

Нажмите кнопку “ Закрыть ”.

 

В результате должны получиться следующие методы:

 

[TestMethod]

public void CodedUITestMethod1()

{

this.UIMap.OpenApp();

this.UIMap.Test1();

this.UIMap.CompareTest1();

this.UIMap.Test2();

this.UIMap.CompareTest2();

this.UIMap.CloseApp();

}

 

public void OpenApp()

{

// Launch '%VisualStudioDir%\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe'

ApplicationUnderTest windowsFormsApplication1Application = ApplicationUnderTest.Launch(this.OpenAppParams.ExePath, this.OpenAppParams.AlternateExePath);

}

 

public void Test1()

{

#region Variable Declarations

WinEdit uITextBox1Edit = this.UIТестоваяпрограммаWindow.UITextBox1Window.UITextBox1Edit;

WinButton uIПускButton = this.UIТестоваяпрограммаWindow.UIПускWindow.UIПускButton;

WinCheckBox uIПрописныестрочныеCheckBox = this.UIТестоваяпрограммаWindow.UIПрописныестрочныеWindow.UIПрописныестрочныеCheckBox;

#endregion

 

// Type 'AB&C!D*' in 'textBox1' text box

uITextBox1Edit.Text = this.Test1Params.UITextBox1EditText1;

 

// Select 'прописные/строчные' check box

uIПрописныестрочныеCheckBox.Checked = this.Test1Params.UIПрописныестрочныеCheckBoxChecked2;

 

// Click 'Пуск' button

Mouse.Click(uIПускButton, new Point(49, 13));

}

 

public void CompareTest1()

{

#region Variable Declarations

WinEdit uITextBox1Edit = this.UIТестоваяпрограммаWindow.UITextBox1Window.UITextBox1Edit;

#endregion

 

// Verify that the 'Text' property of 'textBox1' text box equals 'ab&c!d*'

Assert.AreEqual(this.CompareTest1ExpectedValues.UITextBox1EditText, uITextBox1Edit.Text);

}

 

 

public void Test2()

{

#region Variable Declarations

WinEdit uITextBox1Edit = this.UIТестоваяпрограммаWindow.UITextBox1Window.UITextBox1Edit;

WinCheckBox uIПрописныестрочныеCheckBox = this.UIТестоваяпрограммаWindow.UIПрописныестрочныеWindow.UIПрописныестрочныеCheckBox;

WinButton uIПускButton = this.UIТестоваяпрограммаWindow.UIПускWindow.UIПускButton;

#endregion

 

// Clear 'прописные/строчные' check box

uIПрописныестрочныеCheckBox.Checked = this.Test2Params.UIПрописныестрочныеCheckBoxChecked;

// Click 'Пуск' button

Mouse.Click(uIПускButton, new Point(44, 15));

}

 

public void CompareTest2()

{

#region Variable Declarations

WinEdit uITextBox1Edit = this.UIТестоваяпрограммаWindow.UITextBox1Window.UITextBox1Edit;

#endregion

 

// Verify that the 'Text' property of 'textBox1' text box equals 'AB&C!D*'

Assert.AreEqual(this.CompareTest2ExpectedValues.UITextBox1EditText, uITextBox1Edit.Text);

}

 

public void CloseApp()

{

#region Variable Declarations

WinButton uIВыходButton = this.UIТестоваяпрограммаWindow.UIВыходWindow.UIВыходButton;

#endregion

 

// Click 'Выход' button

Mouse.Click(uIВыходButton, new Point(52, 16));

}


Date: 2016-05-14; view: 406; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию