Тестирование
- Место тестирования в жизненном цикле программного продукта
- Уровни (unit / integration / system )
- Тестирование только новых функций или старых тоже (регрессионное тестирование)
- Ручное, автоматизированное, автоматическое
- green test trap: Тестирование может доказать наличие дефектов, но не их отсутствие
- red test trap: Не всякие проваленные тесты означают дефекты. Могут означать пробел в требованиях, в том числе нефункциональных
Полезные термины: ошибка программиста при написании программы может привести к дефекту (багу) в программе, который в свою очередь может проявиться (или не проявиться) в виде программного сбоя
- Стоимость исправления дефекта возрастает пропорционально его «возрасту»
- Непрерывная интеграция
TDD
- сначала пишется тест и заглушка
код падает (иначе бесполезен)
- под тест пишется код
- код не падает
- код подчищается и не падает
Python
- Модульное тестирование
- doctest
- unittest
- py.test
- Показатель покрытия кода тестами (coverage)
Д/З
TODO