Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Навыки тестирования с помощью моделей МВТ

Автор:   •  Май 4, 2023  •  Контрольная работа  •  878 Слов (4 Страниц)  •  147 Просмотры

Страница 1 из 4

СОДЕРЖАНИЕ

Цель работы        3

Ход работы        3

Выводы        9

 

 

         


Цель работы

Получить первоначальные навыки тестирования с помощью моделей МВТ.

Постановка задачи

  1. Выбрать поведенческую систему (это может быть приложение с логикой в виде состояний, взаимодействующие системы, диалоговые системы с несколькими режимами работы). Нельзя использовать стек и дек (примеры из Интернета).
  2. Создать модель в виде упрощенной реализации на Python.
  3. Сгенерировать тесты по модели.
  4. Добавить функционал и проверить, что тесты проходят корректно.

 

Ход работы

Модель – это упрощённое представление чего-либо (а нашем случае – работы программы). В качестве поведенческой системы был выбран цифровой автомат. Необходимо реализовать конечный автомат Мили в виде класса. Начальным состоянием автомата является A. Методы возвращают числовые значения. Если вызываемый метод не реализован для некоторого состояния, необходимо вызвать исключение KeyError.

Модель реализуемого автомата в виде графа (рисунок 1).

[pic 1] 

Рисунок 1 – Модель реализуемого автомата в виде графа У представленного цифрового автомата есть 3 метода: etch(), debug(), model(). Реализация класса цифрового автомата представлена на листинге 1.

Листинг 1. Реализация конечного автомата


class main():

    now_letter = 'A'

 

    blame_dir = {

        'A': '0B',

        'B': '3E',         'E': '6F',

    }  

    view_dir = {

        'A': '1C',

        'B': '2C',

        'C': '4D',

        'D': '5E',

        'E': '7C'

    }  

    drag_dir = {

        'F': '8A',

    }      def blame(self):

        tmp_blame = self.now_letter         if self.blame_dir.get(tmp_blame, "KeyError")[1] != "e":

            self.now_letter = self.blame_dir.get(tmp_blame, "KeyError")[1]             return int((self.blame_dir.get(tmp_blame)[0]))         else:

            return KeyError     def view(self):

        tmp_view = self.now_letter         if self.view_dir.get(tmp_view, "KeyError")[1] != "e":

            self.now_letter = self.view_dir.get(tmp_view, "KeyError")[1]             return int((self.view_dir.get(tmp_view)[0]))         else:

            return KeyError     def drag(self):

        tmp_drag = self.now_letter         if self.drag_dir.get(tmp_drag, "KeyError")[1] != "e":

            self.now_letter = self.drag_dir.get(tmp_drag, "KeyError")[1]             return int((self.drag_dir.get(tmp_drag)[0]))         else:

            return KeyError

 

...

Скачать:   txt (5.1 Kb)   pdf (133.7 Kb)   docx (49.9 Kb)  
Продолжить читать еще 3 страниц(ы) »
Доступно только на Essays.club