Файл: Управление качеством промышленного программного обеспечения.docx
Добавлен: 10.11.2023
Просмотров: 37
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
WinButton uIItemButton = this.UIКалькуляторWindow.UIItemWindow.UIItemButton;
WinButton uIItem3Button = this.UIКалькуляторWindow.UIItem3Window.UIItem3Button;
WinButton uIItemButton1 = this.UIКалькуляторWindow.UIItemWindow1.UIItemButton;
#endregion
// Запуск "%USERPROFILE%\Desktop\Калькулятор.exe"
ApplicationUnderTest uIКалькуляторWindow = ApplicationUnderTest.Launch(this.PlusParams.UIКалькуляторWindowExePath, this.PlusParams.UIКалькуляторWindowAlternateExePath);
// Щелкните "1" кнопка
Mouse.Click(uIItem1Button, new Point(25, 31));
// Щелкните "+" кнопка
Mouse.Click(uIItemButton, new Point(35, 28));
// Щелкните "3" кнопка
Mouse.Click(uIItem3Button, new Point(17, 23));
// Щелкните "=" кнопка
Mouse.Click(uIItemButton1, new Point(142, 17));
}
public void AssertMethodPlus()
{
#region Variable Declarations
WinEdit uIInputBoxEdit = this.UIКалькуляторWindow.UIInputBoxWindow.UIInputBoxEdit;
#endregion
// Убедитесь, что свойство Text "inputBox" надпись равняется "4"
Assert.AreEqual(this.AssertMethodPlusExpectedValues.UIInputBoxEditText, uIInputBoxEdit.Text, "Not equal!");
}
public void SqrtNaN()
{
#region Variable Declarations
WinButton uIClearButton = this.UIКалькуляторWindow.UIClearWindow.UIClearButton;
WinButton uIItem4Button = this.UIКалькуляторWindow.UIItem4Window.UIItem4Button;
WinButton uIItemButton = this.UIКалькуляторWindow.UIItemWindow2.UIItemButton;
WinButton uISqrtxButton = this.UIКалькуляторWindow.UISqrtxWindow.UISqrtxButton;
#endregion
// Запуск "%USERPROFILE%\Desktop\Калькулятор.exe"
ApplicationUnderTest uIКалькуляторWindow = ApplicationUnderTest.Launch(this.PlusParams.UIКалькуляторWindowExePath, this.PlusParams.UIКалькуляторWindowAlternateExePath);
// Щелкните "4" кнопка
Mouse.Click(uIItem4Button, new Point(18, 25));
// Щелкните "+/-" кнопка
Mouse.Click(uIItemButton, new Point(25, 18));
// Щелкните "Sqrt(x)" кнопка
Mouse.Click(uISqrtxButton, new Point(42, 25));
}
public void AssertMethodSqrtNaN()
{
#region Variable Declarations
WinEdit uIInputBoxEdit = this.UIКалькуляторWindow.UIInputBoxWindow.UIInputBoxEdit;
#endregion
// Убедитесь, что свойство Text "inputBox" надпись равняется "NaN"
Assert.AreEqual(this.AssertMethodSqrtNaNExpectedValues.UIInputBoxEditText, uIInputBoxEdit.Text, "Error!");
}
public void Tg90()
{
#region Variable Declarations
WinButton uIClearButton = this.UIКалькуляторWindow.UIClearWindow.UIClearButton;
WinButton uIItem9Button = this.UIКалькуляторWindow.UIItem9Window.UIItem9Button;
WinButton uIItem0Button = this.UIКалькуляторWindow.UIItem0Window.UIItem0Button;
WinButton uITgxButton = this.UIКалькуляторWindow.UITgxWindow.UITgxButton;
#endregion
// Запуск "%USERPROFILE%\Desktop\Калькулятор.exe"
ApplicationUnderTest uIКалькуляторWindow = ApplicationUnderTest.Launch(this.PlusParams.UIКалькуляторWindowExePath, this.PlusParams.UIКалькуляторWindowAlternateExePath);
// Щелкните "9" кнопка
Mouse.Click(uIItem9Button, new Point(21, 9));
// Щелкните "0" кнопка
Mouse.Click(uIItem0Button, new Point(29, 18));
// Щелкните "tg(x)" кнопка
Mouse.Click(uITgxButton, new Point(24, 26));
}
public void AssertMethodTg90()
{
#region Variable Declarations
WinText uIНедопустимоезначениеText = this.UIНедопустимоезначениеWindow.UIНедопустимоезначениеText;
#endregion
// Убедитесь, что свойство DisplayText "Недопустимое значение аргумента!" надпись равняется "Недопустимое значение аргумента!" Assert.AreEqual(this.AssertMethodTg90ExpectedValues.UIНедопустимоезначениеTextDisplayText, uIНедопустимоезначениеText.DisplayText, "Error!");
}
public void Ctg0()
{
#region Variable Declarations
WinButton uIОКButton = this.UIОКWindow.UIОКButton;
WinButton uIClearButton = this.UIКалькуляторWindow.UIClearWindow.UIClearButton;
WinButton uIItem0Button = this.UIКалькуляторWindow.UIItem0Window.UIItem0Button;
WinButton uICtgxButton = this.UIКалькуляторWindow.UICtgxWindow.UICtgxButton;
#endregion
// Запуск "%USERPROFILE%\Desktop\Калькулятор.exe"
ApplicationUnderTest uIКалькуляторWindow = ApplicationUnderTest.Launch(this.PlusParams.UIКалькуляторWindowExePath, this.PlusParams.UIКалькуляторWindowAlternateExePath);
// Щелкните "0" кнопка
Mouse.Click(uIItem0Button, new Point(18, 24));
// Щелкните "ctg(x)" кнопка
Mouse.Click(uICtgxButton, new Point(50, 23));
}
public void AssertMethodCtg0()
{
#region Variable Declarations
WinText uIНедопустимоезначениеText = this.UIНедопустимоезначениеWindow.UIНедопустимоезначениеText;
#endregion
// Убедитесь, что свойство DisplayText "Недопустимое значение аргумента!" надпись равняется "Недопустимое значение аргумента!" Assert.AreEqual(this.AssertMethodCtg0ExpectedValues.UIНедопустимоезначениеTextDisplayText, uIНедопустимоезначениеText.DisplayText, "Error!");
}
public void Div0()
{
#region Variable Declarations
WinButton uIОКButton = this.UIОКWindow.UIОКButton;
WinButton uIClearButton = this.UIКалькуляторWindow.UIClearWindow.UIClearButton;
WinButton uIItem1Button = this.UIКалькуляторWindow.UIItem1Window.UIItem1Button;
WinButton uIItemButton = this.UIКалькуляторWindow.UIItemWindow3.UIItemButton;
WinButton uIItem0Button = this.UIКалькуляторWindow.UIItem0Window.UIItem0Button;
WinButton uIItemButton1 = this.UIКалькуляторWindow.UIItemWindow1.UIItemButton;
#endregion
// Запуск "%USERPROFILE%\Desktop\Калькулятор.exe"
ApplicationUnderTest uIКалькуляторWindow = ApplicationUnderTest.Launch(this.PlusParams.UIКалькуляторWindowExePath, this.PlusParams.UIКалькуляторWindowAlternateExePath);
// Щелкните "1" кнопка
Mouse.Click(uIItem1Button, new Point(18, 29));
// Щелкните "/" кнопка
Mouse.Click(uIItemButton, new Point(81, 22));
// Щелкните "0" кнопка
Mouse.Click(uIItem0Button, new Point(18, 27));
// Щелкните "=" кнопка
Mouse.Click(uIItemButton1, new Point(114, 23));
}
public void AssertMethodDiv0()
{
#region Variable Declarations
WinText uIДелениенанольневозмоText = this.UIДелениенанольневозмоWindow.UIДелениенанольневозмоText;
#endregion
// Убедитесь, что свойство DisplayText "Деление на ноль невозможно!" надпись равняется "Деление на ноль невозможно!" Assert.AreEqual(this.AssertMethodDiv0ExpectedValues.UIДелениенанольневозмоTextDisplayText, uIДелениенанольневозмоText.DisplayText, "Error!");
}
Описание методов тестирования интерфейса приведено в таблице 1.3.1.
Таблица 1.3.1 – Описания методов
Название методов | Назначение |
1. Plus | Метод содержащий шаги для выполнения сложения двух чисел 1 и 3. |
2. AssertMethodPlus | Метод проверяющий равен ли результат сложения 4. |
3. SqrtNaN | Метод содержащий шаги для взятия квадратного корня из отрицательного числа -4. |
4. AssertMethodSqrtNaN | Метод проверяющий был ли результат равен NaN. |
5. Tg90 | Метод содержащий шаги для расчета тангенса 90 градусов (не существует). |
6. AssertMethodTg90 | Метод проверяющий была ли выдана ошибка о недопустимых аргументах. |
7. Ctg0 | Метод содержащий шаги для расчета котангенса 0 градусов (не существует). |
8. AssertMethodCtg0 | Метод проверяющий была ли выдана ошибка о недопустимых аргументах. |
9. Div0 | Метод содержащий шаги для выполнения деления числа 1 на 0 (не существует). |
10. AssertMethodDiv0 | Метод проверяющий была ли выдана ошибка о делении на 0. |
Для тестирования были созданы 5 закодированных теста пользовательского интерфейса.
[TestMethod]
public void CodedUITestMethodPlus()
{
this.UIMap.Plus();
this.UIMap.AssertMethodPlus();
}
[TestMethod]
public void CodedUITestMethodSqrtNaN()
{
this.UIMap.SqrtNaN();
this.UIMap.AssertMethodSqrtNaN();
}
[TestMethod]
public void CodedUITestMethodTg90()
{
this.UIMap.Tg90();
this.UIMap.AssertMethodTg90();
}
[TestMethod]
public void CodedUITestMethodCtg0()
{
this.UIMap.Ctg0();
this.UIMap.AssertMethodCtg0();
}
[TestMethod]
public void CodedUITestMethodDiv0()
{
this.UIMap.Div0();
this.UIMap.AssertMethodDiv0();
}
Результаты тестирования сведены в таблицу 1.3.2.
Таблица 1.3.2 – Описание закодированных тестов
Предусловие | Тестовый сценарий (шаги) | Ожидаемый результат | Фактический результат | Послесловие |
Инициализация переменных значениями 1 и 3. | Выполнить метод сложения двух чисел. | Результат равен 4. | Тест пройден. | |
Инициализация переменной значением -4. | Выполнить метод извлечение квадратного корня из -4. | Результат равен NaN. | Тест пройден. | |
Инициализация переменной значением 90 градусов. | Выполнить метод расчёта тангенса угла. | Ошибка о недопустимых аргументах. | Тест пройден. | |
Инициализация переменной значением 0 градусов. | Выполнить метод расчёта котангенса угла. | Ошибка о недопустимых аргументах. | Тест пройден. | |
Инициализация переменных значениями 0 и 1. | Выполнить метод деления для проверки деление числа 1 на 0. | Ошибка о делении на 0. | Тест пройден. | |
ВЫВОДЫ
Проведено модульное тестирование 2 проектов: «База данных интернет-магазина продаж» и «Калькулятор». Для проекта «Калькулятор» протестирован интерфейс пользователя посредством автоматического создания закодированных тестов пользовательского интерфейса и DLL-библиотека методов калькулятора. Для проектов «База данных интернет-магазина продаж» и «Калькулятор» созданы ручные модульные тесты и скрипты предусловия для проверки выполнения тестовых случаев.
В проекте «База данных интернет-магазина продаж» созданы четыре ручные тестовые случаи для проверки выполнения хранимых процедур: «Показать детали заказа», «Разместить новый заказ», «Создание заказа», «Создать нового клиента».
Также для хранимых процедур – «Показать детали заказа», «Разместить новый заказ», «Создание заказа» – созданы ручные скрипты предусловия, которые необходимы для задания начальных условий выполнения тестовых случаев.
В результате тестирования хранимой процедуры «Создать нового клиента» проверено, что выполняется создание нового клиента в таблицу «Клиент». Для этого был использован оператор «Число строк», который возвращает одну запись, что указывает на то, что процедура успешно создает новых клиентов.
В результате тестирования хранимой процедуры «Разместить новый заказ» проверено, что выполняется размещение нового заказа в таблицу «Заказы» для добавленного клиента. Создан скрипт предусловия, который создает нового клиента. Также создан модульный тест, проверяющий, что выполняется размещение заказа на сумму 100 руб. для созданного клиента, при этом сумма продаж составляет 0 руб. (так как заказ не выполнен, а только размещен пользователем в интернет-магазине). Для этого использован оператор «Скалярное выражение», в свойствах которого ожидаемое значение составляет 100. В результате выполнения теста фактическое значение совпало с ожидаемым, что указывает на то, что заказ успешно размещен для указанного клиента.
В результате тестирования хранимой процедуры «Создание заказа» проверено, что создается заказ для добавленного клиента с общей годовой суммой заказов и продаж = 100 руб. (это означает, что заказ выполнен, и интернет-магазин осуществил продажу товара клиенту на сумму 100 руб.). Создан скрипт предусловия, добавляющий нового клиента и удаляющий все раннее связанные с ним заказы. Также создан модульный тест, проверяющий, что для добавленного клиента годовая сумма заказа и продаж составляет 100 руб. Для этого использован оператор «Скалярное выражение», в свойствах которого ожидаемое значение составляет 100. В результате выполнения теста фактическое значение не совпала с ожидаемым, так как допущена ошибка в формуле вычисления суммы годового количество продаж. Предложено решение для устранения данной ошибки.
В результате тестирования хранимой процедуры «Показать все детали заказа» проверено, что процедура правильно возвращает все данные заказов путем оценки правильности возвращаемых номеров столбцов атрибутов, и что результирующие данные имеют правильное значение контрольной суммы. Создан скрипт предусловия, добавляющий клиента и размещающий для него заказы на сумму 100, 50 и 5 руб. Для проверки правильности возвращения ХП номеров столбцов и контрольной суммы использованы операторы «Контрольная сумма» и «Ожидаемая схема БД». В результате выполнения модульного теста ожидаемое число столбцов и значение контрольной суммы совпало с фактическими значениями.
В результате тестирования хранимой процедуры «Отмена заказа» проверено, что тестовый случай завершится с ошибкой в случае попытки отмены заказа со статусом «Выполнен», так как нельзя отменить заказ, который уже выполнен. Для этого создан скрипт предусловия, добавляющий нового клиента со статусом заказа «Выполнен». В результате выполнения модульного теста при попытке отменить выполненный заказ произошла ошибка, которая указывает, на то что хранимая процедура работает правильно.
В результате тестирования калькулятора проверена корректность выполнения следующих методов: сложение двух чисел, нахождение разности двух чисел, умножение чисел, метод деления чисел, изменения знака числа, деление на ноль, расчёт косинуса, синуса, тангенса и котангенса угла, извлечения числа из квадратного корня, возведения числа в квадрат. В модульных тестах созданы предусловия инициализации начальными значениями переменных для проверки правильности выполнения методов.
Для тестирования пользовательского интерфейса калькулятора созданы отдельные закодированные тесты. Среда Visual Studio позволяет автоматизировать этот процесс за счет автоматического генерирования последовательности выполняемых действий в виде закодированных тестов. Протестированы методы валидации данных для проверки запрета ввода недопустимых значений (деление на ноль, значение тангенса и котангенса – 0 и 90 градусов, попытка извлечения квадратного корня из отрицательного числа).