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