Page 107 - 4190
P. 107

ти тест, розробник повинен чітко розуміти пред’явлені до нової мож-
            ливості вимоги. Для цього розглядаються можливі стандарти викори-
            стання і можливі історії використання користувачів. Нові вимоги мо-
            жуть також вплинути на зміни існуючих тестів. Це відрізняє розробку

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

                  На етапі запуску усіх тестів необхідно переконатися, що нові тес-
            ти не проходять. На цьому етапі перевіряють також самі тести: напи-
            саний тест може проходити завжди і відповідно може бути марним.
            Нові тести повинні не  проходити зі зрозумілих причин. Це збільшує

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

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

            ливо писати код, що призначений для тільки для проходження тесту.
            Не слід додавати зайвої функціональності і, яка  відповідно не тесту-
            ється.

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

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

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

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

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

            має помилки.
                  Розроблення через тестування тісно пов’язане з таким принципом

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