Page 111 - 4190
P. 111

дів. Вона зосереджується на тестуванні окремо взятих модулів, вико-
            ристовуючи mock-об’єкти  для представлення зовнішнього світу.
                  4. Вимагається більше часу для розроблення і підтримки, а заохо-
            чення    з  боку  керівництва  дуже  важливе.  Якщо  в  організації  немає

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

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

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

                  7. Тести самі по собі є джерелом накладних витрат. Погано напи-
            сані тести, наприклад, містять  жорстко вшиті рядки з повідомленням
            про помилки або піддані помилкам, дорогі при підтримці. Щоб спро-

            стити підтримку тестів необхідно повторно використати повідомлен-
            ня про помилки з коду, що тестується.
                  8. Рівень покриття тестами, що отримують  у результаті розроб-

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

            рядку. Просте вилучення, відключення або поспішна зміна може при-
            вести до пропусків, які важко виявити при покритті тестами.
                  Видимість коду. Тести повинні мати доступ до тестованого коду.

            З другого боку, принципи інкапсуляції і приховування даних не по-
            винні порушуватися.  Тому  модульні  тести  пишуть  в  тому  ж  модулі
            або проекті, що і тестований код.
                  З коду тесту може не бути доступу до private полів і методів. То-

            му при модульному тестуванні може виникнути потреба  в додатковій
            роботі. У Java розробник може використати відображення (reflection),
            щоб звертатися до полів, які помічені як private. Модульні тести мо-

            жна реалізувати у внутрішніх классах, щоб вони мали доступ до чле-
            нів  зовнішнього  классу.  У  NET  Framework  можуть  застосовуватися
            класи, що поділяються (partial classes) для доступу з тесту до private

            полів і методів.
                  Важливо, щоб фрагменти коду, що призначені виключно для тес-

                                                             111
   106   107   108   109   110   111   112   113   114   115   116