Page 20 - 4787
P. 20
написанні лише того коду, який необхідний для проходження тесту. У
літературі також пропонують, принцип « підроби, поки не зробиш » ( fake it till
you make it). Тести потрібно писати для функціональності, яку тестують.
Вважають, що це має дві переваги. Це допомагає переконатися, що додаток
придатний для тестування, оскільки програмістові доведеться з самого початку
обдумати те, як додаток буде тестуватися. Це також сприяє тому, що тестами
буде покрита уся функціональність. Коли функціональність пишеться до тестів,
то розробники і організації можуть переходити до реалізації наступної
функціональності, не протестувавши існуючу. Ідея перевірити, що знову
написаний тест не проходить, допомагає переконатися, що тест реально щось
перевіряє. Тільки після цієї перевірки слід приступити до реалізації нової
функціональності. Цей прийом, відомий як ,, червоний/зелений/рефленторинг“,
називають «мантрою розробки через тестування». Під червоним тут мають на
увазі ті, що не пройшли тестування, а під зеленим – ті, що пройшли.
Відпрацьована практика розробки через тестування привели до створення
техніки «розробка через приймальне тестування» (Acceptance Test-driven
development, ATDD), в якому критерії, що описані замовником,
автоматизуються в приймальні тести, які потім використовують у звичайному
процесі розробки через модульне тестування (unit test-driven development,
UTDD). Цей процес дозволяє гарантувати, що додаток задовольняє
сформульовані вимоги. При розробці через приймальне тестування, команда
програмістів сконцентрована на чіткому завданні: задовільнити приймальні
тести, які відображають відповідні вимоги користувача.
Приймальні (функціональні) тести (customer tests, acceptance tests) –
тести, що перевіряють функціональність додатку на відповідність вимогам
замовника. Приймальні тести проходять на боці замовника. Це допомагає йому
переконатися в тому, що він отримає всю необхідну функціональність.
Переваги розробки через тестування. Дослідження показало, що
використання розробки через тестування передбачає написання значної
кількості тестів, в свою чергу, програмісти, які пишуть більше тестів, схильні
19