Инструментарий Разработчика презентация

Содержание

Что будем обсуждать Agile-Автоматизация Хорошие тесты Инструменты для тестирования

Слайд 1ИНСТРУМЕНТАРИЙ РАЗРАБОТЧИКА
Кардаш Николай
red
green
refactor



Agile


Слайд 2Что будем обсуждать
Agile-Автоматизация
Хорошие тесты
Инструменты для тестирования


Слайд 3Что НЕ будем обсуждать
Какой именно фреймворк для юнит тестирования круче?
Какой tool

круче?



Слайд 4Начнем?


Слайд 5Обычные средства автоматизации
SilkTest
WinRunner


Почему не подходят?


Слайд 6Обычные средства автоматизации
Процесс


Слайд 7Обычные средства автоматизации
[+] appstate ActTestStart() basedon none //none
[-] if(!ActivTestAdministration.exists())
[ ] ActivTestAdministration.Invoke()
[-]

else
[ ] ActivTestAdministration.SetActive()
[ ]
[+] appstate AfterSuperLogin() basedon ActTestStart
[ ] ActivTestAdministration.SetActive()
[ ] LogIn.Invoke()
[ ] ConnectionType = LogIn.Connection.ConnectionTable.RadioWebService.GetContents()[GetConnecType]
[ ] Login(System, Administrator, Server, ConnectionType)
[ ] ActivTestAdministration.SetActive()

[ ]
[ ] ////-----------------------//TesCases//---------------------------------------
[ ] //-------------------------------------------------------------------------
[-] //Testcases for WinAdminShell
[+] testcase TLoginFirst()appstate AfterSuperLogin
[-] do
[ ] ActivTestAdministration.Help.Contents.Pick()
[ ] ActivTestAdministrationShell.Close()
[ ] ActivTestAdministration.Exit()
[-] except
[ ] Print("Failed")
[ ] ActivTestAdministration.Exit()
[ ]
[ ]
[+] testcase TLogout() appstate none
[-] do
[ ] Logout()
[-] except
[ ] Print("Failed")
[ ]
[ ]

[+] testcase TCreateHierarhy()appstate SystemAdministratorStart
[-] do
[ ] SuperUser = SystemAdministration.VerticalSplitter.SWFSplitter.HierarchyPanel.OrganisationalHierarchy.GetContents()[1]
[ ] RecoveryInfo.HierarchyLevel = SuperUser
[ ] CreateHNode(IDHierarchy[1], NameHierarchy[1])
[ ] RecoveryInfo.HierarchyLevel = SuperUser+"/"+NameHierarchy[1]
[ ] CreateHNode(IDHierarchy[2], NameHierarchy[2])
[ ] RecoveryInfo.HierarchyLevel = SuperUser+"/"+NameHierarchy[1]+"/"+NameHierarchy[2]
[ ] CreateHNode(IDHierarchy[3], NameHierarchy[3])
[ ] RecoveryInfo.HierarchyLevel = SuperUser+"/"+NameHierarchy[1]+"/"+NameHierarchy[2]+"/"+NameHierarchy[3]
[ ] CreateHNode(IDHierarchy[4], NameHierarchy[4])
[ ] RecoveryInfo.HierarchyLevel = SuperUser+"/"+NameHierarchy[1]+"/"+NameHierarchy[2]+"/"+NameHierarchy[3]+"/"+NameHierarchy[4]
[ ] CreateHNode(IDHierarchy[5], NameHierarchy[5])
[ ] RecoveryInfo.HierarchyLevel = SuperUser+"/"+NameHierarchy[1]+"/"+NameHierarchy[2]+"/"+NameHierarchy[3]+"/"+NameHierarchy[4]+"/"+NameHierarchy[5]
[ ]
[ ] EditTestCentreLab()
[ ]

