Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MMTPIS_Prakticheskie_zanyatia.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
471 Кб
Скачать
☆

2.2.3. Пример выполнения типового задания

В качестве примера рассмотрим тестирование класса TCommand следующего вида:

public class TCommand {

public int NameCommand;

public string GetFullName();

}

Спецификация тестового случая должна включать следующие пункты:

1) Название тестируемого класса: TCommand.

2) Название тестового случая: TCommandTest1.

3) Описание тестового случая – словесное описание логики теста с указанием тестовых данных: Тест проверяет правильность работы метода GetFullName() – получения полного названия команды на основе кода команды. В тесте подаются следующие значения кодов команд (входные значения): -1, 1, 2, 4, 6, 20, где -1 – запрещенное значение.

На основе спецификации создадим тестовый драйвер – класс TCommandTester, наследующий функциональность абстрактного класса Tester.

public class Log

{

//Создание лог файла

static private StreamWriter log=new StreamWriter("log.log");

static public void Add(string msg) //Добавление сообщения в лог файл

{

log.WriteLine(msg);

}

static public void Close() //Закрыть лог файл

{

log.Close();

}

}

abstract class Tester

{

protected void LogMessage(string s)

//Добавление сообщения в лог-файл

{

Log.Add(s);

}

}

class TCommandTester:Tester // Тестовый драйвер

{

TCommand OUT;

public TCommandTester()

{

OUT = new TCommand();

Run();

}

private void Run()

{

TCommandTest1();

}

private void TCommandTest1()

{

int[] commands = {-1, 1, 2, 4, 6, 20};

for(int i=0;i<=5;i++)

{

OUT.NameCommand = commands[i];

LogMessage(commands[i].ToString() + " : " + OUT.GetFullName());

}

}

static void Main()

{

TCommandTester CommandTester = new TCommandTester();

Log.Close();

}

}

Класс TCommandTester содержит метод TCommandTest1(), в котором реализована вся функциональность теста. В данном случае для покрытия спецификации достаточно перебрать следующие значения кодов команд: -1, 1, 2, 4, 6, 20, где -1 - запрещенное значение, и получить соответствующие им полное название команды с помощью метода GetFullName(). Пары соответствующих значений заносятся в log-файл для последующей проверки на соответствие спецификации.

Таким образом, для тестирования любого метода класса необходимо:

- Определить, какая часть функциональности метода должна быть протестирована, то есть при каких условиях он должен вызываться. Под условиями здесь понимаются параметры вызова методов, значения полей и свойств объектов, наличие и содержимое используемых файлов и т. д.

- Создать тестовое окружение, обеспечивающее требуемые условия.

- Запустить тестовое окружение на выполнение.

- Обеспечить сохранение результатов в файл для их последующей проверки.

- После завершения выполнения сравнить полученные результаты со спецификацией.

2.3. Интеграционное тестирование программного обеспечения

2.3.1. Основные положения

Основное назначение тестирования взаимодействий состоит в том, чтобы убедиться, что происходит правильный обмен сообщениями между объектами, классы которых уже прошли тестирование в автономном режиме (на модульном уровне тестирования).

Тестирование взаимодействия, или интеграционное тестирование, представляет собой тестирование собранных вместе, взаимодействующих модулей (объектов). В интеграционном тестировании можно объединять разное количество объектов – от двух до всех объектов тестируемой системы. При интеграционном тестировании используется подход «белого ящика». Целью интеграционного тестирования является только проверка правильности взаимодействия объектов, а не проверка правильности функционирования системы в целом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]