4. Про покрытие
Coverage =
Number of exercised items
Total number of items
x 100 %
ISTQ
B
ISTQB: http://stqbexamcertification.com/what-is-test-coverage-in-software-testing-its-advantages-and-disadvantages/
Тестовое покрытие — мера тестирования, присущая
определенному тестовому набору.
5. Про покрытие
Coverage =
Number of exercised items
Total number of items
x 100 %
ISTQ
B
ISTQB: http://stqbexamcertification.com/what-is-test-coverage-in-software-testing-its-advantages-and-disadvantages/
Тестовое покрытие — мера тестирования, присущая
определенному тестовому набору.
При подсчете покрытия недостаточно довольствоваться
одним аспектом. Надо смотреть на тестируемый объект в
разных измерениях (dimensions).
8. Зачем покрытие
Показывает места где нет
тестирования
Даёт идеи для новых тестовых
сценариев / тестовых данных
Помогает сбалансировать тесты и
тестовые наборы
9. Спор
Send
У вас 200 тестов, а у нас 2,000
Ха! У вас 2,000 кейсов, у нас 4,000
Ха-ха! У вас 4,000 проверок, а у
нас 20,000. Съел?
Ха-ха-ха! У вас 4,000 уникальных
проверок и у нас 4,000 уникальных.
У нас 100% эффективность!
Зато у вас 20 человек их писало,
а у нас 5.
EditYet Another QA Lead
10. Спор
Send
У вас 200 тестов, а у нас 2,000
Ха! У вас 2,000 кейсов, у нас 4,000
Ха-ха! У вас 4,000 проверок, а у
нас 20,000. Съел?
Ха-ха-ха! У вас 4,000 уникальных
проверок и у нас 4,000 уникальных.
У нас 100% эффективность!
Зато у вас 20 человек их писало,
а у нас 5.
Ладно, ты победил —
ты на 200 грамм тяжелее
EditYet Another QA Lead
11. Зачем покрытие
Показывает места где нет
тестирования
Даёт идеи для новых тестовых
сценариев / тестовых данных
Помогает сбалансировать тесты и
тестовые наборы
Оценивает качество самих автотестов
и меру их надёжности
12. Зачем покрытие
Показывает места где нет
тестирования
Даёт идеи для новых тестовых
сценариев / тестовых данных
Помогает сбалансировать тесты и
тестовые наборы
Оценивает качество самих автотестов
и меру их надёжности
Отражает скорость написания тестов и
помогает в планировании работ
13. @story-1
Scenario: As a user I want ..
Given I am ...
When I do …
Then I see ...
@story-126
Scenario: As a user I want ..
Given I am ...
When I do …
Then I see ...
Про наше покрытие
User Story 1
AC#1
...
AC#N
...
User Story 126
AC#1
...
AC#N
@story-1 @story-126
Scenario: As a user I want ..
Given I am ...
When I do …
Then I see ...
14. Про модели
Модель - это система, исследование которой служит средством
для получения информации о другой системе, являясь её
упрощённым представлением
15. Про модели
Модель - это система, исследование которой служит средством
для получения информации о другой системе, являясь её
упрощённым представлением
21. Чтобы модели работали
Надо постоянно проверять
их валидность
(постоянно ==
автоматически)
Т. е. они должны быть легки
для понимания машинами
22. Чтобы модели работали
Надо постоянно проверять
их валидность
(постоянно ==
автоматически)
Т. е. они должны быть легки
для понимания машинами
Они должны быть легки
для понимания людьми
23. Чтобы модели работали
Надо постоянно проверять
их валидность
(постоянно ==
автоматически)
Т. е. они должны быть легки
для понимания машинами
Они должны быть легки
для понимания людьми
Они должны быть
легки для быстрого
внесения изменений
24. Чтобы модели работали
Надо постоянно проверять
их валидность
(постоянно ==
автоматически)
Т. е. они должны быть легки
для понимания машинами
Они должны быть легки
для понимания людьми
Они должны быть
легки для быстрого
внесения изменений
DSLDSL
EngineEngine
VisualizationVisualization
26. Про PlantUML
EngineEngineDSLDSL VisualizationVisualization
Простой язык создания диаграмм
Легко читать, писать и генерировать в автоматическом режиме
Отслеживание изменений
Например в системе контроля версий или IDE
Поддержка языков разметки
HTML, wiki-like
Стили элементов и связей
skinparam — что-то на подобии лёгкого CSS — цвета и классы
С-lang style preprocessing
!include(file.puml), !define(set_of_objects), !ifdef(something)
Поддержка встроенных изображений
<img filename.jpg>, спрайты и openiconic
27. Про PlantUML
Main Admin
Use the application
User
Start
Some note
This note is connected
to several objects.
@startuml
scale 1.2
:Main Admin: as Admin
(Use the application) as (Use)
User -> (Start)
User --> (Use)
Admin ---> (Use)
note right of (Use) : Some note
note "This note is connectednto several objects." as N2
(Start) .. N2
N2 .. (Use)
@enduml
EngineEngineDSLDSL VisualizationVisualization
29. Про PlantUML
EngineEngineDSLDSL VisualizationVisualization
Интеграция с IDE
NetBeans, Eclipse, IntelliJ Idea etc
Интеграция с Wiki движками
MediaWiki, Confluence, DokuWiki, Redmine, Trac etc
Online diagramming
plantuml.com, Google Docs etc
Запуск из командной строки или как GUI-приложение
java -jar plantuml.jar -help ИЛИ java -jar plantuml.jar -gui
Интеграция с языками программирования и инструментами
python, JS, ant, gradle etc
Работа в разных редакторах
vim, emacs, word, ОО etc
30. Про JetBrains Plugin
Link: https://github.com/esteinberg/plantuml4idea
EngineEngineDSLDSL VisualizationVisualization
31. Про PlantUML
VisualizationVisualizationDSLDSL EngineEngine
7 основных UML диаграмм
State, Activity, UseCase, Class, Object, Component, Sequence
Различные форматы картинок
Растровый(PNG), векторный(SVG), PS, LaTeX
Обычные диаграммы и графики
Используется библиотека jcckit.sourceforge.net
Встраивание в сгенерённую документацию
JavaDoc, Sphinx, Doxygen etc
Необычные не-диаграммы
ASCII диаграммы, GUI-прототипирование, XEarth
Модель в XMI-формате для обмена с другими UML тулами
Печально, но XMI у всех свой, уж поверьте
32. PlantUML мало?
Кросс-платформенный
Работает там, где работает Java и Graphviz
С открытым исходным кодом
http://sourceforge.net/projects/plantuml/
Бесплатный по лицензии GPL
Не нравится GPL? Есть LGPL, Apache, Eclipse и даже MIT версии
Активно развивается
Не менее 1-го релиза в месяц
Маленький
На данный момент plantuml.jar занимает 2.5Mb
Умеет генерить судоку
Killer feature!
VisualizationVisualizationDSLDSL EngineEngine
33. @story-1
Scenario: As a user I want ..
Given I am ...
When I do …
Then I see ...
@story-126
Scenario: As a user I want ..
Given I am ...
When I do …
Then I see ...
Про наше покрытие
User Story 1
AC#1
...
AC#N
...
User Story 126
AC#1
...
AC#N
@story-1 @story-126
Scenario: As a user I want ..
Given I am ...
When I do …
Then I see ...
46. Про Архитектуру
Единое место переключения текущего экрана/страницы
PageManager.setCurrentPage(pageId)
Объектная модель страниц
aka PageObject
Деление на действия и переходы
action(:input_password)
transition(:login, :MyProfilePage)
1 действие == 1 метод в коде тестов
aka DRY — Don't Repeat Yourself
Возможность понять какое действие было сделано
callback или ActionManager
на крайний случай подойдет и логгирование