вного або непрацюючого коду відучує розробників від виконання періодичних резервних включень коду в репозиторій.
· у разі використання системи управління версіями вихідного коду з підтримкою розгалуження, ця проблема може вирішуватися створенням окремої «гілки» (англ. branch) проекту для внесення великих змін (код, розробка якого до працездатного варіанту займе кілька днів, але бажано більш часте резервне копіювання в репозиторій). По закінченні розробки та індивідуального тестування такої гілки, вона може бути об'єднана (англ. Merge) з основним кодом або «стволом» (англ. Trunk) проекту.
. 7 Засоби безперервної інтеграції
· Bamboo lt; # justify gt; 9. Покриття коду тестами
. 1 Покриття коду
Визначення для загального розуміння теми:
· Тестове покриття (Test Coverage) - це одна з метрик оцінки якості тестування програмного забезпечення. Являє собою величину, виражену у відсотках, яка відображає ступінь щільності покриття тестами функціональних вимог або виконуваного коду.
Існує два основні підходи до оцінки та виміру тестового покриття: покриття вимог (можна співвіднести з тестуванням по методу чорного ящика), покриття коду (можна співвіднести з тестуванням по методу білого ящика).
Покриття вимог (Requirements Coverage) - оцінка покриття тестами функціональних і не функціональних вимог до продукту шляхом побудови матриць трасування (traceability matrix);
· Покриття коду (Code Coverage) - оцінка покриття виконуваного коду тестами, шляхом відстеження неперевірених в процесі тестування частин програмного забезпечення.
Покриття коду є важливою метрикою для забезпечення якості тестованого програми, особливо якщо мова про проекти зі складною логікою і великим обсягом коду. Аналіз покриття коду виконується за допомогою спеціального інструментарію, який дозволяє простежити в які рядки, гілки і т.д. коду, були входження під час роботи Автотест. Найбільш відомі інструменти для проведення вимірювання покриття коду: AQTime, Bounds Checker, Bullseye Coverage, Coverage Meter, Clover, NCover, IBM Rational PurifyPlus, Intel Compiler, Intel Code Coverage Tool Prototype, JetBrains. За допомогою аналізу покриття коду можна оцінити густину покриття авто-тестами виконуваного коду тестованого програми (можна відповісти на питання який обсяг тестування ми (наші Автотест) виконуємо?). При детальному аналізі результатів покриття коду Автотест можна оцінити покриття окремих компонентів системи (тобто можна відповісти на питання: що і в якому обсязі ми тестуємо ?, в яких місцях потрібно оптимізувати покриття ?, які місця системи не перевіряються тестами? І т. д.). Таким чином, знаючи дану метрику, стане ясно для яких тестових випадків потрібно створити нові тести, або прибрати дублюючі тести. Дані заходи допоможуть збільшити значення метрики Code Coverage, що в свою чергу має підвищити якість коду і якість тестованого програми в цілому. Природно, чим вище показник даної метрики - тим краще, проте вже добре якщо у вас покриті тестами найбільш складні і важливі фрагменти коду.
Покриття коду тестами - міра, що показує, на скільки відсотків вихідний код програми був протестований.
Техніка покриття коду була однією з перших методик, винайдених для систематичного тестування програмного забезпечення lt; # justify gt; · Покриття операторів - кожна рядок вихідного коду була виконана і протестована?
· Покриття умов - чи кожна точка рішення (обчислення чи істинно або хибно вираз) була виконана і протестована?
· Покриття шляхів - чи всі можливі шляхи через задану частина коду були виконані і протестовані?
· Покриття функцій - чи кожна функція програми була виконана?
· Покриття вхід/вихід - чи всі виклики функцій і повернення з них були виконані?
· Покриття комбінацій - перевірка всіх можливих комбінацій результатів умов.
При оцінці покриття коду тестованого ПО збирається зі спеціальними налаштуваннями або бібліотеками і запускається в особливому оточенні, в результаті чого для кожної виконуваної функції програми визначається місцезнаходження цієї функції у вихідному коді. Цей процес дозволяє розробникам і фахівцям із забезпечення якості визначити частини системи, які при нормальній роботі використовуються рідко або ніколи не використовуються (такі, як код обробки помилок і т.п.). Тестувальники можуть використовувати результати перевірки покриття для розробки додаткових тестів або тестових даних.
. 2 Практичне застосування
Зазвичай вихідний код забезпечується тестами, які регулярно виконуються. Отриманий зв...