Unit-тестирование и метрики покрытия кода тестами

Содержание

Слайд 2

Это очень важный слайд

Это очень важный слайд

Слайд 3

Continuous Integration

Continuous Integration

Слайд 4

Что такое unit-тесты?

Тестирование - процесс запуска/выполнения программы с целью найти ошибки. (Гленфорд

Что такое unit-тесты? Тестирование - процесс запуска/выполнения программы с целью найти ошибки.
Майерс)
Unit-тестирование - процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы.

Слайд 5

Наглядное пособие

Объект исследования – программа «Треугольник», (автор – «студент гуманитарного колледжа»)
Инструменты:
IntelliJ Idea

Наглядное пособие Объект исследования – программа «Треугольник», (автор – «студент гуманитарного колледжа»)
11 (http://www.jetbrains.com/idea/)
IDEA Code Coverage tool
TestNG Framework (http://testng.org/doc/documentation-main.html)

Слайд 6

Statements

Покрытие операторов - все операторы программы выполнены.
3 4 5
2 4 4
3 3

Statements Покрытие операторов - все операторы программы выполнены. 3 4 5 2
3
1 -1 1
Даёт 100% покрытие по операторам

Слайд 7

Code Coverage

Code Coverage

Слайд 8

Control-flow graph

Граф потока управления - в теории компиляции — множество всех возможных

Control-flow graph Граф потока управления - в теории компиляции — множество всех
путей исполнения программы, представленное в виде графa.
В графе потока управления каждый узел (вершина) графа соответствует базовому блоку — прямолинейному участку кода, не содержащего в себе ни операций передачи управления, ни точек, на которое управление передается из других частей программы. Имеется лишь 2 исключения: точка, на которую выполняется переход, является первой инструкцией в базовом блоке, и базовый блок завершается инструкцией перехода. Направленные дуги используются в графе для представления инструкций перехода.
Также, в большинстве реализаций добавлено два специализированных блока: входной блок, через который управление входит в граф и выходной блок, который завершает все пути в данном графе.

Слайд 9

Mad Skillz

Mad Skillz

Слайд 10

Branches

Покрытие ветвей - пройдены все ветви графа. Т.е. существует множество путей, проходящих

Branches Покрытие ветвей - пройдены все ветви графа. Т.е. существует множество путей,
по всем ветвям графа.

Слайд 11

Тест 3 4 5

Тест 3 4 5

Слайд 12

Добавим тест 2 4 4

Добавим тест 2 4 4

Слайд 13

Добавим тест 3 3 3

Добавим тест 3 3 3

Слайд 14

Добавим тест 1 -1 1

Добавим тест 1 -1 1

Слайд 15

Пробемы, офицер?

Пробемы, офицер?

Слайд 16

All Path testing

Покрытие всех путей в графе. В общем случае получаем почти

All Path testing Покрытие всех путей в графе. В общем случае получаем
неразрешимую задачу. Нужно выбирать репрезентативное множество. Убрать лишнюю информацию из множества: - лишние вершины - лишние ребра

Слайд 17

Более частные случаи

Multiple Conditions – покрытие предикатов. В отличие от Branches -

Более частные случаи Multiple Conditions – покрытие предикатов. В отличие от Branches
не рассматривает выход узлов решений как 1 единицу, а рассматривает каждый предикат по отдельности.
Loop coverage – покрытие циклов. Отдельно рассматриваются циклы. Они должны быть выполнены 0, 1, … max, max-1, max+1 ?

Слайд 18

Пожалуй хватит.
Спасибо за внимание!
[email protected]
[email protected]

Пожалуй хватит. Спасибо за внимание! sergey.andreev@jetbrains.com smandreev@gmail.com
Имя файла: Unit-тестирование-и-метрики-покрытия-кода-тестами.pptx
Количество просмотров: 155
Количество скачиваний: 0