Скачиваний:
73
Добавлен:
09.05.2014
Размер:
169.98 Кб
Скачать

Санкт-Петербургский Государственный Университет

информационных технологий, механики и оптики

Отчет к лабораторной работе №3

Модульное (Unit) тестирование. Тестирование методом белого ящика.

Выполнили: студенты группы 5511

Шевченко Алексей

Тихонов Дмитрий

2008

Цель: Научиться производить тестирование программных систем методом «Белого Ящика» путём написания модульных тестов. Получить опыт работы с инструментом MS Visual Studio и NUnit.

Задание: Дан проект MS VisualStudio 2005 на языке C# (см. ниже). Необходимо изучить класс UserManagement и тесты на метод GetUsersByLogin класса UserManagement (находятся в классе UserManagementTest). Написать модульные тесты с использованием NUnit (по образу и подобию уже написанных) на метод AddUser класса UserManagement. При написании тестов необходимо основываться на описании класса UserManagement и его метода AddUser. Исправить метод AddUser, так чтобы все написанные тесты проходили и метод работал согласно своему описанию.

  1. Инициализация данных :

public void UsersInitialization()

{

user1.Login = "Login1";

user1.Password = "Password1";

user1.Confirmation = "Password1";

user2.Login = "Login2";

user2.Password = "Password2";

user2.Confirmation = "Password2";

user3.Login = "Login3";

user3.Password = "qwe";

user3.Confirmation = "qwe";

user4.Login = "qwertyuiopasdfghjklzxcvbnm";

user4.Password = "mnbvcxzlkjhgfdsapoiuytrewq";

user4.Confirmation = "mnbvcxzlkjhgfdsapoiuytrewq";

userManagement = new UserManagement();

userManagement.users.Add(user1);

userManagement.users.Add(user2);

userManagement.users.Add(user3);

}

  1. Тесты к методу AddUser класса UserManagement:

[Test]

public void AddUserByLogin1()

{

Console.WriteLine("Выполняется тест AddUserByLogin1 ... \n");

ArrayList users = userManagement.AddUser(user1.Login, user1.Password, user1.Confirmation);

Assert.Greater(users.Count, 0);

Assert.Greater(user1.Login.Length, 0);

Assert.Greater(user1.Password.Length, 0);

if (user1.Login.Length > user1.maxLength)

Assert.AreEqual(((User)users[0]).Login, user1.Login.Substring(0, user1.maxLength));

else

Assert.AreEqual(((User)users[0]).Login, user1.Login);

if (user1.Password.Length > user1.maxLength)

Assert.AreEqual(((User)users[0]).Password, user1.Confirmation.Substring(0, user1.maxLength));

else

Assert.AreEqual(((User)users[0]).Password, user1.Confirmation);

Console.WriteLine("Тест AddUserByLogin1 пройден !\n");

users.Clear();

}

[Test]

public void AddUserByLogin2()

{

Console.WriteLine("Выполняется тест AddUserByLogin2 ... \n");

ArrayList users = userManagement.AddUser(user2.Login, user2.Password, user2.Confirmation);

Assert.Greater(users.Count, 0);

Assert.Greater(user2.Login.Length, 0);

Assert.Greater(user2.Password.Length, 0);

if (user2.Login.Length > user2.maxLength)

Assert.AreEqual(((User)users[0]).Login, user2.Login.Substring(0, user2.maxLength));

else

Assert.AreEqual(((User)users[0]).Login, user2.Login);

if (user2.Password.Length > user2.maxLength)

Assert.AreEqual(((User)users[0]).Password, user2.Confirmation.Substring(0, user2.maxLength));

else

Assert.AreEqual(((User)users[0]).Password, user2.Confirmation);

Console.WriteLine("Тест AddUserByLogin2 пройден !\n");

users.Clear();

}

[Test]

public void AddUserByLogin3()

{

Console.WriteLine("Выполняется тест AddUserByLogin3 ... \n");

ArrayList users = userManagement.AddUser(user3.Login, user3.Password, user3.Confirmation);

Assert.Greater(users.Count, 0);

Assert.Greater(user3.Login.Length, 0);

Assert.Greater(user3.Password.Length, 0);

if (user3.Login.Length > user3.maxLength)

Assert.AreEqual(((User)users[0]).Login, user3.Login.Substring(0, user3.maxLength));

else

Assert.AreEqual(((User)users[0]).Login, user3.Login);

if (user3.Password.Length > user3.maxLength)

Assert.AreEqual(((User)users[0]).Password, user3.Confirmation.Substring(0, user3.maxLength));

else

Assert.AreEqual(((User)users[0]).Password, user3.Confirmation);

Console.WriteLine("Тест AddUserByLogin3 пройден !\n");

users.Clear();

}

[Test]

public void AddUserByLogin4()

{

Console.WriteLine("Выполняется тест AddUserByLogin4 ... \n");

ArrayList users = userManagement.AddUser(user4.Login, user4.Password, user4.Confirmation);

Assert.Greater(users.Count, 0);

Assert.Greater(user4.Login.Length, 0);

Assert.Greater(user4.Password.Length, 0);

if (user4.Login.Length > user4.maxLength)

Assert.AreEqual(((User)users[0]).Login, user4.Login.Substring(0, user4.maxLength));

else

Assert.AreEqual(((User)users[0]).Login, user4.Login);

if (user4.Password.Length > user4.maxLength)

Assert.AreEqual(((User)users[0]).Password, user4.Confirmation.Substring(0, user4.maxLength));

else

Assert.AreEqual(((User)users[0]).Password, user4.Confirmation);

Console.WriteLine("Тест AddUserByLogin4 пройден !\n");

users.Clear();

}

  1. Исправленный вариант метода AddUser класса UserManagement

public ArrayList AddUser(string login, string password, string passwordConfirmation)

{

ArrayList result = new ArrayList();

User user = new User();

user.Login = login;

user.Password = password;

if (user.Login.Length > user.maxLength)

{

user.Login = user.Login.Substring(0, user.maxLength);

Console.WriteLine("Логин " + login + " обрезан : " + user.Login + "\n");

}

else if (user.Login.Length == 0) {

Console.WriteLine("Логин пуст\n");

return result;

}

if (user.Password.Length > user.maxLength)

{

user.Password = user.Password.Substring(0, user.maxLength);

passwordConfirmation = passwordConfirmation.Substring(0, user.maxLength);

Console.WriteLine("Пароль " + password + " обрезан : " + user.Password + "\n");

}

else if (user.Password.Length == 0)

{

Console.WriteLine("Пароль пуст\n");

return result;

}

if ( user.Password == passwordConfirmation )

{

Console.WriteLine("Пароль подтверждён ... \nПользователь добавлен ...");

result.Add(user);

}

else

{

Console.WriteLine("Не совпадают пароль и подтверждение пароля !\n");

Console.WriteLine("Пароль : " + user.Password + "\nПодтверждение : " + passwordConfirmation + "\n");

}

return result;

}

}

  1. Лог процесса тестирования и скриншот из NUnit:

Вывод:

Научились производить тестирование программных систем методом «Белого Ящика» путём написания модульных тестов. Получили опыт работы с инструментом MS Visual Studio и NUnit. Успешно выполнили все поставленные задачи и получили практические навыки. В очередной раз вспомнили нотацию C#, которую, вроде как должны знать на зубок.

6

Соседние файлы в папке все лабы итип