Случайное тестирование (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.Техніки орієнтовані на код.