Transcript
Page 1: Геннадий Алпаев - "Оптимальное покрытие автотестами: генерация случайных данных"

Оптимальное покрытие автотестами:

генерация случайных данныхГеннадий Алпаев

Ciklum

Page 2: Геннадий Алпаев - "Оптимальное покрытие автотестами: генерация случайных данных"

Покрытие приложения автотестами

Насколько полным является покрытие кода автоматическими скриптами?

2

• покрытие спецификаций• покрытие ручных тестов• покрытие кода

Page 3: Геннадий Алпаев - "Оптимальное покрытие автотестами: генерация случайных данных"

Покрытие кода

Критерии охвата:

3

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

• охват ветвлений (if…then…else)

• охват условийif(A>B or B>C)

Page 4: Геннадий Алпаев - "Оптимальное покрытие автотестами: генерация случайных данных"

Тестирование данных

• Тестирование граничных и средних значений

4

• Тестирование «опасных» значений (A=B/C)

Page 5: Геннадий Алпаев - "Оптимальное покрытие автотестами: генерация случайных данных"

Model-based testing

Проблемы:

5

данные условие

Путь 1

Путь 2

результат

• время выполнения• ресурсозатратно

• генерировать пути• генерировать данные• делать обход всех путей с разными данными

Page 6: Геннадий Алпаев - "Оптимальное покрытие автотестами: генерация случайных данных"

Решение проблемы

Continuous Integration + Random Path/Data

6

данные условие

Путь 1

Путь 2

результат

Page 7: Геннадий Алпаев - "Оптимальное покрытие автотестами: генерация случайных данных"

Недостатки подхода• Отслеживание пути в случае возникновения ошибки (решение: каждый раз при осуществлении выбора оставлять «следы»)

7

• Сложность написания и отладки кода

• Сложность воспроизведения ситуации в автоматическом режиме (решение: ручной прогон + автоматизация конкретного сценария

Page 8: Геннадий Алпаев - "Оптимальное покрытие автотестами: генерация случайных данных"

Вопросы 8

?Геннадий Алпаев

Skype: gennadiy.alpaevE-mail: [email protected]


Recommended