Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы на вопросы зачета / Ответы на вопросы зачета по ТПО

.pdf
Скачиваний:
74
Добавлен:
29.03.2022
Размер:
1.15 Mб
Скачать

 

Зачетные вопросы

© Kovalenko Leonid

 

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

 

1.

Способы обеспечения качества программного продукта ...........................

3

2.

Организация тестирования.............................................................................

 

3

3.

Спецификация программы .............................................................................

 

3

4.

Разработка тестов ............................................................................................

 

4

5.

Управляющий граф программы ....................................................................

 

5

6.

Основные проблемы тестирования ...............................................................

 

5

7.

Критерии выбора тестов.................................................................................

 

6

8.

Требования к идеальному критерию.............................................................

 

6

9.

Классы критериев............................................................................................

 

6

10.

Структурные критерии..................................................................................

 

7

11.

Функциональные критерии...........................................................................

 

7

12.

Стохастические критерии .............................................................................

 

8

13.

Мутационный критерий ................................................................................

 

9

14.

Оценка покрытия программы и проекта ...................................................

 

10

15.

Методика интегральной оценки тестирования.........................................

 

10

16.

Разновидности тестирования......................................................................

 

11

17.

Пользовательское тестирование.................................................................

 

12

18.Качественные и количественные требования согласованности по

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

13

19. Модульное тестирование ............................................................................

14

20.Особенности интеграционного тестирования для объектно-

ориентированного программирования................................................................

14

21.

Системное тестирование .............................................................................

15

22.

Комбинирование уровней тестирования ...................................................

16

23.

Особенности индустриального тестирования ..........................................

17

24.

Автоматизация тестирования .....................................................................

17

25.

Издержки тестирования ..............................................................................

18

26.

Качество программного продукта..............................................................

18

27.

Фазы процесса тестирования......................................................................

19

28.

Планирование тестирования.......................................................................

19

29.

Типы тестирования ......................................................................................

20

30.

Подходы к разработке тестов .....................................................................

20

31.

Документация и сопровождение тестов ....................................................

21

32.

Оценка качества тестов ...............................................................................

22

33.

Нагрузочное тестирование..........................................................................

23

34.

Основные этапы нагрузочного тестирования ...........................................

24

35.

Основные виды нагрузочных тестов .........................................................

24

36.Основные инструменты формирования нагрузки и сбора статистики при

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

25

37.

Регрессионное тестирование ......................................................................

25

38.

Цели и задачи регрессионного тестирования ...........................................

26

39.

Виды регрессионного тестирования ..........................................................

26

40.

Управляемое регрессионное тестирование...............................................

27

41.

Обоснование корректности метода отбора тестов ...................................

27

42.

Классификация тестов при отборе.............................................................

27

43.

Возможности повторного использования тестов .....................................

28

44.

Классификация выборочных методов .......................................................

29

2

1. Способы обеспечения качества программного продукта

Качество ПО характеризуется набором свойств, определяющих,

насколько продукт «хорош» с точки зрения заинтересованных сторон.

Заинтересованные стороны: заказчик продукта, спонсор, конечный пользователь, разработчики и тестировщики продукта…

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

Понятие качества весьма субъективно.

Качество ПО можно определить неформально как способность выполнять заявленные функции и не выполнять другие, не объявленные функции.

Тестирование не позиционируется в качестве единственного способа обеспечения качества. Оно является частью общей системы обеспечения качества продукта.

2. Организация тестирования

Тестирование осуществляется на заданном заранее множестве входных данных и множестве предполагаемых результатов — ( , ), которые задают график желаемой функции.

Задача организации тестирования в том, чтобы определить,

соответствуют ли выходные данные, вычисленные по входным данным,

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

3. Спецификация программы

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

Спецификация — точное, однозначное, недвусмысленное задание для программиста, написанное постановщиком задачи.

Свойства спецификации: полнота, точность и понятность. 3

Спецификация программы, вычисляющей степень числа:

На вход программа принимает два параметра: — число, —

степень;

Результат вычисления выводится на консоль;

Значения числа и степени должны быть целыми;

Значения числа, возводимого в степень, должны лежать в диапазоне

[0 … 99];

Значения степени должны лежать в диапазоне — [1 … 10];

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

4.Разработка тестов

1.Определение целей: какие части системы будут тестироваться, какие аспекты их работы будут выбраны для проверки и т.п.

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

3.Ручное или автоматизированное тестирование. Если автоматизированное, то ручная разработка тестов или генерация тестов.

4.Выполнение тестов — реализация тестовых циклов.

5.Анализ результатов.

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

параметров.

Для (числа, возводимого в степень):

1.< 0 (ошибочное)

2.> 99 (ошибочное)

3.— не число (ошибочное)

4.0 ≤ ≤ 99 (корректное)

4

Для (степени числа):

1.< 1 (ошибочное)

2.> 10 (ошибочное)

3.— не число (ошибочное)

4.1 ≤ ≤ 10 (корректное)

5.Управляющий граф программы

Управляющий граф программы — все возможные варианты путей выполнения кода программы.

Трасса — это «сохраненный путь» на управляющем графе программы (с

записями о состояниях переменных в заданных точках).

Рисунок 5.1

6. Основные проблемы тестирования

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

Задача о выборе конечного набора тестов в общем случае неразрешима,

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

