Page 108 - 4190
P. 108

як “роби простіше дурнику” (keep it simple, stupid, KISS ) і “вам це не
            знадобиться” (you ain’t gonna need it, YAGNI). Дизайн може бути чис-
            тішим і зрозумілішим, при написанні лише того коду, який необхід-
            ний для проходження тесту. У літературі також пропонують, принцип

            «підроби, поки не зробиш» ( fake it till you make it). Тести повинні пи-
            сатися для функціональності, яка тестується. Вважається, жо це має
            дві  переваги.  Це  помагає  переконатися,  що  додаток  придатний  для

            тестування,  оскільки  програмістові  доведеться  з  самого  початку  об-
            думати те, як додаток буде тестуватися. Це також сприяє тому, що те-
            стами  буде  покрита  уся  функціональність.  Коли  функціональність
            пишеться до тестів, то розробники і організації можуть переходити до

            реалізації  наступної  функціональності,  не  протестувавши  існуючу.
            Ідея  перевірити,  що  знову  написаний  тест  не  проходить,  допомагає
            переконатися, що тест реально щось перевіряє. Тільки після цієї пе-

            ревірки  слід  приступити  до  реалізації  нової  функціональності.  Цей
            прийом,  відомий  як  “червоний/зелений/рефленторинг”,  називають
            «мантрою розробки чараз тестування». Під червоним тут вважаєть-

            ся ті, що не пройшли тестування,  а під зеленим – ті, що пройшли.
                  Відпрацьована практика розроблення через тестування привикли
            до  створення  техніки  «розроблення  через  приймальне  тестування»

            (Acceptance Test-driven development, ATDD), в якому критерії, що опи-
            сані замовником, автоматизуються в приймальні тести, які потім ви-
            користовуються  в  звичайному  процесі  розроблення  через  модульне

            тестування (unit test-driven development, UTDD). Цей процес дозволяє
            гарантувати,  що  додаток  задовольняє  сформульовані  вимоги.  При
            розробленні через приймальне тестування, команда програмістів ско-
            нцентрована на чіткій задачі: задовольнити приймальні тести, які ві-

            дображають відповідні вимоги користувача.
                  Приймальні  (функціональні)  тести  (customer  tests,  acceptance
            tests) – тести, що провіряють функціональність додатку на відповід-
            ність вимогам замовника. Приймальні тести проходять на боці замов-

            ника. Це допомагає йому переконатися в тому, що він отримає всю
            необхідну функціональність.
                  Переваги  розроблення  через  тестування.  Дослідження  показало,

            що використання розроблення через тестування передбачає написан-
            ня значної кількості тестів, у свою чергу, програмісти, які пишуть бі-
            льше  тестів,  схильні  бути  більш  продуктивними.  Гіпотези,  що

            пов’язують якість коду з  TDD, були непереконливі.
                  Програмісти, що використовують TDD на нових проектах, відмі-

                                                             108
   103   104   105   106   107   108   109   110   111   112   113