View
863
Download
3
Embed Size (px)
DESCRIPTION
При автоматизации тестирования один из самых главных параметров - покрытие кода. Насколько хорошо тестируется приложение в автоматическом режиме и можно ли доверять результатам тестирования? Как можно увеличить покрытие кода, не увеличивая при этом время выполнения автоматических скриптов? Какие проблемы при этом возникают и как их можно решить? Что такое model-based тестирование и как его можно применить в условиях ограниченного времени на тестирование? На эти вопросы я попытаюсь ответить с примерами из реального проекта, объясню с какими проблемами мы столкнулись и как их решали.
Citation preview
Оптимальное покрытие автотестами:
генерация случайных данныхГеннадий Алпаев
Ciklum
Покрытие приложения автотестами
Насколько полным является покрытие кода автоматическими скриптами?
2
• покрытие спецификаций• покрытие ручных тестов• покрытие кода
Покрытие кода
Критерии охвата:
3
• охват строк (каждая строка выполняется как минимум один раз)
• охват ветвлений (if…then…else)
• охват условийif(A>B or B>C)
Тестирование данных
• Тестирование граничных и средних значений
4
• Тестирование «опасных» значений (A=B/C)
Model-based testing
Проблемы:
5
данные условие
Путь 1
Путь 2
результат
• время выполнения• ресурсозатратно
• генерировать пути• генерировать данные• делать обход всех путей с разными данными
Решение проблемы
Continuous Integration + Random Path/Data
6
данные условие
Путь 1
Путь 2
результат
Недостатки подхода• Отслеживание пути в случае возникновения ошибки (решение: каждый раз при осуществлении выбора оставлять «следы»)
7
• Сложность написания и отладки кода
• Сложность воспроизведения ситуации в автоматическом режиме (решение: ручной прогон + автоматизация конкретного сценария