Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx57 / Записка(5).docx
Скачиваний:
21
Добавлен:
01.08.2013
Размер:
33.79 Кб
Скачать

4.3.Техника модульного тестирования.

Для большинства популярных языков программирования высокого уровня существуют инструменты и библиотеки модульного тестирования. Для С++ одним из таких инструментов является Boost::Test. Boost — одна из самых известных (и сам больших) библиотек для C++, а Boost::Test – это Фреймворк для тестирования, входящий в неё и построенный на макросах.

4.4.Проведение юнит-тестирования

Рассмотрим класс, единственная задача которого – деление и умножение некоторого числа и сохранение результата:

class Calculate

{

public:

explicit Calculate(int value)

: Value_(value)

{

}

void Divide(int value)

{

if (value == 0)

{

throw std::invalid_argument("Деление на ноль!");

}

Value_ /= value;

}

void Multiply(int value)

{

Value_ *= value;

}

int Result() const

{

return Value_;

}

private:

int Value_;

};

Сделаем по тесту на каждый метод:

#include "calculator.h"

#include <boost/test/unit_test.hpp>

#define BOOST_TEST_MODULE testCalculate

BOOST_AUTO_TEST_CASE(testCalculate)

{

Calculator calculator(12);

BOOST_CHECK_EQUAL(calculate.Result(), 12);

}

BOOST_AUTO_TEST_CASE(testCalculateDivide)

{

Calculate calculate(12);

calculate.Divide(3);

BOOST_CHECK_EQUAL(calculate.Result(), 4);

calculate.Divide(2);

BOOST_CHECK_EQUAL(calculate.Result(), 2);

}

BOOST_AUTO_TEST_CASE(testCalculateMultiply)

{

Calculator calculate(12);

calculate.Multiply(2);

BOOST_CHECK_EQUAL(calculate.Result(), 24);

calculate.Multiply(3);

BOOST_CHECK_EQUAL(calculate.Result(), 72);

}

Мы рассмотрели проверку равенства двух сущностей BOOST_CHECK_EQUAL, но помимо этого Boost Test предоставляет еще ряд инструментов:

BOOST_CHECK(условие)

Простейшая проверка истинно условие или нет.

BOOST_CHECK_EQUAL(значение_1, значение_2)

Проверка на равенство двух значений.

BOOST_CHECK_CLOSE(значение_1, значение_2, точность)

Проверка на равенство чисел с плавающей точкой. Два значения считаются равными, если не отличаются на значение более указанного (в процентах).

BOOST_CHECK_BITWISE_EQUAL(значение_1,значение_2)

Отличная штука! Проверит два значения побитово и сообщит в каком месте биты отличаются.

BOOST_CHECK_EQUAL_COLLECTIONS(начало_1,конец_1,начало_2,конец_2)

Проверка равенства двух последовательностей (массивов или контейнеров), на вход получает пару начало-конец последовательности (указатели или итераторы).

BOOST_CHECK_THROW(инструкция, исключение)

Проверка, что при выполнении инструкции будет вызвано указанное исключение.

  1. Направления дальнейшего развития прототипа интеллектуальной справочной системы и пути промышленного изготовления спроектированной интеллектуальной системы

    1. Развитие бз исс

В качестве направления дальнейшего развития базы знаний рассматриваются:

  • расширение БЗ ИСС по числовым системам путем добавления новых статей по уже разработанным подразделам;

  • введение новых подразделов в БЗ;

  • интеграция БЗ ИСС по числовым системам с другими БЗ систем проекта OSTIS.

Перспективами разработки ИСС по выбранной технологии являются:

  • создание совместимых компонентов для создания предметно независимых интеллектуальных систем;

  • возможность осуществления интеграции «сверху» и «снизу»;

  • возможность последовательной и параллельной работы над компонентами разрабатываемой ИСС;

  • использование разработанной ИСС пользователями различной степени компьютерной подготовки, а также возможность участия в проекте экспертов из различных ПрО.

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

  • использование технологий инженерии знаний, взаимодействие с экспертами данной предметной области;

  • привлечение профессиональных разработчиков на всех этапах создания ИСС;

  • наличие мощных инструментальных средств разработки;

  • инвестирование в разработку и в технологию разработки ИСС.

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