Модульное тестирование при модификации программного обеспечения.
- Ошибки при разработке ПО.
- Модульное тестирование (n-unit тестирование).
- Модульное тестирование при модификации ПО.
- Библиотека XUnitTest.
- Pro и contra модульного тестирования
- Социальные аспекты модульного тестирования.
Ошибки при разработке ПО.
- Неизбежность увеличения ошибок при разработке ПО.
-Увеличение объема программного кода ПО ( аналогия со строительством –десять лет назад создавались программы с несколько тысячами строк кода –5-этажные дома –
сейчас с десятками тысяч строка -16-этажные дома,а
будут и “40- этажные программы”) – наверно так же как и в строительстве требуются новые технологии?
-Ограниченность человеческой памяти.
(Джордж Миллер. Магическое число семь плюс-минус два. 1956 г.)
- Математическая модель ошибок. Применение понятия энтропии(мера беспорядка, хаоса из теории информации) к учету количества ошибок. Ошибок нет– энтропия равна нулю, большое количество ошибок –большая энтропия.
Проблема роста стоимости коррекции ошибок и внесения изменения в ПО со временем.
Модульное тестирование
- Как бороться с ошибками в ПО?
Подсказка “Не живите с разбитыми окнами” – из книги:
Эндрю Хант, Дэвид Томас. Программист-прагматик. 1999 г.
1. Устранить ошибку как можно скорее после ее появления.
- Как находить быстрее появившуюся ошибку?
Кент Бек. Эрих Гамма. Инфицированные тестами. Программисты любят писать тесты.
1998 г.
2. Для каждой нетривиальной процедуры(метода класса) для каждого случая ее использования создавать тест .
3. Тесты создаются одновременно или ранее написания процедуры или внесения в нее изменений.
4. Тесты должны быть автоматическими.
5. Запускать все тесты необходимо сразу после каждого нового изменения в программе.
Структура тестов программы. Случаи использования (СИ).
Схема разработки ПО при модульном тестировании.
Тесты
выполнились
Внесение изменения в
ПО ( коррекция или создание случая использования)
Создать или изменить
тест для
случая использования
нет
Выполнить тесты программы
да
Новое
изменение
Модульное тестирование при модификации ПО
Модификация ПО.
- Большая часть ПО уже была реализована в более ранних проектах.
- В новом проекте требуется доработка и рефакторинг ( улучшение существующего кода) ранее созданного ПО.
Изменение модульного тестирования при модификации ПО
- При модификации
c помощью существующего ПО тесты записываются в файлы в формате XML.
- Записанные файлы используются при тестирование нового ПО.
- Пользователь имеет возможность создавать тесты для новых случаев использования на основе записанных тестов файлах.
Библиотека модульного тестирования XUnitTest
Разработана на основе библиотек UnitTest++ и SimpleXml
Основные функции:
- Запись входных(выходных) данных (переменных и массивов) случаев использования процедур в файлы тестов.
- Тесты для каждого класса записываются в свою папку. Тесты для каждой процедуры класса записываются в свою папку в папке класса. Тесты для каждого случая использования процедуры записываются в отдельный файл в папке процедуры (дерево тестов).
- Чтение входных данных случаев использования процедур из файлов тестов.
- Чтение выходных данных случаев использования процедур из файлов тестов и их сравнение с текущими результатами работы процедур полученным на основе считанных входных данных.
Pro и contra модульного тестирования.
Pro модульного тестирования
( по книге Кент Бек. Экстремальное программирование. 2001 г.
):
- Повышение надежности и качества ПО. ( тестирование случаев использования которые редко проверяются при интегральном –стендовом тестировании)
- Сокращение времени разработки ПО. Энтропия ПО теперь не возрастает экспоненциально , на внесение изменений в конце разработки требуется не намного больше времени чем в начале.
Contra модульного тестирования:
- Увеличение объема работ ( для модульного тестирования при модификации ПО требуется для каждой тестируемой процедуры создать только дополнительные процедуры записи и проверки)
Социальный аспект применения модульного тестирования.
Увеличение качества ПО
Начальная квалификация
сотрудника
2