[ ] EditTestCentreLab()
[ ]
[ ] CreateHNode(IDHierarchy[6], NameHierarchy[6])
[ ] RecoveryInfo.HierarchyLevel = SuperUser+"/"+NameHierarchy[1]+"/"+NameHierarchy[2]+"/"+NameHierarchy[3]+"/"+NameHierarchy[4]+"/"+NameHierarchy[5]+"/"+NameHierarchy[6]
[ ] SystemAdministration.VerticalSplitter.SWFSplitter.HierarchyPanel.OrganisationalHierarchy.Select (SuperUser+"/"+NameHierarchy[1]+"/"+NameHierarchy[2]+"/"+NameHierarchy[3]+"/"+NameHierarchy[4])
[ ] CreateHNode(IDHierarchy[7], NameHierarchy[7])
[ ] RecoveryInfo.HierarchyLevel = SuperUser+"/"+NameHierarchy[1]+"/"+NameHierarchy[2]+"/"+NameHierarchy[3]+"/"+NameHierarchy[4]+"/"+NameHierarchy[7]
[ ] SystemAdministration.VerticalSplitter.SWFSplitter.HierarchyPanel.OrganisationalHierarchy.Select (SuperUser+"/"+NameHierarchy[1]+"/"+NameHierarchy[2]+"/"+NameHierarchy[3]+"/"+NameHierarchy[4])
[ ] CreateHNode(IDHierarchy[8], NameHierarchy[8])
[ ] RecoveryInfo.HierarchyLevel = SuperUser+"/"+NameHierarchy[1]+"/"+NameHierarchy[2]+"/"+NameHierarchy[3]+"/"+NameHierarchy[4]+"/"+NameHierarchy[8]
[ ]
[ ] ActivTestAdministration.Exit()
[-] except
[ ] Print("Failed")
[ ] ActivTestAdministration.Exit()
[ ]

[+] testcase TManageUserAttributes()appstate UserAttributesStart
[-] do
[ ] UserAttributes()
[ ] ActivTestAdministration.Exit()
[-] except
[ ] Print("Failed")
[ ] ActivTestAdministration.Exit()
[ ]
[+] testcase TCreateUKAdmin()appstate SystemAdministratorStart
[-] do
[ ] CreateAdministrator(SuperUser+"/"+NameHierarchy[1], ukadmin, ukadmin, NameHierarchy[1], "Admin", ukadmin, 1, NonePermission)
[ ] ActivTestAdministration.Exit()
[-] except
[ ] Print("Failed")
[ ] ActivTestAdministration.Exit()
[ ]
[ ]
[+] testcase TPackageInstallation()appstate ActTestStart
[-] do
[ ] ActivTestAdministration.SetActive()
[ ] LogIn.Invoke()
[ ] ConnectionType = LogIn.Connection.ConnectionTable.RadioWebService.GetContents()[GetConnecType]
[ ] Login(ukadmin, ukadmin, Server, ConnectionType)//Change login information
[ ] //--------------------------------------------------------
[ ] Agent.SetOption (OPT_WINDOW_TIMEOUT, 1500)

[ ] ActivTestAdministration.SetActive()
[ ] PackageInstallation(Packages)//Change path to the packages
[ ] Agent.SetOption (OPT_WINDOW_TIMEOUT, 15)
[ ] ActivTestAdministration.Exit()
[-] except
[ ] Print("Failed")
[ ] ActivTestAdministration.Exit()
[ ]
[ ]
[ ]
[+] testcase TPacAssignment()appstate ActTestStart
[-] do
[ ] ActivTestAdministration.SetActive()
[ ] LogIn.Invoke()
[ ] ConnectionType = LogIn.Connection.ConnectionTable.RadioWebService.GetContents()[GetConnecType]
[ ] Login(ukadmin, ukadmin, Server, ConnectionType)//Change login information
[ ] ActivTestAdministration.Edit.SystemAdministration.Pick ()
[ ] SystemAdministration.VerticalSplitter.SWFSplitter.HierarchyPanel.OrganisationalHierarchy.TypeKeys ("<#Times>")
[ ] int tmp
[-] for (tmp = 2; tmp < (ListCount(NameHierarchy)-1); ++tmp)
[ ] RecoveryInfo.HierarchyLevelNum = tmp
[-] do
[ ] SystemAdministration.SetActive ()
[ ] SystemAdministration.Tools.PackageAssignment.Pick ()
[-] if(PackageAssignment.Exists())
[ ] PackageAssignment()
[-] else


