Министерство образования и науки Хабаровского края Краевое государственное бюджетное профессиональное образовательное учреждение «Комсомольский-на-Амуре колледж технологий и сервиса» Кафедра математики, информатики и программирования Специальность 09.02.07 «Информационные системы и программирование» ОТЧЕТ по дисциплине МДК 01.02 Поддержка и тестирование программный модулей Модульное тестирование. Пароль Выполнили студенты группы 541 Князев В.А. Преподаватель Плетнева Е.Г. 2022 г Цель: изучить возможность создания автоматических тестов, для модульного тестирования. Задачи: Создать проект программы, который будет проверять сложность пароля. Создать модульный тест для тестирования программы проверки пароля. Ход работы В ходе выполнения работы, был создан проект программы, который содержит код для проверки сложности пароля. Код этой программы представлен в листинге 1. Листинг 1 using System; using System.Collections.Generic; using System.Linq; namespace PasswordChecker { public class Password { public static Dictionary<string, bool> Validate(string password) { Dictionary<string, bool> complexity = new Dictionary<string, bool>() { { "completely_correct", false }, { "contains_chars_8_to_20", false }, { "contains_number", false }, { "contains_symbol", false }, { "contains_upper_char", false }, { "contains_lower_char", false } }; // completely correct if (password.Length > 7 && password.Length < 21 && password.Any(Char.IsUpper) && password.Any(Char.IsLower) && password.Any(Char.IsSymbol) && password.Any(Char.IsNumber)) { complexity["completely_correct"] = true; } // contains char 8 to 20 if (password.Length > 7 && password.Length < 21) { complexity["contains_chars_8_to_20"] = true; } // contains number if (password.Any(Char.IsNumber)) { complexity["contains_number"] = true; } // contains symbol if (password.Any(Char.IsSymbol)) { complexity["contains_symbol"] = true; } // contains upper char if (password.Any(Char.IsUpper)) { complexity["contains_upper_char"] = true; } // contains lower char if (password.Any(Char.IsLower)) { complexity["contains_lower_char"] = true; } return complexity; } } } Для программы проверки сложности пароля был создан проект модульного тестирования, который тестирует эту программу. Код модульного теста представлен в листинге 2. Листинг 2. using Microsoft.VisualStudio.TestTools.UnitTesting; using PasswordChecker; using System; namespace SolutionTest { [TestClass] public class PasswordTests { [TestMethod] public void ValidateCompletelyCorrect() { string checkingPassword = "ASDqwe123$"; bool actual = Password.Validate(checkingPassword)["completely_correct"]; Assert.IsTrue(actual); } [TestMethod] public void ValidateCharsLessThen8() { string checkingPassword = "Aq1$"; bool actual = Password.Validate(checkingPassword)["contains_chars_8_to_20"]; Assert.IsFalse(actual); } [TestMethod] public void ValidateCharsFrom8To20() { string checkingPassword = "ASqw12$$"; bool actual = Password.Validate(checkingPassword)["contains_chars_8_to_20"]; Assert.IsTrue(actual); } [TestMethod] public void ValidateCharsMoreThen20() { string checkingPassword = "ASDqwe123$ASDqwe123$ASDqwe123$"; bool actual = Password.Validate(checkingPassword)["contains_chars_8_to_20"]; Assert.IsFalse(actual); } [TestMethod] public void ValidateContainsNumber() { string checkingPassword = "ASDqwe1$"; bool actual = Password.Validate(checkingPassword)["contains_number"]; Assert.IsTrue(actual); } [TestMethod] public void ValidateNotContainsNumber() { string checkingPassword = "ASDqweASD$"; bool actual = Password.Validate(checkingPassword)["contains_number"]; Assert.IsFalse(actual); } [TestMethod] public void ValidateContainsSymbol() { string checkingPassword = "Aqwe123$"; bool actual = Password.Validate(checkingPassword)["contains_symbol"]; Assert.IsTrue(actual); } [TestMethod] public void ValidateNotContainsSymbol() { string checkingPassword = "ASDqwe123"; bool actual = Password.Validate(checkingPassword)["contains_symbol"]; Assert.IsFalse(actual); } [TestMethod] public void ValidateContainsUpperChar() { string checkingPassword = "Aqwe123$"; bool actual = Password.Validate(checkingPassword)["contains_upper_char"]; Assert.IsTrue(actual); } [TestMethod] public void ValidateNotContainsUpperChar() { string checkingPassword = "asdqwe123$"; bool actual = Password.Validate(checkingPassword)["contains_upper_char"]; Assert.IsFalse(actual); } [TestMethod] public void ValidateContainsLowerChar() { string checkingPassword = "ASDq123$"; bool actual = Password.Validate(checkingPassword)["contains_lower_char"]; Assert.IsTrue(actual); } [TestMethod] public void ValidateNotContainsLowerChar() { string checkingPassword = "ASDQWE123$"; bool actual = Password.Validate(checkingPassword)["contains_lower_char"]; Assert.IsFalse(actual); } } } Результат выполнения тестов представлен на рисунке 1. Рисунок 1 – Результат выполнения тестов Вывод: Данная работа направлена на закрепление создания модульных тестов. В этой работы был создан проект, который проверяет сложность пароля, а также проект модульного тестирования, который тестирует правильное выполнение программы проверки сложности пароля. Исходя из проделанной работы, навыки создания модульных тестов были закреплены.