Есть ли способы автоматизировать тестирование в такой ситуации?
Имеем две независимые системы: мобильная версия и десктопная.
В каждой из систем необходимо создать окна со всеми возможными параметрами, затем сравнить финальную стоимость окна.
Каждое окно имеет множество параметров, которые возможно представить как древовидную структуру:
Я представил упрощенную схему, параметров на самом деле их намного больше.
По предварительным подсчетам, для того чтобы показать заказчику результаты, что мы протестировали создание окон со всевозможными параметрами, нужно создать примерно 3 тысячи окон(сверяя результаты финальной стоимости).
В текущий момент удалось протестировать отдельно каждый блок вычислений. Но мы не можем быть уверены, что при создании определенной комбинации параметров не возникнет ошибки в вычислениях.
Если не создавать 3 тысячи окон, но имея уверенность, что все баги в вычислениях пофиксили.
Какие есть способы наглядно представить результаты тестирования?
Почему бы не ограничится единичной проверкой веток? a -> f -> k -> another -> another, a -> e -> another -> another + не до конца ясно как при уровне зависимости 5-6 уровней получается 3к объектов. Если всё-таки стоит задача перебрать все 5 - 6 веток, то почему бы топорно не написать 1 раз генератор входных данных и использовать полученные данные в тесте - хотя, как заметил комментатор выше, это антипаттерн
Именно так я и сделал, при этом сравнивая сходные ветки и требования для вычислений.
Создал огромное дерево, прямо в котором локализировал баги. Все это с очень удобной навигацией.
И как оказалось - этого недостаточно для отчетности
Это всецело идея разработчиков создать покрытие тестами всех веток
На случай, если клиент спросит: а вы проверили вот эту ветку? И сам попробует перепроверить
Как уже сказали выше, exhaustive testing или исчерпывающее тестирование - это антипаттерн. Зачастую невозможно либо не эффективно (финансово, по количеству затраченного времени, и т.д.) тестировать все возможные комбинации входных данных.
Многие системы сертификаций, например тот же преславутый ISQTB, упорно вдалбливают в головы QA, что наша задача не протестировать всевозможные варианты, а обеспечить приемлемый уровень качества в соответствии с оценкой рисков.
Иными словами, используя принцип Парето (20% тестов находят 80% ошибок), я бы выделил для тестирования наиболее часто встречающиеся комбинации параметров - это можно узнать у клиента, а оставшееся время потратил бы на более специфические варианты.
Кроме как Excel-таблицы с наименованием ветки и Actual \ Expected, вариантов не вижу. См. Data-driven testing
Если проект долгоиграющий и есть API, который можно дернуть напрямую без интерфейса - задача с перебором 3000 объектов упрощается.
Если идет речь о миллионах комбинаций - тогда можно говорить об антипаттерне.
А тут “всего” лишь 3000 штук.
Их перебрать можно и нужно (раз требует заказчик, или может потребует).
Вам нужно создать управляемый данными тест. Поскольку у Вас написано что нужно сверить стоимости то я полагаю что у Вас есть таблица в которой указаны параметры окна и стоимость. Параметры должны быть масивом и передаваться через Ваше API, стоимость ожидаемым результатом. Я бы не стал автоматизировать это через UI будет очень долго работать, а вот через API самое оно (20-30сек и тесты пройдены). Попросите разработчика сделать такой интеграционный тест на уровне бизнес-логики. А сами напишите UI тест на одну самую длинную ветку, что-бы проверить UI функциональность (чекбоксы, кнопки, выпадающие списки…).