За прошедшие годы мы собрали значительное количество модульных тестов для нашей основной программы. Несколько тысяч Проблема в том, что у нас нет четкого представления о том, какие тесты мы проводим, потому что их так много. И это проблема, потому что мы не знаем, где мы слабы в тестах (или где у нас есть дубликаты).
Наше приложение представляет собой механизм отчетности. Таким образом, вы можете иметь шаблон, который используется для проверки синтаксического анализа (мы читаем все свойства таблицы), слияния данных (мы сохранили правильные свойства таблицы при слиянии), форматирование последней страницы (правильно ли таблица размещена на странице? ) и / или выходной формат (правильный ли созданный файл DOCX).
Добавьте к этому то, что нам нужно проверить. Возьмите отступ вокруг ячейки таблицы (мы используем Word, Excel и PowerPoint для дизайна отчета). Мы должны проверить заполнение по разрыву страницы, для таблицы внутри ячейки, вертикально слитых ячеек, горизонтально слитых ячеек, вертикально и горизонтально слитых ячеек, которые содержат таблицу с вертикально и горизонтально объединенными ячейками во внутренней таблице, где эта таблица ломается по странице.
Так в какую категорию входит этот тест? Заполнение таблицы, разрывы страниц, вложенные ячейки, вертикально объединенные ячейки, горизонтально объединенные ячейки или что-то еще?
И как мы документируем эти категории, называем юнит-тесты и т. Д.?
Обновление: несколько человек предложили использовать инструменты покрытия, чтобы убедиться, что у нас есть полное покрытие. К сожалению, это имеет ограниченное применение в нашем случае, потому что ошибки, как правило, связаны с конкретными комбинациями, так что это код, который все был протестирован, но не в этой комбинации.
Например, вчера у нас был клиент, который запустил закладку Word в конце цикла forEach в своем шаблоне (документ Word) и завершил его в начале следующего цикла forEach. Это весь используемый код, который имеет модульные тесты против него, но мы не думали, что комбинация шаблона, расширяющего начало закладки, должна запускаться 25 раз, а затем заканчиваться 10 раз (два цикла forEach имели разное количество строк).