소스 검색

Загрузить файлы ''

22IS01 1 년 전
부모
커밋
33cc3636b1
1개의 변경된 파일181개의 추가작업 그리고 0개의 파일을 삭제
  1. 181 0
      Алексеев Е.Г. Отчет о УП 10.docx

+ 181 - 0
Алексеев Е.Г. Отчет о УП 10.docx

@@ -0,0 +1,181 @@
+Разработка тестовых сценариев программного средства, заполнение шаблона тестирования
+
+   Цель: научиться разрабатывать тестовые сценарии программного средства, заполнять шаблоны тестирования.
+   Задание:
+ Используйте прилагаемый шаблон тестирования, чтобы интерпретировать результаты работы по практической работе №2. Убедитесь, что вы заполнили все соответствующие части шаблона тестирования для каждого теста. Ваша документация должна явно показывать, какую часть приложения, вы тестируете.
+ Допустимо, если ваши тесты показывают проблемы. Вам не нужно, исправить любые проблемы, которые находятся с помощью тестов.
+ Создайте и заполните несколько шаблонов тестирования, которые проверяют любые из форм в вашем проекте.
+ Загрузите свои шаблоны тестирования на свой локальный репозиторий.
+   Код тестируемой программы:
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace WindowsFormsAppUP02._02Alekseev4
+{
+    /// <summary>
+    /// Класс,в котором с помощью кнопки происходит вычисление результата. Также, меняется цвет формы и подставляются значения TextBox.
+    /// </summary>
+    public partial class FormMain : Form
+    {
+       /// <summary>
+       /// Инициализация компонентов формы
+       /// </summary>
+        public FormMain()
+        {
+            InitializeComponent();
+        }
+
+        /// <summary>
+        /// Метод кнопки, в котором происходит вычисление ответа в цикле с постусловием
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void btnResultValueClick(object sender, EventArgs e)
+        {
+            double X0 = Convert.ToDouble(tbValueX0.Text);
+            double Xk = Convert.ToDouble(tbValueXk.Text);
+            double Dx = Convert.ToDouble(tbValueDx.Text);
+            double a = Convert.ToDouble(tbValueA.Text);
+            double b = Convert.ToDouble(tbValueB.Text);
+            double c = Convert.ToDouble(tbValueC.Text);
+            tbResultValue.Text= "Работу выполнил Алексеев Е.Г." + Environment.NewLine;
+            double X = X0;
+            while (X <= (Xk + Dx / 2))
+            {
+                double y = ((10e-2 * b * c) / X) + Math.Cos(Math.Sqrt(Math.Pow(a,3) * X));
+                tbResultValue.Text += "x = " + Convert.ToString(X) + " ; y = " + Convert.ToString(y) + Environment.NewLine;
+                X = X + Dx;
+
+            }
+        }
+
+        /// <summary>
+        /// Метод загрузки формы, в котором меняется цвет формы, подставляются значения в TextBox
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void FormMainLoad(object sender, EventArgs e)
+        {
+            BackColor = Color.AntiqueWhite;
+            tbValueX0.Text = "-1,5";
+            tbValueXk.Text = "3,5";
+            tbValueDx.Text = "0,5";
+            tbValueA.Text = "-1,25";
+            tbValueB.Text = "-1,5";
+            tbValueC.Text = "0,75";
+        }
+
+        
+    }
+}
+   Код модульного теста:
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using WindowsFormsAppUP02._02Alekseev2;
+
+namespace UnitTestProjectUP02._02Alekseev9
+{
+    /// <summary>
+    /// Тест-класс, в котором тестируется программа из Практической работы №2
+    /// </summary>
+    [TestClass]
+    public class UnitTestUP02_02_9
+    {
+        /// <summary>
+        /// Метод, содержащий модульный unit-тест
+        /// </summary>
+        [TestMethod]
+        
+        ///Метод, в котором описана логика теста
+        public void TestMethodX14_26_Y_Minus1_22_Z_0_035_t_0_564449Returned()
+        {
+            double X = 14.26;
+            double Y = -1.22;
+            double Z = 0.035;
+            double expected = 0.564449;
+
+            FormMain g = new FormMain();
+            double actual = g.btnResultValueClickTest(X, Y, Z);
+            Assert.AreEqual(expected, actual);
+
+        }
+    }
+}
+   Таблица 1  -  "Результаты тестирования".
+Наименование
+Описание
+Наименование проекта
+WindowsFormsAppUP02.02Alekseev2
+Номер версии
+1.0
+Имя тестера
+Егор
+Даты тестирования
+11.06.2024
+Test Case #
+TC_ WindowsFormsAppUP02.02Alekseev2
+Приоритет тестирования
+Высокий
+Название тестирования
+Проверка правильности расчета ответа примера
+Резюме испытания
+Программа должна рассчитать ответ по введенным значениям переменных
+
+
+
+   Продолжение таблицы 1.
+Шаги тестирования
+ Запустить программу;
+ Ввести значения для переменных;
+ Программа выведет ответ;
+Данные тестирования
+Будут использованы переменные: X, Y, Z. Для переменной X  -  14.26, для переменной Y  -  -1.22, для переменной Z  -  0.035.
+Ожидаемый результат
+После расчета программа поместит ответ в переменную t. В переменную t должно записаться число 0.564449.
+Фактический результат
+Система работает стабильно. После проведения теста можно провести еще один и убедиться в правильности работы программы
+Предпосылки
+Проверить, правильные ли значения введены в модуле теста в ожидаемом результате и в переменных.
+Постусловия
+Система должна функционировать нормально. Можно провести тест еще раз
+Статус
+Pass
+
+   Контрольные вопросы.
+   1 Программа, которая проверяет работу небольшой части кода, т.е. отдельного модуля.
+   2 Статическое тестирование, динамическое тестирование, ручное тестирование, автоматическое тестирование, тестирование белого ящика, тестирование черного ящика, тестирование серого ящика, интеграционное тестирование, системное тестирование, unit тестирование, альфа  -  тестирование.
+   3 Разработка через тестирование (англ. test-driven development, TDD)  --  техника разработки программного обеспечения, которая основывается на повторении очень коротких циклов разработки:
+ Сначала пишется тест, покрывающий желаемое изменение.
+ Затем пишется код, который позволит пройти тест.
+ Под конец проводится рефакторинг нового кода к соответствующим стандартам.
+   4 Валидация  --  проверка требований пользователей продукта, а верификация  --  проверка технических характеристик.
+   5 Процесс создания теста:
+ Первым делом нужно написать программу, для которой будет создан тест.
+ Далее с помощью добавления нового проекта нужно добавить сам Unit-тест.
+ В unit тесте прописать значения для переменных и ожидаемый результат.
+ Запустить тест.
+   6 Unit тесты имеют много плюсов, поэтому стоит их писать для своей программы, ведь unit тесты это:
+ Инструмент борьбы с регрессией в коде.
+ Инвестиция в качественную архитектуру.
+   7 1. Наименование. Название юнит-теста должно четко описывать его назначение. Мы должны понимать, что делает метод по его названию, не заглядывая в сам код. Это упрощает документирование и читабельность. Также, когда тесты падают, мы можем определить, какие сценарии выполняются некорректно.
+   2 AAA паттерн.
+   Код юнит-теста должен быть легко читаемым и понятным. Для этого, при разработке, мы используем паттерн AAA. Паттерн AAA очень важный и распространенный паттерн среди юнит-тестов. Он обеспечивает четкое разделение между настройкой тестовых объектов, действиями и результатами. Он разделяет методы юнит-тестов на три части. Arrange, Act и Assert.
+   3 Старайтесь не применять сложную логику.
+   Избегайте логических условий, таких как if, for, while, switch. Не следует создавать какие-либо данные в пределах метода тестирования. Ориентируйтесь только на результат.
+   4 Тестируйте только один компонент.
+   В одном юнит-тесте должен проверяться только один модуль. Это может быть, возвращаемое значение, изменение состояния системы или обращение к стороннему объекту. К примеру, если ваш юнит-тест содержит проверки более одного объекта, это может означать, что он тестирует сразу несколько вещей.
+   5 Unit-тесты должны быть быстрыми.
+   Очень важно, чтобы модульные тесты были быстрыми. Это ускоряет процесс разработки и дает возможность их часто запускать. Быстрое тестирование позволяет обнаруживать и исправлять ошибки на более ранних этапах.
+   8 ClassInitialize и TestInitialize.
+   9 TestContext используется для хранения информации о текущем юнит тесте. При тестировании веб сервисов хранит URL. При тестировании ASP.NET приложений - предоставляет доступ к ASP странице. При использовании Data Driven тесто предоставляет доступ к источнику данных.
+   10 Для сравнения ожидаемого результата с полученным используется метод AreEqual класса Assert.
+   11 DeploymentItem используется для определения директорий или файлов, которые нужно скопировать в директорию.
+   12 Generic Test используется для приложений, которые могут запускаться из командной строки, которые возвращают значение, определяющее выполнилось приложение или нет.
+   13 Data Driven Test  -  тест, который позволяет использовать для запуска данные. Тест запускается по одному разу на каждую запись из источника данных.