Qt tool evaluation

Post on 19-Jun-2015

1.965 views 3 download

Tags:

Transcript of Qt tool evaluation

Подход к выборе инструмента для автоматизации тестирования Qt Windows приложений.

Андрей Беляевский

Align Technology, Inc

Ретроспектива и попытка обощения.

О чём выступление

2

Расскажу о том

•Что мы должны тестировать

•Постановка задачи на выбор инстумента

•Как это сделали мы и на какие грабли наступили

•Попытка ретроспективы : попытаюсь сказать как обойти грабли

•Пара «фичей» в приложении, которая добавила грабли на наш путь

•Немножко о том, как можно сделать плохотестируемое (приемлемо) тестируемым

Приложение

• Qt 4.7.1 + OpenGL (2.0 + 1.1)

© 2010 Align Technology, Inc. All rights reserved3

Приложение

• Qt 4.7.1 + OpenGL (2.0 + 1.1)

© 2010 Align Technology, Inc. All rights reserved4

Приложение

Используется яркий «букет» технологий

•Насыщенная объектами 3D сцена, тестирование которой тоже как-то хотелось бы автоматизировать (хотя бы в рамках Smoke Test)

•QML

•Custom Qt Controls

•Запуск приложения «из браузера» (ActiveX)

© 2010 Align Technology, Inc. All rights reserved5

Постановка задачи

• Основной инстурмент команды : QTP с Qt работает никак

• К началу выбора инструмента автоматизации тестирования приложение разрабатывалось 2 челокека-года

• Фич-лист приложения был выполнен на 2/3 к моменту начала выбора тулы

• Рассмотреть несколько кандидатов и выбрать тот, который покажется лучше

• Потратить примерно на этот процесс месяца полтора-два

• Продемонстрировать к осению «Proof Of Concept»

© 2010 Align Technology, Inc. All rights reserved6

Этапы выполнения

1. Разработка стратегии выбора инструмента

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

3. Определение списка кандидатов

4. Evaluation matrix

5. Изучение каждого из кандидатов

6. Обсуждение результатов изучения

7. Презентация результатов на высоком уровне менеджменту

8. Покупка

9. Начало работы

© 2010 Align Technology, Inc. All rights reserved7

Стратегия

Об этом много написано и сказано, но всё же...

• Строгое определение ролей :• Кто принимает финальное решение на покупку• Кто проводит процесс• Целевая аудитория (для кого выбирается тула)

• Строгое планирование :• Четкое разделение на этапы• Определение промежуточных дат

• Сбор требований и определение целей :• Вовлеките разработчиков в выработку требований к инструменту:

- фич-лист• Узнайте у того, кто будет принимать решение о покупке, на основании чего он

будет принимать решение:- «согласие» внутри рабочей группы- лучшая поддержка технологии разработки инструментом- цена

© 2010 Align Technology, Inc. All rights reserved8

Стратегия

Agile! Agile! И ещё раз Agile!

Как бы строго всё не определялось все процессы должны быть

итеративным!

•Создайте рабочую группу

•Делайте промежуточные обсуждения во время этапов- Сделайте небольшие еженедельные встречи- Актвино пользуйтесь разговорами/перепиской с коллегами- Не бойтесь надоедать разработчикам с любыми вопросами и просьбами помочь

© 2010 Align Technology, Inc. All rights reserved9

Список кандидатов

• Community :- sales’ы активно следят за теми, кто ищет тулы и предлагают попробовать продукты своих фирм- на многих форумах есть разделы по инструментам, где перечислена львиная доля оных

- sqaforums.org- есть возможность найти людей, которые проводили подобный процесс или проводят его параллельно с вами- LinkedIn (!)

• “Google”- можно поискать готовые обзоры- старайтесь искать отзывы о проблемах

• Профессиональная литература :- реклама- действительно попадаются полезные статьи об инструментах тестирования

© 2010 Align Technology, Inc. All rights reserved10

Наш список

