На роботі у нас досить складна система. Давайте назвемо цю систему, System_A. Наша команда з QA створила іншу систему, викликайте цю систему, System_B, щоб перевірити System_A.
Спосіб використання System_B полягає в наступному. Ми генеруємо входи (використовуючи сам System_B), IN, обробляємо такі входи назад через System_B і генеруємо виходи, O_B. Отже, процес такий:
System_B(IN) -> O_B
.
Потім робимо те ж саме для System_A, щоб генерувати власні результати, O_A:
System_A(IN) -> O_A
.
У будь-який час передбачається, що O_B - очікуваний вихід, а O_A - спостережуваний / фактичний вихід. Мається на увазі, що O_B є "золотим" джерелом (правда). Однак ми зіткнулися з поєднанням проблем.
- O_A помиляється, O_B має рацію
- O_A - це правильно, O_B - правильно
- O_A помиляється, O_B - неправильно
- O_A вірно, O_B помиляється
Хто визначає, що правильно, якщо O_B вважається завжди правильним (або що очікується)? Що ж, виявляється, що O_B іноді (або часто) помиляється з оглядом та аналізом людини. За допомогою цього процесу все пройде QA, і справжні користувачі будуть скаржитися, і ми повернемося до того, що O_B все-таки помилився.
Питання таке: чи погана практика створення "тестової системи" для тестування реальної системи?
- А як щодо слизького схилу? Тоді чи не можемо ми стверджувати, що потрібна ще одна система для тестування "тестової системи"?
- Вартість, безумовно, непомірна, оскільки розробникам зараз потрібно вивчити принаймні 2 бази коду, можливо, складність System_B більша, ніж System_A. Як ми могли б оцінити, наскільки добре чи погано мати System_B навколо організації?
- Однією з оригінальних «переконливих» причин для створення System_B було «автоматизація» тестування. Зараз ми дуже пишаємося тим, що ми повністю автоматизовані (адже System_B генерує вхід для завантаження процесу використання себе для отримання результатів). Але я думаю, що ми заподіяли більше шкоди і ввели більше складності, не підлягає оцінці. Чи слід завдання QA бути повністю автоматизованим? Чи достатньо цієї причини, щоб виправдати створення паралельної системи?
- Моє справжнє занепокоєння в цьому, хоча ми всі знаємо, що System_B помиляється (досить часто). Якщо System_B настільки добре обробляє вхід, а його вихід є золотим джерелом, чому б не замінити System_A на System_B? На це ніхто на роботі не в змозі надати задовільну відповідь.
Будь-які вказівки з цього питання високо оцінені.