ALMELN.ru

Хранилище текстов, отзывов и закладок о тестировании, обеспечении качества и литературе

View the Project on GitHub

Виды тестирования программного обеспечения

В учебных программах по дисциплине “Обеспечение качества и тестирование программ” есть тема “Виды тестирования” с составляющими:

“Классификация по объекту тестирования, по уровню доступа к компонентам системы, по степени автоматизации, по степени изолированности компонентов, по фазе проведения тестирования, по признаку позитивности сценариев, по степени подготовки к тестированию”.

В программе обучения базового уровня International Software Testing Qualifications Board “Сертифицированный тестировщик” указано на необходимость:

“Сравнить различные уровни тестирования: типичные объекты тестирования, цели различных видов тестирования (например, функционального или структурного) и работы, связанные с ними, тестировщиков, типы дефектов, которые могут быть найдены” и “Сравнить четыре типа тестирования (функциональное, нефункциональное, структурное и тестирование вносимых изменений). Привести примеры”.

Прошелся по доступной литературе и составил конспект, который содержит различные классификации видов тестирования без углубления в подробности по каждому виду тестирования. То есть упора на терминалогический аппарат не будет. Упор на терминологию для каждого вида тестирования буду публиковать в отдельных конспектах.

«Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах»

Роман Савин, Москва, Дело, 2007. 104 страница:

  1. По знанию внутренностей системы:
    • черный ящик (black box testing);
    • серый ящик (grey box testing);
    • белый ящик (white box testing).
  2. По объекту тестирования:
    • функциональное тестирование (functional testing);
    • тестирование интерфейса пользователя (UI testing);
    • тестирование локализации (localization testing);
    • тестирование скорости и надежности (load/stress/perfor- mance testing);
    • тестирование безопасности (security testing);
    • тестирование опыта пользователя (usability testing);
    • тестирование совместимости (compatibility testing).
  3. По субъекту тестирования:
    • альфа-тестировщик (alpha tester);
    • бета-тестировщик (beta tester).
  4. По времени проведения тестирования до передачи пользователю:
    • альфа-тестирование (alpha- testing);
    • тест приемки (smoke test, sanity test или confidence test);
    • тестирование новых функциональностей (new feature testing);
    • регрессивное тестирование (regression testing);
    • тест сдачи (acceptance or certification test);
  5. По времени проведения тестирования после передачи пользователю
    • бета-тестирование (beta testing).
  6. Покритерию “позитивности” сценариев:
    • позитивное тестирование (positive testing);
    • негативное тестирование (negative testing).
  7. По степени изолированности тестируемых компонентов:
    • компонентное тестирование (component testing);
    • интеграционное тестирование (integration testing);
    • системное (или энд-ту-энд) тестирование (system or end- to-end testing).
  8. По степени автоматизированности тестирования:
    • ручное тестирование (manual testing);
    • автоматизированное тестирование (automated testing);
    • смешанное/полуавтоматизированное тестирование (semi automated testing).
  9. По степени подготовки к тестированию:
    • тестирование по документации (formal/documented testing);
    • эд хок-тестирование (ad hoc testing).

IEEE Standard for Software and System Test Documentation, IEEE Std 829-2008. 90-91 страницы:

Table D.1 ⎯ Optional Testing Tasks and suggested applications.

«Сертифицированный тестировщик Программа обучения Базового уровня», версия 2011 от 13 апреля 2011 года, International Software Testing Qualifications Board, Андрей Конушин (председатель), Александр Александров, Алексей Александров, Татьяна Смехнова, Елена Абрамова. 35-38/101 страница:

Типы тестирования определяются целями тестирования, которые могут быть следующими:

Модель программного обеспечения может быть разработана и\или использована во время структурного (например, модель потока управления или модель структуры меню), нефункционального тестирования например, модель нагрузки, модель удобства использования, модель угроз безопасности) и функционального тестирования (например, модель бизнес-процессов, модель переходов состояний или спецификация не естественном языке).

«Основы программной инженерии (по SWEBOK). Программная инженерия. Тестирование программного обеспечения» на базе IEEE Guide to SWEBOK® 2004, Сергей Орлик, 06-11 страницы:

2.1. Над чем производятся тесты (The target of the test)

Тестирование обычно производится на протяжении всей разработки и сопровождения на разных уровнях. Уровень тестирования определяет “над чем” производятся тесты: над отдельным модулем, группой модулей или системой, в целом. При этом ни один из уровней тестирования не может считаться приоритетным. Важны все уровни тестирования, вне зависимости от используемых моделей и методологий.

2.2. Цели тестирования (Objectivies of Testing) Тестирование проводится в соответствии с определенными целями (могут быть заданы явно или неявно) и различным уровнем точности. Определение цели точным образом, выражаемым количественно, позволяет обеспечить контроль результатов тестирования.

Тестовые сценарии могут разрабатываться как для проверки функциональных требований (известны как функциональные тесты), так и для оценки нефункциональных требований. При этом, существуют такие тесты, когда количественные параметры и результаты тестов могут лишь опосредованно говорить об удовлетворении целям тестирования (например, “usability” – легкость, простота использования, в большинстве случаев, не может быть явно описана количественными характеристиками). Можно выделить следующие, наиболее распространенные и обоснованные цели (а, соответственно, виды) тестирования:

3.1. Техники, базирующиеся на интуиции и опыте инженера (Based on the software engineer’s intuition and experience)

3.6 Техники, базирующиеся на природе приложения (Techniques based on the nature of the application)

Описанные выше техники могут применяться к любым типам программных систем. В то же время, в зависимости от технологической или архитектурной природы приложений, могут также применять специфические техники, важные именно для заданного типа приложения. Среди таких техник:

3.7 Выбор и комбинация различных техник (Selecting and combining techniques)

«Основы инженерии качества программных систем», Филипп Андон, Галина Коваль, Татьяна Коротун, Екатерина Лаврищева, В. Суслов

Академпериодика, 2007. 317/679 страница:

Методы, основанные на спецификации (или методы функционального тестирования)

Эти методы широко известны и подробно описаны в литературе [2, 8, 9, 10, 22–29]:

В традиционной классификации их относят к методам «черного ящика». Они применяются для тестирования внешних и внутренних функций программы и предполагают наличие спецификации (формальной или не формальной), используемой в качестве эталона. Отличаются между собой подходами к выбору тестовых данных из множества входов (входного пространства) функций.

К основным методам функционального тестирования относятся:

Еще предстоит изучить следующие источники для пополнения конспекта:

  1. раз
  2. два
  3. три

08.05.2017. Перейти на Главную страницу