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 acceptance testing - приемочные испытания, проводимые в реальной или смоделированной среде предполагаемыми пользователями, ориентируясь на их потребности, требования и бизнес-процессы.

  • Contractual acceptance testing

    Contractual acceptance testing

    Contractual acceptance testing - приемочные испытания, проводимые для проверки того, удовлетворяет ли система контрактным требованиям.

  • Operational acceptance testing

    Operational acceptance testing

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

  • Regulatory acceptance testing

    Regulatory acceptance testing

    Regulatory acceptance 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 - фокусируется на способности системы удовлетворять будущую эффективность требования, которые могут быть выше тех, которые требуются в настоящее время.

  • Volume testing

    Volume testing

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