Лабораторная работа №3 «Исследование способов модульного тестирования программного обеспечения» - файл

скачать (71.2 kb.)


Лабораторная работа №3

«Исследование способов модульного тестирования программного обеспечения»

Цель работы

Исследовать основные подходы к модульному тестированию программного обеспечения. Приобрести практические навыки составления модульных тестов для объектно-ориентированных программ.


Вариант работы
Спецификация тестового случая

Тест определяет правильность работы метода MatrixTask() – определение максимальное из чисел, встречающихся в заданной матрице один раз.

В тесте подаются следующие значения в формате (int размерность, int[,] элемент):

1 последовательность: {1}

2 последовательность: {{16, 16, 2}, {2, 3, 3} {3, 12, 12}}

3 последовательность: {{93, -15, 69, -31}, {93, 3, 82, 80}, {68, 95, 69, 44}, {-1, 3, 31, 31}}, где все последовательности, кроме 2 находят максимум.


Тексты программных модулей
Текст класса Matrix:

public class Matrix

{

public int n { get; private set; }



public int m { get; private set; }

public int[,] matrix { get; set; }

public Matrix(int n, int m)

{

this.n = n;



this.m = m;

int[,] matrix = new int[n, m];

}
public override string ToString()

{

StringBuilder builder = new StringBuilder();



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

{

for(int j = 0; j < m; ++j)



{

builder.Append($"{matrix[i, j]} ");

}

builder.Append("\r\n");



}

return builder.ToString();

}
public string MatrixTask(int n, int m)

{

Dictionary numbs = new Dictionary();


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

{

for (int j = 0; j < m; j++)



{

if (numbs.ContainsKey(matrix[i, j]))

{

numbs[matrix[i, j]]++;



}

else


{

numbs.Add(matrix[i, j], 1);

}

}

}


int counter = 0;
int max = 0;
foreach (var item in numbs)

{
if (max < item.Key && item.Value == 1)

{

max = item.Key;



Console.WriteLine("Число сравниваемое: " + item.Key);

Console.WriteLine("Максимум сейчас: " + max + "\n");

}

else


counter++;

}
if (counter == numbs.Count)

{

return "Не найдено";



}

else


{

return Convert.ToString(max);

}

}
}
Текст класса тестировщика


namespace TPO_LAB_3

{

class Program



{
abstract class Tester

{

protected void LogMessage(string s)



{

Log.Add(s);

}

}
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();



}

}

class MaxMatrixTester : Tester



{

Matrix Element;


public MaxMatrixTester()

{

Start();



}

private void Start()

{

MaxTest();



}
private void MaxTest()

{

Dictionary matrix = new Dictionary()



{

[1] = new int[,] { { 1 } },

[3] = new int[,] { {16, 16, 2 }, {2, 3, 3 }, {3, 12, 12 } },

[4] = new int[,]

{

{93, -15, 69, -31 },



{93, 3, 82, 80},

{68, 95, 69, 44 },

{-1, 3, 31, 31 } }

};
foreach(KeyValuePair elem in matrix)

{
Element = new Matrix(elem.Key, elem.Key);

Element.matrix = elem.Value;

LogMessage($"Максимальное число в матрице: {Element.MatrixTask(elem.Key, elem.Key)} :\r\n{Element}");

}

}


}
static void Main(string[] args)

{

MaxMatrixTester matrix = new MaxMatrixTester();



Log.Close();

}

}



}
Выполнение класса тестировщика:

Рисунок 1 - Файл .log


Выводы

Были исследованы основные подходы к модульному тестированию программного обеспечения. Были приобретены практические навыки составления модульных тестов для объектно-ориентированных программ.


Контрольные вопросы

Лабораторная работа №3
Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации