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