Файл: Управление качеством промышленного программного обеспечения.docx
Добавлен: 10.11.2023
Просмотров: 38
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Ниже приведены скрипты предусловия и скрипты тестовых случаев.
Рисунок 1.1.3 – Тестовый случай для хранимой процедуры «СоздатьНовогоКлиента»
В данном случае в качестве условия теста задано «число строк».
На рисунке 1.1.4 приведено предусловия для проверки выполнения ХП «Разместить новый заказ».
Рисунок 1.1.4 – Предусловие для хранимой процедуры «Разместить новый заказ»
На рисунке 1.1.5 приведен тестовый случай для проверки выполнения ХП «Разместить новый заказ».
Рисунок 1.1.5 – Тестовый случай для хранимой процедуры «Разместить новый заказ»
На рисунке 1.1.6 приведено предусловие для проверки выполнения ХП «Создание заказа».
Рисунок 1.1.6 – Предусловие для хранимой процедуры «Создание заказа»
На рисунке 1.1.7 приведен тестовый случай для проверки выполнения ХП «Создание заказа».
Рисунок 1.1.7 – Тестовый случай для хранимой процедуры «Создание заказа»
На рисунке 1.1.8 приведено предусловие для проверки выполнения ХП «Показать детали заказа».
Рисунок 1.1.8 – Предусловие для хранимой процедуры «Показать детали заказа»
На рисунке 1.1.9 приведен тест для проверки выполнения ХП «Показать детали заказа». В качестве условия теста были использованы «Контрольная сумма» и «Ожидаемая сумма».
Рисунок 1.1.9 – Тестовый случай для хранимой процедуры «Показать детали заказа»
Для определения контрольной суммы настроена конфигурация контрольной суммы с помощью скрипта, представленного на рисунке 1.1.10.
Рисунок 1.1.10 – Настройка конфигурации контрольной суммы
Для проверки ХП «Отмена заказа» необходимо обновить процедуру.
На рисунке 1.1.11. представлен скрипт первоначальной ХП «Отмена заказа».
Рисунок 1.1.11 – Первоначальный вид ХП «Отмена заказа»
После обновления ХП внесены изменения в рамках предусловия, которое представлено на рисунке 1.1.12.
Рисунок 1.1.12 – Обновление ХП «Отмена заказа»
На рисунке 1.1.13 приведено предусловие для проверки выполнения ХП «Отмена заказа».
Рисунок 1.1.13 – Предусловие для проверки ХП «Отмена заказа»
На рисунке 1.1.14 приведен тестовый случай для проверки ХП «Отмена заказа».
Рисунок 1.1.14 – Тестовый случай для проверки выполнения ХП «Отмена заказа»
На рисунке 1.1.15 представлены результаты выполнения всех тестовых случаев, которые подробно описаны в таблице 1.1.2.
Рисунок 1.1.15 – Результаты выполнения тестовых скриптов SQL
1.2. Тестирование приложения типа Windows Form «Калькулятор»
Для проведения модульного тестирования взят проект «Калькулятор», созданный в Visual Studio 2013 на языке программирования C#. Проект разбит на две части Интерфейс и Логику. Логика приложения – это классы и функции, реализованные в приложении, которые хранятся в одноименной DLL-библиотеке.
Содержимое DLL-библиотеки «Логика»:
public class Var
{
public static double result = 0;
public static char op = Convert.ToChar(0);
}
public class Constants
{
public static string Pi = Convert.ToString(Math.PI);
}
public class Operations
{
public static string neg(string answ)
{
return Convert.ToString(-Convert.ToDouble(answ));
}
public static string sin(string answ)
{
return Convert.ToString(Math.Round(Math.Sin(Convert.ToDouble(answ) * Math.PI / 180), 10));
}
public static string cos(string answ)
{
return Convert.ToString(Math.Round(Math.Cos(Convert.ToDouble(answ) * Math.PI / 180), 10));
}
public static string tg(string answ)
{
if (!double.IsInfinity(Math.Round(Math.Sin(Convert.ToDouble(answ) * Math.PI / 180), 10) / Math.Round(Math.Cos(Convert.ToDouble(answ) * Math.PI / 180), 10)))
{
return Convert.ToString(Math.Round(Math.Sin(Convert.ToDouble(answ) * Math.PI / 180), 10) / Math.Round(Math.Cos(Convert.ToDouble(answ) * Math.PI / 180), 10));
}
else
{
return null;
}
}
public static string ctg (string answ)
{
if (!double.IsInfinity(1 / (Math.Round(Math.Sin(Convert.ToDouble(answ) * Math.PI / 180), 10) / Math.Round(Math.Cos(Convert.ToDouble(answ) * Math.PI / 180), 10))))
{
return Convert.ToString(1 / (Math.Round(Math.Sin(Convert.ToDouble(answ) * Math.PI / 180), 10) / Math.Round(Math.Cos(Convert.ToDouble(answ) * Math.PI / 180), 10)));
}
else
{
return null;
}
}
public static string sqr(string answ)
{
return Convert.ToString(Math.Pow((Convert.ToDouble(answ)),2));
}
public static string sqrt(string answ)
{
return Convert.ToString(Math.Sqrt(Convert.ToDouble(answ)));
}
public static string ret(string answ)
{
if ((Convert.ToDouble(answ)!=0))
{
return Convert.ToString(1/(Convert.ToDouble(answ)));
}
else
{
return null;
}
}
}
Таблица 1.2.1 – Описания классов и функций
Название класса/функции | Назначение |
1. Var | Класс необходимый для вывода и подсчета результатов выполняемых вычислений в калькуляторе. |
2. Constants | Класс, в котором хранятся используемые в приложении константы. |
3. Operations | Класс, содержащий функции, реализованные в приложении. |
4. neg | Функция изменяющая знак на противоположный. |
5. sin | Функция возвращающая синус введенного угла (в градусах). |
6. cos | Функция возвращающая косинус введенного угла (в градусах). |
7. tg | Функция возвращающая тангенс введенного угла (в градусах). |
8. ctg | Функция возвращающая котангенс введенного угла (в градусах). |
9. sqr | Функция возвращающая квадрат введенного числа. |
10. sqrt | Функция возвращающая корень введенного неотрицательного числа. |
11. ret | Функция возводящая введенное число в степень -1. |
Для проведения модульного тестирования создано 15 тестов, проверяющих правильную работу функций:
[TestMethod]
public void Sum_2Plus5_7Returned()
{
Var.op='+';
Var.result = Convert.ToDouble(2);
Var.result += Convert.ToDouble(5);
Assert.AreEqual(7, Var.result);
}
[TestMethod]
public void Difference_5Minus3_2Returned()
{
Var.op = '-';
Var.result = Convert.ToDouble(5);
Var.result -= Convert.ToDouble(3);
Assert.AreEqual(2, Var.result);
}
[TestMethod]
public void Multiplication_3Multiply6_18Returned()
{
Var.op = '*';
Var.result = Convert.ToDouble(3);
Var.result *= Convert.ToDouble(6);
Assert.AreEqual(18, Var.result);
}
[TestMethod]
public void Division_9Split3_3Returned()
{
Var.op = '/';
Var.result = Convert.ToDouble(9);
Var.result /= Convert.ToDouble(3);
Assert.AreEqual(3, Var.result);
}
[TestMethod]
public void Negative_5Neg_n5Returned()
{
string str = Operations.neg("5");
Assert.AreEqual("-5", str);
}
[TestMethod]
public void Sin_90Sin_1Returned()
{
string str = Operations.sin("90");
Assert.AreEqual("1", str);
}
[TestMethod]
public void Cos_0Cos_1Returned()
{
string str = Operations.cos("0");
Assert.AreEqual("1", str);
}
[TestMethod]
public void Tg_0Tg_0Returned()
{
string str = Operations.tg("0");
Assert.AreEqual("0", str);
}
[TestMethod]
public void Tg_90Tg_NullReturned()
{
string str = Operations.tg("90");
Assert.AreEqual(null, str);
}
[TestMethod]
public void Ctg_45Ctg_1Returned()
{
string str = Operations.ctg("45");
Assert.AreEqual("1", str);
}
[TestMethod]
public void Ctg_0Ctg_NullReturned()
{
string str = Operations.ctg("0");
Assert.AreEqual(null, str);
}
[TestMethod]
public void Square_4Sqr_16Returned()
{
string str = Operations.sqr("4");
Assert.AreEqual("16", str);
}
[TestMethod]
public void SquareRoot_4Sqrt_2Returned()
{
string str = Operations.sqrt("4");
Assert.AreEqual("2", str);
}
[TestMethod]
public void SquareRoot_n4Sqrt_NanReturned()
{
string str = Operations.sqrt("-4");
Assert.AreEqual("NaN", str);
}
[TestMethod]
public void Reverse_4Ret_025Returned()
{
string str = Operations.ret("4");
Assert.AreEqual("0,25", str);
}
Результаты тестирования сведены в таблицу 1.2.2.
Таблица 1.2.2 – Описание модульных тестов
Предусловие | Тестовый сценарий (шаги) | Ожидаемый результат | Фактический результат | Послесловие |
Инициализация переменных значениями 2 и 5. | Выполнить метод сложения двух чисел. | Результат равен 7. | Тест пройден. | |
Инициализация переменных значениями 5 и 3. | Выполнить метод нахождения разности двух чисел. | Результат равен 2. | Тест пройден. | |
Инициализация переменных значениями 3 и 6. | Выполнить метод умножения двух чисел. | Результат равен 18. | Тест пройден. | |
Инициализация переменных значениями 9 на 3. | Выполнить метод деления чисел. | Результат равен 3. | Тест пройден. | |
Инициализация переменной значением 5. | Изменить знак числа на отрицательный. | Результат равен -5. | Тест пройден. | |
Инициализация переменной значением 90 градусов. | Выполнить метод расчёта синуса угла. | Результат равен 1. | Тест пройден. | |
Инициализация переменной значением 0 градусов. | Выполнить метод расчёта косинуса угла. | Результат равен 0. | Тест пройден. | |
Инициализация переменной значением 0 градусов. | Выполнить метод расчёта тангенса 0 градусов. | Результат равен 0. | Тест пройден. | |
Инициализация переменной значением 90 градусов. | Выполнить метод расчёта тангенса 90 градусов. Проверить, что он не существует. | Результат равен null. | Тест не пройден. | |
Инициализация переменной значением 45 градусов. | Выполнить метод расчёта котангенса 45 градусов. | Результат равен 1. | Тест пройден. | |
Инициализация переменной значением 0 градусов. | Выполнить метод расчёта котангенса 0 градусов. Проверить, что он не существует. | Результат равен null. | Тест пройден. | |
Инициализация переменной значением 4. | Выполнить метода извлечения квадрата числа. | Результат равен 16. | Тест пройден. | |
Инициализация переменной значением 4. | Выполнить метод нахождения квадратного корня из числа. | Результат равен 2. | Тест пройден. | |
Инициализация переменной значением -4. | Выполнить метод извлечения квадратного корня из числа -4. Проверить, что он не существует. | Результат равен NaN. | Тест пройден. | |
Инициализация переменной значением 4 и -1. | Выполнить метод возведения числа в степень. | Результат равен 0,25. | Тест пройден. | |
Найдена ошибка при тестировании метода расчета тангенса от 90 градусов.
Описание ошибки приведено в таблице 1.2.3.
Таблица 1.2.3 – Описание ошибки при тестировании метода расчета тангенса угла
Короткое описание | Ошибка расчета метода тангенса угла |
Проект | Калькулятор |
Номер версии | 1.0 |
Серьезность | Незначительная |
Приоритет | Средний |
Автор | - |
Назначен на | Щукова Кристина |
Окружение | |
Конфигурация (ОС, браузер и т.д.) | OC Windows 8 x64 |
Шаги воспроизведения | 1. Инициализация переменной угла значением 90 градусов. 2. Выполнение метода расчета тангенса угла. |
Фактический результат | 1,63317787283838E+16 |
Ожидаемый результат | Null |
Дополнения | |
Фрагмент ошибки | Фрагмент ошибки при выполнении метода расчета тангенса угла: |
Предлагаемое решение устранения ошибки | Необходимо внести следующие изменения в метод: |
1.3. Тестирование интерфейса приложения типа Windows Form «Калькулятор»
Выполнено тестирование интерфейса проекта «Калькулятор». Интерфейс представлен на рисунке 1.3.1.
Рисунок 1.3.1 – Интерфейс приложения «Калькулятор»
Для тестирования были созданы 5 методов, содержащие записанные шаги, и 5 методов проверки выполнения методов.
public void Plus()
{
#region Variable Declarations
WinButton uIItem1Button = this.UIКалькуляторWindow.UIItem1Window.UIItem1Button;