Опыт автоматизации тестирования в Agile...
Transcript of Опыт автоматизации тестирования в Agile...
![Page 1: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/1.jpg)
Независимая научно-практическая конференция «Разработка ПО 2011»31 октября - 3 ноября, Москва
Зуева Татьяна
Опыт автоматизации тестирования в Agile проекте
![Page 2: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/2.jpg)
Содержание
Особенности проекта Наш подход
Сравнение средств для автоматизации тестирования UI Создание Automation framework Процессные практики
Итоги
2
![Page 3: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/3.jpg)
Особенности проекта
Клиент-серверное WPF приложение Интеграция с другими приложениями Свой GUI framework Scrum процесс
3
![Page 4: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/4.jpg)
Тестирование в проекте
Ручное тестирование
(тестировщики)
Модульные тесты на код
(разработчики)
Автоматизированное тестирование на UI
(тестировщики + разработчики)
Click to edit Master text styles Second level
Third level Fourth levelo Fifth level
4
![Page 5: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/5.jpg)
Проблемы
Нет времени “Что-то не работает…” (помощь разработчиков) Тестируемое приложение слишком часто меняется Поддержка старых тестов
5
![Page 6: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/6.jpg)
Выбор есть всегда…Quick Test
ProfessionalCoded UI Tests White
Поддерживаемые технологии
Win32, WPF, WinForm, SWT, Silverlight, Web etc.
Win32, WPF, WinForm, SWT, Silverlight, etc.
Win32, WPF, WinForm, SWT, Silverlight 2.0
Скорость работы скриптов
Средняя/Медленная
Достаточно быстрая Достаточно быстрая
Среда разработки QTP среда VS 2010 Любая (включая VS)
Запуск тестов Из QTP, Из HP QC
Как юнит-тесты (nunit, reSharper, и др.)Из TFS
Как юнит-тесты (nunit, reSharper, и др.)
Язык программирования
Vbscipt C# C#
Лицензия Дорого Дорого Бесплатно, открытый код
Record&Play + + -
6
![Page 7: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/7.jpg)
Automation framework: цели
Просто и удобно писать тестовые сценарии Расширяемость и поддерживаемость Регулярный запуск тестов и интеграция с CI Запуск тестов на произвольном ПК Читаемость кода тестов
7
![Page 8: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/8.jpg)
Automation framework: структура
8
Click to edit Master text styles Second level
Third level Fourth levelo Fifth level
Tests
ServicesEntities
Facilities
View accessors
-Автогенерация
![Page 9: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/9.jpg)
Распределение обязанностей Разработчики – доработка Automation Framework и
написание Services Тестировщики – написание Services и построение
тестовых сценариев
9
![Page 10: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/10.jpg)
Мотивация Для разработчиков
В новом Automation Framework приятно и удобно работать Быстрое получение результатов
тестирования
Для тестировщиков Повышение квалификации Меньше рутинной работы
Для всех Лучшее понимание процесса тестирования и разработки
10
![Page 11: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/11.jpg)
Планирование
Вместе с текущей итерацией Включение автоматизации в критерий готовности Регулярное отслеживание статуса Участие разработчиков и тестировщиков
11
![Page 12: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/12.jpg)
How to?
Процесс
Взаимодействие тестировщиков и разработчиков
Планирование итерации
Технологии
Выбратьправильнуютехнологию
Automation frameworkПостроитьудобный
12
![Page 13: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/13.jpg)
И в результате…
1,5 спринта на Automation Framework 40% регрессионных тестов за 4 спринта Комфортная разработка Регулярное получение результатов Планирование и мониторинг
Проблемы со временем Периодические проблемы со стабильностью
13
![Page 14: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/14.jpg)
И в результате… Повышение качества продукта Личное развитие членов команды Улучшение атмосферы в команде
14
![Page 15: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/15.jpg)
Независимая научно-практическая конференция «Разработка ПО 2011»31 октября - 3 ноября, Москва
Спасибо за внимание
![Page 16: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/16.jpg)
Дополнение: View Accessors
16
OK
Name:
Kind:
Create user
public class CreateUserAccessor {string Title { get { return “Create user”; }}Button OKButton{ get { return Window.TryGet<Button>(“OK”); }}TextBox NameEditTextBox { get { return Window.TryGet<TextBox>(“NameEdit”); }}
. . .}
![Page 17: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/17.jpg)
Дополнение: Servicespublic class UserManagement{
. . .public void CreateUser(User user){CreateUserAccessor accessor = new CreateUserAccessor(application);
accessor.NameEdit.SetValue(user.Name);
accessor.OKButton.Click();}. . .
}
17
OK
Name:
Kind:
Create user
![Page 18: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test](https://reader030.fdocuments.net/reader030/viewer/2022040714/5e1b1528a0380b03674029e9/html5/thumbnails/18.jpg)
Дополнение: Tests[TestFixture]public class TestExample{
. . .public void GetTests(){
TestData input = GetTestData();User user = input.User;
yield return new DynamicTest( ()=>CreateUser(user), “Create new user”). . .
}
private void CreateUser(User user){
Context.UserManagementService.CreateUser(user);}. . .
}
18
OK
Name:
Kind:
Create user