• Froglogic (http://www.froglogic.com/)

• TestComplete (http://www.automatedqa.com/products/testcomplete)

• Ranorex (http://www.ranorex.com/)

• Seapine QA Wizard Pro (http://www.seapine.com/qawizard.html)

• QtTestLib (http://doc.qt.nokia.com/solutions/4/qttestlib/qttestlib-manual.html)

• TestabilityDriver (Tdriver) (http://projects.forum.nokia.com/Testabilitydriver)

© 2010 Align Technology, Inc. All rights reserved11

Evaluation Matrix

• Почитайте «чего-нибудь» - много где описан этот процесс

• Процесс построения основан на сборе требований и обощении опыта работы

• Определите категории для изучения:- поддержка технологий

- сделайте Object Matrix- интеграция с существующей инфраструктурой автотестирования (другие инструменты, фреймворк, виртуальные машины, запуск и логирование)- интеграция с другими инструментами (управление, исходный код и т.п.)- удобство написания кода (IDE)- языки написания кода- репозиторий объектов- поддержка и документация(!)- политики лицензирования продукта- другие заказчики и истории успешного внедрения- лояльность поставщика- ваши знания и опыт- дополнительные возможности

- OCR Japanese

© 2010 Align Technology, Inc. All rights reserved12

Evaluation Matrix : пример

© 2010 Align Technology, Inc. All rights reserved13

Evaluation Matrix : пример

© 2010 Align Technology, Inc. All rights reserved14

Object Matrix : пример

© 2010 Align Technology, Inc. All rights reserved15

Процесс выбора

© 2010 Align Technology, Inc. All rights reserved16

• Техподдержка и комьюнити – наше все!

• Ищите негатив!

• Два пути :- демо- выявление проблемных мест в поддержке вашего приложения

• Демо :+ : получаем общее впеяатление от работы с инструментом- : пропустим что-то, что скорее всего окажется критически важным

• Поиск и проход по проблемам :+ : больше инфы о работе с технологией приложения- : не дает такого полного ощущения о работе

Процесс выбора

© 2010 Align Technology, Inc. All rights reserved17

• Обязательно проверьте интеграцию изучаемого инструмента в вашу существующую инфраструктуру (!!!)

• Постарайтесь узнать дальнейшие планы на разработку (!) у разработчиков

• Удаленный, распределенный запуск, логирование

• Е2Е тестирование (!)

• Попросите у тестировщиков тест-кейзы для опробации инструмента в боевых условиях (!) :

- возможно лучшим выбором будет Smoke Test

«Пара фичей»

18

QML+ objects on 3D scene

19

QML+ objects on 3D scene

© 2010 Align Technology, Inc. All rights reserved20

Custom Control

21

Custom Control

22

Резюме по инструментам

23

Squish

24

Advantages:

•Full support of all Qt controls out of the box

•Good technical support

•Support of all new Qt versions

DisAdvantages:

•IDE

•OOP

•Changes to connect started app

•Issues with working on machine with QTP preinstalled

Price:

3 concurrent licenses for 15 users – 10 000 EUR

TestComplete

25

Advantages:

•Good community

•Good IDE

•OOP

•Help System

DisAdvantages:

•Bad technical support

•Additional steps to make ICC testing possible

•Only standard controls are defined properly

Price:

13500 USD for 3 floating licenses

$4499 per floating license

Ranorex

26

Advantages:

•IDE

•OOP

•Help System

DisAdvantages:

•Additional steps to make ICC testing possible

•Strange work with Qt objects

Price:

~19000-25000 USD

QA Wizard Pro

27

Advantages:

•IDE

•OOP

•Help System

•Tool can work with ICC without any additional steps

DisAdvantages:

•Bad technical support

•Simplified VBScript as programming language 

TDriver

28

Advantages:

•Free

DisAdvantages:

•weak support from community

• mobile application oriented

•difficult to build, setup and work

QtTestLib

29

Advantages:

•Free

•Good Qt support ;)

DisAdvantages:

•too much code to write

•binary packages

•Unit-test oriented

Плохотестируемое => (приемлемо)тестируемое

30

Задача : Надо научиться хоть что-то делать на 3D сцене или как-то понимать что происходит на ней

Что выбрали?

Squish!

31

Плохотестируемое => (приемлемо)тестируемое

32

Решение : Debug feature

Большие проблемы

33

• QTP vs Suish- документация и техподдержка подсказали решение

• Squish connect to running application- техподдержка помогла победить проблему:

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

Вопросы?

34