Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Содержание:

Содержание

Содержание:Позитивные и негативные тестыТехники анализа классов эквивалентности и граничных значенийПокрытие кода2
02 Июля 2014Стельмашенко СветланаПозитивные и негативные тесты. Классы данных для тестов. Классы эквивалентности. Покрытие программного кода Содержание:Позитивные и негативные тестыТехники анализа классов эквивалентности и граничных значенийПокрытие кода2 Позитивные тестыПредполагают нормальное, «правильное»использование и/илиработу системы. Негативные тестыПроверяют ситуацию, связанную с:• потенциальной ошибкой (error) пользователя и/или• потенциальным дефектом (failure) в системе Что нужнее?Paallels Техники анализа классов эквивалентности и граничных значенийМогут использоваться на разных уровнях – ЦельУменьшает число тестов с высокой степенью уверенности в том, что другие переменные/комбинации ==Два теста считаются эквивалентными, если приводят к одному и тому же результату.- Классы эквивалентностиэто одно или больше значений ввода, к которым ПО применяет одинаковую логику. Техника анализа граничных значенийТехника проверки ошибок на границах классов эквивалентности.Confideial Алгоритм:выделить классы эквивалентности. определить граничные значения этих классов.определить к какому классу будет Покрытие кода (code coverage)насколько исходный код программы был протестирован.Виды:Покрытие требований к ПО Уровни покрытия:По строкам программного кода (Statement Coverage)каждый оператор должен быть выполнен хотя Уровни покрытия:По веткам условных операторов (Decision Coverage)Каждая точка входа и выхода в Уровни покрытия:Покрытие по условиям (Condition Coverage)каждая компонента логического условия в результате выполнения Уровни покрытия:Покрытие по веткам/условиям (Condition/Decision Coverage)для обеспечения полного покрытия необходимо, чтобы как Уровни покрытия:Покрытие по всем условиям (Multiple Condition Coverage)Проверяются все возможные наборы значений Уровни покрытия:Метод MC/DC для уменьшения количества тестовых примеров при 3-м уровне покрытия Уровни покрытия:if (A || B) { if (C)  {  ... !!!К анализу покрытия программного кода можно приступать только после полного покрытия требований. Полное Покрытие кода:покрытие операторов: каждый оператор должен быть выполнен как минимум один раз.покрытие Анализ покрытия кодакакое количество кода работает с автоматическими тестами, выражается в %. Отчет о покрытии - список структурных элементов покрываемого кода (функций или методов), Parallels Confidential Покрытие пользовательского интерфейсафункциональное покрытие - требований к UIструктурное покрытие - каждый Функциональное тестирование пользовательских интерфейсов5 фаз:анализ требований к пользовательскому интерфейсу;разработка тест-требований и тест-планов Требования к пользовательскому интерфейсу к внешнему виду пользовательского интерфейса и формам взаимодействия с Тестирование удобства использования пользовательских интерфейсов (usability)Влияющие факторы :легкость обучения - быстро этапы тестирования удобства использования пользовательского интерфейса:Исследовательское - после формулирования требований к системе 10  характеристик удобного UI:Наблюдаемость состояния системы (оповещение). Соотнесение с реальным миром (терминология)Пользовательское Вопросы?Стельмашенко Светланаstsvisa@gmail.com30 Что почитать по теме:Practitioner’s Guide to Software Test Design (Lee Copeland). Тестирование
Слайды презентации

Слайд 2 Содержание:
Позитивные и негативные тесты
Техники анализа классов эквивалентности и граничных

Содержание:Позитивные и негативные тестыТехники анализа классов эквивалентности и граничных значенийПокрытие кода2

значений
Покрытие кода

2


Слайд 3 Позитивные тесты
Предполагают нормальное, «правильное»
использование и/или
работу системы.

Позитивные тестыПредполагают нормальное, «правильное»использование и/илиработу системы.

Слайд 4 Негативные тесты
Проверяют ситуацию, связанную с:
• потенциальной ошибкой (error) пользователя

Негативные тестыПроверяют ситуацию, связанную с:• потенциальной ошибкой (error) пользователя и/или• потенциальным дефектом (failure) в системе

и/или
• потенциальным дефектом (failure) в системе


Слайд 5 Что нужнее?

Paallels

Что нужнее?Paallels

Слайд 6 Техники анализа классов эквивалентности и граничных значений
Могут использоваться

Техники анализа классов эквивалентности и граничных значенийМогут использоваться на разных уровнях

на разных уровнях – от отдельных функций до целого

продукта.
Многие тестировщики пользуются ими интуитивно каждый день.
Неправильное использование этих техник может привести к пропуску серьезных ошибок.

Почему?


Слайд 7 Цель
Уменьшает число тестов с высокой степенью уверенности в

ЦельУменьшает число тестов с высокой степенью уверенности в том, что другие

том, что другие переменные/комбинации из того же диапазона приведут

к аналогичному результату.
Увеличивает тестовое покрытие


Parallels Confidential


Слайд 8 ==
Два теста считаются эквивалентными, если приводят к одному

==Два теста считаются эквивалентными, если приводят к одному и тому же

и тому же результату.
- Они тестируют одну и ту

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


Prallels


Слайд 9 Классы эквивалентности
это одно или больше значений ввода, к

Классы эквивалентностиэто одно или больше значений ввода, к которым ПО применяет одинаковую логику.

которым ПО применяет одинаковую логику.





Слайд 10 Техника анализа граничных значений
Техника проверки ошибок на границах

Техника анализа граничных значенийТехника проверки ошибок на границах классов эквивалентности.Confideial

классов эквивалентности.



Confideial


Слайд 11 Алгоритм:
выделить классы эквивалентности.
определить граничные значения этих классов.
определить

Алгоритм:выделить классы эквивалентности. определить граничные значения этих классов.определить к какому классу

к какому классу будет относиться каждая граница.
Определить уникальные данные

(исключения)
Для каждой границы нам нужно провести тесты по проверке значения до границы, на границе, и сразу после границы.


Слайд 12 Покрытие кода (code coverage)
насколько исходный код программы был

Покрытие кода (code coverage)насколько исходный код программы был протестирован.Виды:Покрытие требований к

протестирован.
Виды:
Покрытие требований к ПО (на основе спецификаций, документаций, здравого

смысла)
Покрытие кода (белый ящик)


Parallels Confidential

Tcov = (Lcov/Ltotal) * 100%
где:
Tcov - тестовое покрытие
Lcov - количество требований, проверяемых тест кейсами
Ltotal - общее количество требований

Tcov = (Ltc/Lcode) * 100%
где:
Tcov - тестовое покрытие
Ltc - кол-ва строк кода, покрытых тестами
Lcode - общее кол-во строк кода.


Слайд 13 Уровни покрытия:
По строкам программного кода (Statement Coverage)
каждый оператор

Уровни покрытия:По строкам программного кода (Statement Coverage)каждый оператор должен быть выполнен

должен быть выполнен хотя бы один раз.
В данном

фрагменте кода входными переменными являются prev и ShowMessage.

if (prev == "оператор" || prev == "унарный оператор") {
if (ShowMessage) {
MessageBox.Show(“text1");
} else {
Log.Write(" text2 ");
}
Program.res = 4;
return "&Error 04";
}

Слайд 14 Уровни покрытия:
По веткам условных операторов (Decision Coverage)
Каждая точка

Уровни покрытия:По веткам условных операторов (Decision Coverage)Каждая точка входа и выхода

входа и выхода в программе и во всех ее

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

первый условный оператор if имеет неявную ветвь – пустую ветвь else. Для обеспечения покрытия по ветвям необходимо покрывать и пустые ветви.


Слайд 15 Уровни покрытия:
Покрытие по условиям (Condition Coverage)
каждая компонента логического

Уровни покрытия:Покрытие по условиям (Condition Coverage)каждая компонента логического условия в результате

условия в результате выполнения тестовых примеров должна принимать все

возможные значения, но при этом не требуется, чтобы само логическое условие принимало все возможные значения. 

if (condition1 || condition2)
MethodA();
else
MethodB();


Слайд 16 Уровни покрытия:
Покрытие по веткам/условиям (Condition/Decision Coverage)
для обеспечения полного

Уровни покрытия:Покрытие по веткам/условиям (Condition/Decision Coverage)для обеспечения полного покрытия необходимо, чтобы

покрытия необходимо, чтобы как логическое условие, так и каждая

его компонента приняла все возможные значения.

if (condition1 || condition2)
MethodA();
else
MethodB();


Слайд 17 Уровни покрытия:
Покрытие по всем условиям (Multiple Condition Coverage)
Проверяются

Уровни покрытия:Покрытие по всем условиям (Multiple Condition Coverage)Проверяются все возможные наборы

все возможные наборы значений компонент логических условий. Т.е. в

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

Метод редко применяется на практике в связи с его сложностью и избыточностью.

Слайд 18 Уровни покрытия:
Метод MC/DC для уменьшения количества тестовых примеров

Уровни покрытия:Метод MC/DC для уменьшения количества тестовых примеров при 3-м уровне

при 3-м уровне покрытия кода (Для уменьшения количества тестовых

примеров Modified Condition/Decision Coverage )
Для обеспечения полного покрытия по этому методу необходимо выполнение следующих условий:
каждое логическое условие должно принимать все возможные значения;
каждая компонента логического условия должна хотя бы один раз принимать все возможные значения;
должно быть показано независимое влияние каждой из компонент на значение логического условия, т.е. влияние при фиксированных значениях остальных компонент.
Покрытие по этой метрике требует достаточно большого количества тестов для того, чтобы проверить каждое условие, которое может повлиять на результат выражения, однако это количество значительно меньше, чем требуемое для метода покрытия по всем условиям.

Слайд 19 Уровни покрытия:
if (A || B)
{
if (C)

Уровни покрытия:if (A || B) { if (C) { ... }


{
...
}
else
{

...
}
}

Для тестирования первого условия по MC/DC надо показать независимость результата (т.е. функции A || B ) от каждого аргумента. Соответственно, для этого используются три тестовых примера:

A = 0, B = 0, A || B = 0 (начальное значение)
A = 1, B = 0, A || B = 1 (показано влияние аргумента A )
A = 0, B = 1, A || B = 1 (показано влияние аргумента B )

Для тестирования ветвей (входящего в MC/DC) в зависимости от условия C необходимо, чтобы в тестовых примерах C принимало значение как true, так и false.


Слайд 20 !!!
К анализу покрытия программного кода можно приступать только

!!!К анализу покрытия программного кода можно приступать только после полного покрытия

после полного покрытия требований. 
Полное покрытие программного кода не гарантирует

того, что тесты проверяют все требования к системе.

Слайд 21 Покрытие кода:
покрытие операторов: каждый оператор должен быть выполнен

Покрытие кода:покрытие операторов: каждый оператор должен быть выполнен как минимум один

как минимум один раз.
покрытие условий: каждое условие, имеющее TRUE

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

Слайд 22 Анализ покрытия кода
какое количество кода работает с автоматическими

Анализ покрытия кодакакое количество кода работает с автоматическими тестами, выражается в

тестами, выражается в %. 100% покрытие означает, что каждая

строка кода была вызвана в тестах хотя бы один раз.

Слайд 23 Отчет о покрытии - список структурных элементов покрываемого

Отчет о покрытии - список структурных элементов покрываемого кода (функций или

кода (функций или методов), содержащий для каждого структурного элемента

информацию:

Название функции или метода
Тип покрытия (по строкам, по ветвям, MC/DC или иной)
Количество покрываемых элементов в функции или методе (строк, ветвей, логических условий)
Степень покрытия функции или метода (в процентах или в абсолютном выражении)
Список непокрытых элементов (в виде участков непокрытого программного кода с номерами строк)
Заголовочную информацию и общий итог - общую степень покрытия всех функций, для которых собирается информация о покрытии.


Parallels Confidential


Слайд 24
Parallels Confidential

Parallels Confidential

Слайд 26 Покрытие пользовательского интерфейса
функциональное покрытие - требований к

Покрытие пользовательского интерфейсафункциональное покрытие - требований к UIструктурное покрытие -

UI
структурное покрытие - каждый UI элемент должен быть использован

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


Parallels Confidential


Слайд 27 Функциональное тестирование пользовательских интерфейсов
5 фаз:
анализ требований к пользовательскому

Функциональное тестирование пользовательских интерфейсов5 фаз:анализ требований к пользовательскому интерфейсу;разработка тест-требований и

интерфейсу;
разработка тест-требований и тест-планов для проверки пользовательского интерфейса;
выполнение тест-кейсов

и сбор информации
определение полноты покрытия пользовательского интерфейса требованиями;
составление отчетов о проблемах в случае несовпадения поведения системы и требований либо в случае отсутствия требований на отдельные интерфейсные элементы.


Слайд 28 Требования к пользовательскому интерфейсу
 к внешнему виду пользовательского интерфейса

Требования к пользовательскому интерфейсу к внешнему виду пользовательского интерфейса и формам взаимодействия

и формам взаимодействия с пользователем
требования по доступу к внутренней

функциональности системы при помощи пользовательского интерфейса.

Требования к размещению элементов управления на экранных формах

Требования к содержанию и оформлению выводимых сообщений

Требования к реакции системы на ввод пользователя

Требования к времени отклика на команды пользователя

Требования к форматам ввода, в т.ч. определяющие реакцию системы на некорректный ввод.


Слайд 29 Тестирование удобства использования пользовательских интерфейсов (usability)
Влияющие факторы

Тестирование удобства использования пользовательских интерфейсов (usability)Влияющие факторы :легкость обучения -

:
легкость обучения - быстро ли человек учится использовать систему;
эффективность

обучения - быстро ли человек работает после обучения;
запоминаемость обучения - легко ли запоминается все, чему человек научился;
ошибки - часто ли человек допускает ошибки в работе;
общая удовлетворенность - является ли общее впечатление от работы с системой положительным.

Слайд 30 этапы тестирования удобства использования пользовательского интерфейса:
Исследовательское - после

этапы тестирования удобства использования пользовательского интерфейса:Исследовательское - после формулирования требований к

формулирования требований к системе и разработки прототипа интерфейса.
Оценочное

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

Слайд 31 10  характеристик удобного UI:
Наблюдаемость состояния системы (оповещение).
Соотнесение

10  характеристик удобного UI:Наблюдаемость состояния системы (оповещение). Соотнесение с реальным миром

с реальным миром (терминология)
Пользовательское управление и свобода действий (дуракоустойчивость)
Целостность

и стандарты (терминология).
Помощь пользователям в распознавании, диагностике и устранении ошибок.
Предотвращение ошибок (дизайн + валидация)
Распознавание, а не вспоминание.
Гибкость и эффективность использования (hotkeys).
Эстетичный и минимально необходимый дизайн.
Помощь и документация.

Слайд 32 Вопросы?
Стельмашенко Светлана
stsvisa@gmail.com
30

Вопросы?Стельмашенко Светланаstsvisa@gmail.com30

  • Имя файла: soderzhanie.pptx
  • Количество просмотров: 131
  • Количество скачиваний: 0