Testing throughout the SDLC

Test levels

  • Component

    Component

    Component – найменший елемент програмного забезпечення, який може бути протестований окремо.

  • Component testing (module/unit)

    Component testing (module/unit)

    Component testing (module/unit) – тестування окремих компонентів програмного забезпечення.

  • Stubs

    Stubs

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

  • Drivers

    Drivers

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

  • TDD (Test Driven Development)

    TDD (Test Driven Development)

    TDD (Test Driven Development) - спосіб розробки програмного забезпечення, у якому тестові приклади розробляються і часто автоматизовані, як програмне забезпечення буде розроблено до виконання цих тестових прикладів.

  • BDD (Behavior Driven Development)

    BDD (Behavior Driven Development)

    BDD (Behavior Driven Development) – є гілкою розробки через тестування (TDD). BDD використовує зручні для читання описи вимог користувачів програмного забезпечення як основи для тестування програмного забезпечення.

  • DDT (data-driven testing)

    DDT (data-driven testing)

    DDT (data-driven testing) - методика написання автоматизованих тестових сценаріїв, за якої вхідні тестові дані та очікувані результати зберігаються в таблицях, таким чином, що окремий сценарій може виконати всі тести в таблиці.

  • Integration

    Integration

    Integration - процес інтегрування компонентів чи систем у більшу структуру.

  • Integration testing

    Integration testing

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

  • Component integration testing

    Component integration testing

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

  • System integration testing

    System integration testing

    System integration testing – тестування інтеграції систем та пакетів програм, тестування інтерфейсів зв'язку із зовнішніми системами (інтернет тощо).

  • Bottom-up testing

    Bottom-up testing

    Bottom-up testing – послідовний підхід до інтеграційного тестування, при якому компоненти нижнього рівня тестуються першими і потім використовуються для полегшення тестування компонентів вищого рівня.

  • top-down testing

    top-down testing

    top-down testing - Інкрементальний підхід до інтеграційного тестування, при якому компоненти з верхнього рівня ієрархії об'єктів тестуються насамперед із використанням заглушок замість компонентів нижчого рівня.

  • big-bang testing

    big-bang testing

    big-bang testing - Вид підходу до інтеграційного тестування, при якому елементи програмного або апаратного забезпечення, або й те й інше, збираються в компонент або цілу систему відразу, а не по етапах.

  • System testing

    System testing

    System testing - процес тестування системи загалом із метою перевірки того, що вона відповідає встановленим вимогам.

  • Acceptance testing

    Acceptance testing

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

  • User acceptance testing

    User acceptance testing

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

  • Contractual acceptance testing

    Contractual acceptance testing

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

  • Operational acceptance testing

    Operational acceptance testing

    Operational aceptance testing - експлуатаційне тестування у фазі приймального тестування, зазвичай виконуване користувачем та/або співробітниками з адміністраторським доступом, у робочому середовищі (можливо, симульованому), фокусуючись на функціональних аспектах. Наприклад, відновлюваність, поведінка ресурсів, встановлюваність та технічна відповідність.

  • Regulatory acceptance testing

    Regulatory acceptance testing

    Regulatory aceptance testing - приймальне тестування, яке проводиться для перевірки відповідності системи законам, політикам і постановам, що застосовуються.

  • Alpha testing

    Alpha testing

    Alpha testing - модельоване або дійсне експлуатаційне тестування потенційними користувачами/замовниками або незалежною командою тестування на стороні розробників, але поза організації, яка виконує розробку.

  • Beta testing

    Beta testing

    Beta testing - експлуатаційне тестування потенційними та/або існуючими клієнтами/замовниками на зовнішній стороні, які ніяк не пов'язані з розробниками, з метою визначення, чи дійсно компонент або система відповідає вимогам клієнта/замовника і вписується в бізнес-процеси. Бета-тестування часто проводиться як форма зовнішнього приймального тестування готового програмного забезпечення для отримання відгуків ринку.

