Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая_Шарыкин_Тестирование.docx
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
740 Кб
Скачать
☆

Часть 3. Тестирование методом «белого ящика». Модульное тестирование Модуль DictionaryParser.Parse() Алгоритм и код

Программный код модуля приведен в листинге 1.

Листинг 1

1

public void Parse()

 

2

{

 

3

using (FileStream stream = new FileStream(_filePath, FileMode.Open, FileAccess.Read))

1

4

{

5

    StreamReader reader = new StreamReader(stream);

2

6

    while (!reader.EndOfStream)

3

7

    {

8

        string line = reader.ReadLine().ToLower();

4

9

        int openBracket;

10

        string initialForm = "";

11

        try

 

12

        {

13

            openBracket = line.IndexOf('(');

5

14

            if (openBracket == -1)

6

15

                throw new DictionaryException(_dictionaryType,

7

16

                                                DictionaryExceptionReason. НевозможноПроанализироватьВариантыФорм);

17

            initialForm = string.Concat(line .Where((c, i) => i < openBracket)).Trim().ToUpper();

8

18

        }

 

19

        catch

9

20

        {

21

            throw new DictionaryException(_dictionaryType,

22

                                            DictionaryExceptionReason. НеОбнаруженаНачальнаяФорма);

23

        }

24

        Dictionary[initialForm] = new List<string>() {initialForm};

10

25

        Dictionary[initialForm].AddRange(line.Substring(openBracket + 1)

26

                                                .Split(new string[] {",", ")"},

27

                                                    StringSplitOptions. RemoveEmptyEntries)

28

                                                .Select(s => s.Trim().ToUpper())

29

                                                .ToList());

30

    }

11

31

    reader.Close();

12

32

}

13

33

}

Блок-схема метода приведена на рисунке ниже (Рисунок 3).

Рисунок 3. Блок-схема модуля DictionaryParser.Parse

Приведенный алгоритм использует язык интегрированных запросов для облегчения чтения и преобразования данных. Все считанные данные хранятся в свойстве Dictionary класса.

Тестирование базового пути

        1. Построение потового графа

Потоковый граф рассматриваемого модуля с указанием регионов и выделенными предикаторными узлами приведен ниже (см. Рисунок 4).

Рисунок 4. Потоковый граф модуля DictionaryParser.Parse