У мене була дискусія з менеджером тестування щодо ролі тестування підрозділу та інтеграції. Вона попросила розробників повідомити про те, що вони перевірили, як вони перевіряють модуль та інтеграцію. Моя точка зору полягає в тому, що тестування модулів та інтеграції є частиною процесу розробки, а не процесом тестування. Крім семантики, я маю на увазі те, що одиничні та інтеграційні тести не повинні включатися до звітів про тестування, а тестери систем не повинні їх турбувати. Мої міркування ґрунтуються на двох речах.
Тести для блоків та інтеграції плануються та проводяться завжди на основі інтерфейсу та контракту. Незалежно від того, використовуєте ви формалізовані контракти, ви все ще перевіряєте, що, наприклад, має бути виконаний метод, тобто контракт.
Під час інтеграційного тестування ви перевіряєте інтерфейс між двома різними модулями. Інтерфейс та контракт визначають, коли тест пройде. Але ви завжди тестуєте обмежену частину всієї системи. З іншого боку, тестування систем планується та проводиться відповідно до специфікацій системи. Специфікація визначає, коли проходить тест.
Я не бачу жодної цінності в повідомленні тесту (системи) тестування та глибини одиничних та інтеграційних тестів. Припустимо, я пишу звіт, у якому перераховано, який тип одиничних тестів виконується для певного класу бізнес-рівня. Що він / вона повинен забрати від цього?
Судити про те, що слід, а що не слід перевіряти, це хибний висновок, оскільки система все ще може не функціонувати так, як вимагають специфікації, навіть незважаючи на те, що проходять усі тести одиниці та інтеграції.
Це може здатися марною академічною дискусією, але якщо ви працюєте в строго формальній обстановці, як я, це насправді важливо визначати, як ми робимо справи. У всякому разі, я абсолютно помиляюся?