Слайд 8Обычные средства автоматизации
Еще проблемы?
Знания по программированию
Лицензия
Не интересно


Слайд 9Agile-Инструментарий


Слайд 10Agile-Инструментарий
Немедленный старт
Тесты и реализация отдельно
Best Practices
Нормальные языки программирования
Профессиональный рост


Слайд 11Agile-Инструментарий
Немедленный старт


Слайд 12Agile-Инструментарий
Тесты и реализация отдельно


Слайд 13Agile-Инструментарий
Поощрять Best Practices


Слайд 14Agile-Инструментарий
Профессиональный рост


Слайд 15Что можно тестировать?
Интерфейс пользователя
Бизнес логика
Данные


Слайд 16Как начать писать тесты?
Необходимо ответить на три вопроса:
Как тестируем?
Что тестируем?
Что ожидаем?


Слайд 17Бизнес логика приложения


Слайд 18Бизнес логика приложения
Это программный код


Слайд 19От чего зависит тест?
Базы данных
Компоненты
Сервисы
Файлы
Код


Слайд 20Какие бывают тесты?
Модульный тест (unit)


Системный тест (system)
Приемочные
Интеграционные
И т.д.


Слайд 21Как написать хороший тест?
Придумайте ему хорошее имя
public void Я_очень_хороший_тест_потому_что_в_имени_много_букаф
{
//…
}
public

void Класс_должен_уметь_сравнивать_пустые_значения_с_
_непустыми_причем_пустые_должны_быть_всегда_ниже()
{
//…
}

public void ИмяФункции_выдать_ArgumentNullException_если
_передан_null()
{
//…
}


Слайд 22Как написать хороший тест?
Стандартная структура!
(1) Arrange
(2) Act
(3) Assert


Слайд 23Как написать хороший тест?
Тест – это код.
Избегайте дублирования

Проводите рефакторинг

Проводите ревью тестов



Слайд 24Как написать хороший тест?
Независимость
TEST
TEST
TEST
TEST
TEST
TEST
TEST


Слайд 25Как написать хороший тест?
Время выполнения теста


Слайд 26Тест фреймворки
Семейство xUnit фреймворков
nUnit
mbUnit
xUnit
jUnit
jsUnit
… ну очень много.


Слайд 27Mock Object Frameworks
Базы данных
Компоненты
Сервисы
Файлы
Код


Слайд 28Mock Object Frameworks
Изолируют зависимости
Базы данных
Компоненты
Сервисы
Файлы
Код


Слайд 30Данные


Слайд 31База данных
SQL – это программный код тоже!

Тест состоит из:
1
2
3
4


Слайд 33Интерфейс пользователя


Слайд 34Интерфейс пользователя
Хорошая, понятная архитектура ☺
Шаблоны проектирования (MVC, MVP, Application Controller, Mediator,

etc.)

Архитектура в стиле «as designed»

Слайд 35Интерфейст пользователя
Model View Controller (MVC)
Какие данные отображаются?

View
Controller
Model


Слайд 36Интерфейст пользователя
Архитектура в стиле «as designed»
Пишем приёмочные тесты
Устанавливаем приложение
Подготавливаем тестовые данные
Запускаем


Слайд 38Командная работа


Слайд 39Командная работа
Fitnesse


Слайд 41И так...
Тестировать можно все!
Важно – определить, какие средства удобны для вашей

команды.


Слайд 42Вопросы?


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

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

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

Что такое ThePresentation.ru?

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


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

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