Файл: Управление качеством промышленного программного обеспечения.docx
Добавлен: 10.11.2023
Просмотров: 136
Скачиваний: 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 – Результаты выполнения тестовых скриптов SQL1.2. Тестирование приложения типа WindowsForm «Калькулятор» Для проведения модульного тестирования взят проект «Калькулятор», созданный в 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 – Описания классов и функций
Для проведения модульного тестирования создано 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 – Описание модульных тестов
Найдена ошибка при тестировании метода расчета тангенса от 90 градусов.Описание ошибки приведено в таблице 1.2.3.Таблица 1.2.3 – Описание ошибки при тестировании метода расчета тангенса угла
1.3. Тестирование интерфейса приложения типа WindowsForm «Калькулятор» Выполнено тестирование интерфейса проекта «Калькулятор». Интерфейс представлен на рисунке 1.3.1.Рисунок 1.3.1 – Интерфейс приложения «Калькулятор»Для тестирования были созданы 5 методов, содержащие записанные шаги, и 5 методов проверки выполнения методов. public void Plus(){#region Variable DeclarationsWinButton uIItem1Button = this.UIКалькуляторWindow.UIItem1Window.UIItem1Button;
Для проверки ХП «Отмена заказа» необходимо обновить процедуру.На рисунке 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 – Результаты выполнения тестовых скриптов SQL1.2. Тестирование приложения типа WindowsForm «Калькулятор» Для проведения модульного тестирования взят проект «Калькулятор», созданный в 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. |
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 |
| Дополнения | |
| Фрагмент ошибки | Фрагмент ошибки при выполнении метода расчета тангенса угла: |
| Предлагаемое решение устранения ошибки | Необходимо внести следующие изменения в метод: |