Test types

  • Functional testing

    Functional testing

    Functional testing – тестування, засноване на аналізі специфікації функціональності компонента чи системи.

  • Non-functional Testing

    Non-functional Testing

    Non-functional Testing – тестування атрибутів компонента або системи, що не належать до функціональності: тобто надійність, ефективність, практичність, супроводжуваність та переносимість.

  • Performance testing

    Performance testing

    Performance testing – процес тестування з метою визначити продуктивність програмного продукту.

  • Impact analysis

    Impact analysis

    Impact analysis - оценка изменений в документации разработки и тестирования, а также компонентов с целью внесения данных изменений в определенные требования.

  • Load testing

    Load testing

    Load testing - тестування часу відгуку програми на запити різних типів, з метою переконатися, що програма працює відповідно до вимог при звичайному навантаженні користувача.

  • Stress testing

    Stress testing

    Stress testing - тестування працездатності програми при навантаженнях, що перевищують користувацькі у кілька разів. При стрес-тестуванні ми можемо отримати реальні дані меж продуктивності та поведінку програми за цими межами.

  • Spike testing

    Spike testing

    Spike testing - фокусується на здатності системи відновлюватися після раптових сплесків навантаження та повертатися у стійкий стан.

  • Endurance testing

    Endurance testing

    Endurance testing - завданням цього типу тестування є перевірка працездатности ПЗ при тривалому середньому навантаженні.

  • Usability testing

    Usability testing

    Usability testing – тестування зручності програмного забезпечення.

  • Installation testing

    Installation testing

    Installation testing - спрямовано перевірку успішної інсталяції і навіть оновлення чи видалення програмного забезпечення.

  • Configuration testing

    Configuration testing

    Configuration testing - спеціальний вид тестування, спрямований на перевірку роботи програмного забезпечення при різних конфігураціях системи (заявлених платформах, драйверах, що підтримуються, при різних конфігураціях комп'ютерів тощо).

  • Internationalization testing

    Internationalization testing

    Internationalization testing - це процес розробки програмного додатка, щоб він міг бути адаптований до різних мов та регіонів без будь-яких змін.

  • Localization testing

    Localization testing

    Localization testing - це процес адаптації міжнародного програмного забезпечення для певного регіону або мови шляхом додавання місцевих конкретних компонентів та перекладу тексту.

  • White box testing (glass-box)

    White box testing (glass-box)

    White box testing (glass-box) – тестування, засноване на аналізі внутрішньої структури компонента чи системи.

  • Code coverage

    Code coverage

    Code coverage - метод аналізу, який визначає, які частини програмного забезпечення були перевірені (покриті) набором тестів, а які ні, наприклад, покриття операторів, покриття альтернатив або покриття умов.

  • Black box testing

    Black box testing

    Black box testing – тестування, функціональне чи нефункціональне, без знання внутрішньої структури компонента чи системи.

  • Grey box testing

    Grey box testing

    Grey box testing - це метод тестування програмного продукту або програми з частковим знанням внутрішнього пристрою.

  • Confirmation testing (re-testing)

    Confirmation testing (re-testing)

    Confirmation testing (re-testing) - Тестування, у якому виконуються тестові сценарії, які були пройдені під час останнього запуску, з метою підтвердити успішність виправлень.

  • Regression testing

    Regression testing

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

  • Smoke testing

    Smoke testing

    Smoke testing - димове тестування розглядається як короткий цикл тестів, що виконується для підтвердження того, що після складання коду (нового або виправленого) додаток, що встановлюється, стартує і виконує основні функції.

  • Sanity testing

    Sanity testing

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

  • Maintenance Testing

    Maintenance Testing

    Maintenance Testing – тестування змін у діючій системі або впливу змін в оточенні на діючу систему.

  • Exploratory testing

    Exploratory testing

    Exploratory testing - підхід до тестування, при якому тестувальники динамічно проектують та виконують тести на основі своїх знань, вивчення елемента тестування та результатів попередніх тестів.

  • Pair testing

    Pair testing

    Pair testing - дві особи (двоє тестувальників, розробник та тестувальник, або кінцевий користувач та тестувальник), що працюють разом над пошуком дефектів. Зазвичай вони працюють за одним комп'ютером протягом роботи, передаючи управління один одному.

  • Ad-hoc testing

    Ad-hoc testing

    Ad-hoc testing – тестування, що виконується неформально; без формальної підготовки тестів, формальних методів проектування тестів, визначення очікуваних результатів та керівництва з виконання тестування.

  • Compatibility testing

    Compatibility testing

    Compatibility testing (interoperability testing) - процес тестування визначення можливості взаємодії програмного продукту.

  • Static testing

    Static testing

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

  • Dynamic testing

    Dynamic testing

    Dynamic testing – тестування, яке проводиться під час виконання програмного забезпечення, компонента або системи.

  • Test execution

    Test execution

    Test execution - процес запуску тесту на досліджуваному компоненті чи системі, що веде до реальних результатів.

  • Accessibility testing

    Accessibility testing

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

  • Scalability testing

    Scalability testing

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

  • tVolume testing

    tVolume testing

    Volume testing - завданням об'ємного тестування є отримання оцінки продуктивності зі збільшенням обсягів даних у базі даних програми, при цьому відбуваються: — вимірювання часу виконання обраних операцій при певних інтенсивностях виконання цих операцій — може здійснюватися визначення кількості користувачів, які одночасно працюють із додатком