18
Независимая научно-практическая конференция «Разработка ПО 2011» 31 октября - 3 ноября, Москва Зуева Татьяна Опыт автоматизации тестирования в Agile проекте

Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

Независимая научно-практическая конференция «Разработка ПО 2011»31 октября - 3 ноября, Москва

Зуева Татьяна

Опыт автоматизации тестирования в Agile проекте

Page 2: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

Содержание

Особенности проекта Наш подход

Сравнение средств для автоматизации тестирования UI Создание Automation framework Процессные практики

Итоги

2

Page 3: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

Особенности проекта

Клиент-серверное WPF приложение Интеграция с другими приложениями Свой GUI framework Scrum процесс

3

Page 4: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

Тестирование в проекте

Ручное тестирование

(тестировщики)

Модульные тесты на код

(разработчики)

Автоматизированное тестирование на 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

Проблемы

Нет времени “Что-то не работает…” (помощь разработчиков) Тестируемое приложение слишком часто меняется Поддержка старых тестов

5

Page 6: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

Выбор есть всегда…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

Automation framework: цели

Просто и удобно писать тестовые сценарии Расширяемость и поддерживаемость Регулярный запуск тестов и интеграция с CI Запуск тестов на произвольном ПК Читаемость кода тестов

7

Page 8: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

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

Распределение обязанностей Разработчики – доработка Automation Framework и

написание Services Тестировщики – написание Services и построение

тестовых сценариев

9

Page 10: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

Мотивация Для разработчиков

В новом Automation Framework приятно и удобно работать Быстрое получение результатов

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

Для тестировщиков Повышение квалификации Меньше рутинной работы

Для всех Лучшее понимание процесса тестирования и разработки

10

Page 11: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

Планирование

Вместе с текущей итерацией Включение автоматизации в критерий готовности Регулярное отслеживание статуса Участие разработчиков и тестировщиков

11

Page 12: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

How to?

Процесс

Взаимодействие тестировщиков и разработчиков

Планирование итерации

Технологии

Выбратьправильнуютехнологию

Automation frameworkПостроитьудобный

12

Page 13: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

И в результате…

1,5 спринта на Automation Framework 40% регрессионных тестов за 4 спринта Комфортная разработка Регулярное получение результатов Планирование и мониторинг

Проблемы со временем Периодические проблемы со стабильностью

13

Page 14: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

И в результате… Повышение качества продукта Личное развитие членов команды Улучшение атмосферы в команде

14

Page 15: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

Независимая научно-практическая конференция «Разработка ПО 2011»31 октября - 3 ноября, Москва

Спасибо за внимание

Page 16: Опыт автоматизации тестирования в Agile проекте2011.secrus.org/2011/md/zuyeva-presentation.pdf · Выбор есть всегда… Quick Test

Дополнение: 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

Дополнение: 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

Дополнение: 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