Розробник повинен зробити початкове тестування, щоб ми знали, що зашифрований фрагмент працював так, як очікується, відповідно до вимог, які ми маємо. Таким чином, ми робимо звичайне тестування, а також пишемо модульні тести для написаного нами коду.
Наступний крок - завдання QA, щоб дізнатися, що розробники не бачать, коли ми пишемо код. Розробник мислить на більш високому рівні, але користувач може не думати на тому ж рівні. Коли розробник тестує свій фрагмент і мусить ввести якийсь текст у текстове поле, він завжди може ввести повний рядок, що думає, користувач також зробив би це. Користувач може зробити це теж, але випадково, коли він вводить у текст спеціальний символ, як% & $ ^, і який порушує програму, це не виглядає добре для кінцевого користувача. Розробник не може і не буде думати про всі можливості, які можуть статися, тому що він не навчений мислити так. Якщо мова йде про QA (тестер), вони завжди думають про те, що може зробити користувач, щоб зламати цю програму і спробувати все дурне в книзі, а не користувачі дурні, але ми нічого не повинні залишати випадковістю.
Тепер ми також маємо розуміти, що загалом більше одного твору зроблено одночасно, і обидва будуть збиратися у виробництві. Розробник міг би протестувати лише його твір і подумати, що він працює нормально, але загальне тестування регресії потрібно зробити для всіх шматочків, які висуваються, а також з'ясувати, що комбінація двох різних частин може зламати додаток, і це також не виглядає добре. Ми також повинні враховувати сценарії тестування навантаження та інші речі, з якими тестери ознайомлені більш детально.
Нарешті, ми повинні пройти UAT (User Acceptance Test), щоб побачити, чи є те, що ми очікували. Як правило, хоча вимоги проходять через БА, кінцева особа може не точно знати, як це виглядає, і він / вона може подумати, що це не те, що вони очікували, або вони могли б хотіти додати щось інше, щоб воно виглядало краще або з якоїсь причини вони могли зірвати цілий шматок, як вони думають, шматок не піде з уже наявними функціоналами.
Як було пояснено вище, вони дуже важливі і не можуть бути виконані розробником поодинці і абсолютно необхідні для роботи програми. Керівництво може сказати, що це консервативний підхід, але це кращий підхід. Ми можемо зробити деякі підправки до сказаного, але не можемо цього уникнути.