Случайное тестирование (Random testing)

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

10. Тестування, орієнтоване на дефекти.

Какэтонистраннозвучит на уровненазвания таких техниктестирования, они, действительно, ориентированы на ошибки. Точнее – на специфическиекатегорииошибок.

Предположениеошибок (Errorguessing)

Направлены на обнаружениенаиболеевероятныхошибок, предсказываемых, например, в результатеанализарисков.

Тестированиемутаций (Mutationtesting)

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

SWEBOK фокусируется на возможности, с помощьютестов, определятьотличиямежду мутантами и исходнымвариантомкода. Еслитакоеотличие установлено, мутанта “убивают”, а тест считаетсяуспешным. Обычно, данныйподходфокусируется на синтаксическихошибках, на практикеотслеживаемыхсовременнымисредамиразработки и, конечно, компиляторами.

11.Тестування мутацій.

Тестирование мутаций

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

Этот метод тестирования фокусируется на возможности, с помощью тестов, определять отличия между мутантами и исходным вариантом кода. Если такое отличие установлено, мутанта “убивают”, а тест считается успешным. Обычно, данный подход фокусируется на синтаксических ошибках, на практике отслеживаемых современными средами разработки и, конечно, компиляторами.

Оракул. Проблема оракула.

Оракул будь-який (людини або механізм) агент, який вирішує, чи програма вела себе правильно в даному тесті, і, відповідно, виносить рішення про “проходження” або “невдачу”. Існує багато різних видів оракулів, і автомитазація оракула може бути дуже проблематичною або дорогою.

13. Збої та відмови.

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

Тестування дозволяє виявити відмови, але це дефекти, які можуть і повинні бути видалені.

14.Тестування продуктивності.

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

Тестирование производительности - это одна из сфер деятельности развивающейся в области информатики Инженерии производительности, которая стремится учитывать производительность на стадии моделирования и проектирования системы, перед началом основной стадии кодирования.

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

-нагрузочное (load)

-стресс (stress)

-тестирование стабильности (endurance or soak or stability)

-конфигурационное (configuration)

Стрес тестування.

Стресс-тестирование (англ. Stress Testing) — один из видов тестирования ПО, которое оценивает надежность и устойчивость системы в условиях превышения пределов нормального функционирования. Стресс-тестирование особенно необходимо для "критически важного" ПО, однако также используется и для остального ПО. Обычно стресс-тестирование лучше обнаруживает устойчивость, доступность и обработку исключений системой под большой нагрузкой, чем то, что считается корректным поведением в нормальных условиях.

Системне тестування.

Систе́мное тести́рование програ́ммного обеспече́ния — это тестирование программного обеспечения (ПО), выполняемое на полной, интегрированной системе, с целью проверки соответствия системы исходным требованиям. Системное тестирование относится к методам тестирования чёрного ящика, и, тем самым, не требует знаний о внутреннем устройстве системы.

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

Можно выделить два подхода к системному тестированию:

-на базе требований (requirements based)

Для каждого требования пишутся тестовые случаи (test cases), проверяющие выполнение данного требования.

-на базе случаев использования (use case based)

Альфа-тестирование и бета-тестирование являются подкатегориями системного тестирования.

 

17.Методологія покращення якості.

Методология улучшения качества – система базисных принципов, методов, методик, способов и средств их реализации в организации и построении научно-практической деятельности людей в целях улучшения качества продукта деятельности

• методология реинжиниринга;

• методология бенчмаркинга;

• методология «Шесть сигм»;

• методология (методы, подходы) Гэнити Тагути;

• методология самооценки;

• методология решения проблем.

 

18. Вимірювання, пов’язані з тестуванням.

Базових метрик для вимірювання результатів тестування корисними є такі метрики:

метрики оцінювання набору тестів відповідно до обраного критерію покриття, як от метрики покриття тестових вимог, коду чи функцій;

метрики тенденцій дефектів (знайдених, усунутих, по серйозності, пріоритету тощо).

Крім того, для ефективного керування процесом тестування важливими метриками є час і вартість тестування.

Щодо практичного використання метрик для керування процесом тестування існує декілька проблем, а саме:

збирання початкових даних для обчислення метрик;

інтерпретація результатів розрахунку та ступінь довіри до них;

яким чином використовувати метрики для керуванням тестуванням на кожному рівні;

вибір мінімальної множини метрик, прийнятних в контексті певного процесу тестування.

Метрики для включення в процес тестування повинні вибиратися таким чином, щоб слугувати об'єктивними індикаторами стану виконання процесу тестування і поточного стану ПС.

 

Випадкове тестування.

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

 

20.Техніки орієнтовані на код.