Основное требование к тестам — программа на любом из них не должна зацикливаться. Заранее гарантировать останов на любом тесте нельзя — не существует общего метода решения этого вопроса.

5

7. Критерии выбора тестов

Критерий выбора тестов — решающее правило выбора состава и содержания проверок.

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

Целесообразно выполнять приближение к общему («идеальному»)

критерию через совокупность частных критериев.

8.Требования к идеальному критерию

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

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

Критерий должен быть надежным, т.е. любые два множества тестов,

удовлетворяющих ему, одновременно должны раскрывать или не раскрывать ошибки программы;

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

9.Классы критериев

Структурные критерии используют информацию о структуре программы (критерии «белого ящика»);

Функциональные критерии формулируются в описании требований к программному изделию (критерии «черного ящика»);

Критерии стохастического тестирования формулируются в терминах проверки наличия заданных свойств у приложения средствами проверки некоторой статистической гипотезы;

Мутационные критерии ориентированы на проверку свойств программного изделия на основе подхода Монте-Карло.

6

10.Структурные критерии

Структурные критерии основываются на основных элементах

управляющего графа программы, операторах, ветвях, путях:

Критерий тестирования команд (критерий С0) — набор тестов в совокупности должен обеспечить прохождение каждой команды не менее одного раза. Слабый критерий. Используется в больших программных системах, где другие критерии применить невозможно.

Критерий тестирования ветвей (критерий С1) — набор тестов в совокупности должен обеспечить прохождение каждой ветви не менее одного раза. Сильный и экономичный критерий, поскольку множество ветвей в тестируемом приложении конечно и не велико,

используется в системах автоматизации тестирования.

Критерий тестирования путей (критерий С2) — набор тестов в совокупности должен обеспечить прохождение каждого пути не менее одного раза. Если программа содержит цикл, то число итераций ограничивается константой (часто — двум или количеством классов выходных путей).

11.Функциональные критерии

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

При функциональном тестировании преимущественно используется метод «черного ящика».

Основная трудность функционального тестирования — трудоемкость работы тестировщиков, поскольку документы, фиксирующие требования к программному изделию, как правило, достаточно объемны.

Виды функциональных критериев:

Тестирование пунктов спецификации — проверка каждого

тестируемого пункта не менее одного раза.

7

Тестирование классов входных данных — проверка представителя каждого класса входных данных не менее одного раза.

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

Тестирование классов выходных данных — проверка представителя каждого класса выходных данных не менее одного раза.

Тестирование функций — проверка каждого действия, реализуемого тестируемым модулем, не менее одного раза.

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

12.Стохастические критерии

Стохастические критерии применяются при тестировании сложных программных комплексов — когда набор детерминированных тестов ( , )

имеет очень большую мощность.

Методика применения стохастических критериев:

1.Разработать программы;

2.Вычислить независимым способом значения { } для соответствующих входных сигналов { } и получить тестовый набор

( , ).

3.Протестировать приложение на тестовом наборе ( , ), используя детерминированный и стохастический способы контроля результатов:

Детерминированный (по случайным входным сигналам,

сгенерированным имитатором).

Стохастический (по заранее известному закону распределения результатов).

8

Критерии стохастического тестирования:

Статистические методы принятия решений о совпадении гипотез о распределении случайных величин:

o Метод Стьюдента (St),

o Метод Хи-квадрат (χ2) и т.п.

Метод оценки скорости выявления ошибок; основан на модели,

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

Рисунок 12.1

13.Мутационный критерий

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

Мутации — мелкие ошибки в программе;

Мутанты — программы, отличающиеся друг от друга мутациями;

Метод мутационного тестирования — в разрабатываемую программу

вносят мутации, т.е. искусственно создают программы-мутанты 1,

2..., а затем программа и ее мутанты тестируются на одном и том

же наборе тестов ( , ).

Если на наборе ( , ) подтверждается правильность программы и

выявляются все внесенные в программы-мутанты ошибки, то набор тестов

( , ) соответствует мутационному критерию, а тестируемая программа объявляется правильной.

9

Если некоторые мутанты не выявили всех мутаций, то надо расширять

набор тестов ( , ) и продолжать тестирование.

14.Оценка покрытия программы и проекта

Тестирование программы по некоторому критерию

— покрытие

множества

компонентов

программы

= { …

}

множеством

 

 

 

 

 

 

 

 

1

 

 

неизбыточных тестов = {

},

где тест

неизбыточен, если существует

 

 

 

1

 

 

 

 

 

 

покрытый им компонент из ,

не покрытый ни одним из предыдущих

 

 

 

 

 

 

 

 

 

 

 

тестов

. . .

 

; каждому

 

соответствует

неизбыточный путь —

1

−1

 

 

 

 

 

 

 

 

последовательность вершин от входа до выхода.

 

 

( , )

— сложность

тестирования

 

по критерию

, измеряемая

максимальным числом неизбыточных тестов, покрывающих все элементы множества .

( , , ) — остаточная сложность тестирования по критерию ,

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

Оценка степени оттестированности по критерию .

( , , ) =

Критерий окончания тестирования: ( , , ) ≥ , где — уровень оттестированности, заданный в требованиях (0 ≤ ≤ 1).

Рисунок 14.1

15.Методика интегральной оценки тестирования

1.Выбор критерия и значения уровня оттестированности

(приемочной оценки тестированности) ПО.

10