Горелиц Н.
Оглавление
Коротко о тестировании. 2
1. Цели и задачи. 2
2. Основные преимущества автоматизированного тестирования. 3
3. Основные недостатки автоматизированного тестирования. 3
4. Место тестирования в процессе разработки ПО.. 4
5. Градация по типам (крупно). 4
Типы предоставляемых услуг. 5
1. Перечень. 5
Тестирование - один из важнейших этапов контроля качества разрабатываемого ПО.
Автоматическое тестирование является его составной частью. Оно использует программное обеспечение для проверки выполнения проводимых тестов, что помогает в большинстве случаев сократить время тестирования иупростить его процесс.
q Когда стоит начинать автоматизированное тестирование, чтобы оно принесло пользу проекту?
q Возможно ли?
q Есть что автоматизировать
q Есть тест план
q Написаны тесты для ручного тестирования
q Есть инструмент для автоматизированного тестирования
q Выгодно ли?
q Просчитана величина реальной пользы от внедрения автоматизированного тестирования
q Есть необходимость автоматизированного тестирования (требование заказчика, состояние проекта)
q Глен Маерс: Тестирование это процесс выполнения программ с намерением найти ошибки
q Пол Йоргенсен: Тестирование сфокусировано на ошибках и сбоях. Тест - выполнение действий над ПО с целью найти ошибки или продемонстрировать работоспособность
q Обобщенное определение тестирования
q Тестирование - процесс проверки соответствия заявленных к продукту требований и реально реализованной функциональности
q Задачи автоматизации процесса тестирования:
q Процесс автоматизации функционального тестирования программного обеспечения обеспечивает получение прямых финансовых выгод за счет экономии ресурсов, а также повышение качества выполняемых работ по тестированию ПО
q Цели автоматизации процесса тестирования:
q Процесс автоматизации функционального тестирования программного обеспечения обеспечивает получение прямых финансовых выгод за счет экономии ресурсов, а также повышение качества выполняемых работ по тестированию ПО
q Автоматизированное тестирование ПО позволяет разработчикам применять подходы, известные им по задачам разработки, для решения вопросов тестирования
q Проектным менеджерам автоматизация тестирования дает инструмент для интеграции специалистов заказчика в процесс приемочного тестирования и приемки продукта
a. Возможность непрерывного/циклического выполнения тестов
b. Строгая последовательность выполняемых шагов
c. Увеличение производительности в сравнении с ручным тестированием в разы
d. Автоматизация длинных последовательностей
e. Автоматизация операций, требующих тяжелых вычислений
a. Требуют достаточно времени для создания скриптов (не всегда оправдываются)
b. Необходимость постоянного сопровождения (обновления) тестов
c. Тесты выполняют запрограммированную последовательность действий, они не имеют интеллекта
a. По знанию системы
i. Черный ящик
ii. Серый ящик
iii. Белый ящик
b. По степени детализации
iv. Модульное
v. Интеграционное
vi. Системное
c. По объекту
vii. Функциональное
viii. Производительность
ix. Безопасность
x. Юзабилити
d. По степени автоматизации
xi. Ручное
xii. автоматизированное
e. В связи с изменениями
xiii. Регрессионное
xiv. Санитарное
a. Независимое тестирование
b. Функциональное тестирование
c. Тестирование удобства использования
d. Тестирование безопасности
e. Тестирование совместимости
f. Тестирование вручную
g. Автоматизированное тестирование
h. Тестирование производительности
i. Тестирование платформы
j. Тестирование интеграции
k. Услуги по консалтингу
l. Услуги по обучению
Название услуги |
Результат |
Независимое тестирование |
Комплексный аутсорсинг тестирования программного обеспечения вместе с услугами проверки и контроля тестирования, оптимизации важнейших мероприятий качества от функционального контроля для тестирования, управления дефектами и тестирования бизнес-потоков. |
Функциональное тестирование |
Оценка соответствия функциональности продукта заявленной в требованиях к нему.
1) Понимание функциональности
2) Разработка тестов
3) Исполнение тестов |
Тестирование удобства использования |
Оценка удобства обращения с продуктом с точки зрения конечного пользователя - прозрачность и дружественность интерфейса и т.д. |
Тестирование безопасности |
Оценка безопасности работы с продуктом с точки зрения отсутствия потерь данных, устойчивости к программным и аппаратным сбоям, "защиты от дурака", защиты от взлома и т.д. |
Тестирование совместимости |
Оценка корректности работы продукта в случае различных конфигураций оборудования, операционных систем/платформ, сетевых сред, периферийных элементов (принтеры, Zip диски, USB и т.д.), ПО сторонних производителей (браузеры, брандмауэры, сети, мультимедиа плагины и т.д.) |
Тестирование вручную |
Тестирование Client-Server приложений
Тестирование веб-приложений
Тестирование приложений рабочего стола
Подготовка тестовых сценариев с использованием распространенных техник тестирования, таких как:
- Методики с использованием графов (Каждое приложение состоит из нескольких объектов. Все эти объекты выявляются, и составляется граф. По такому графу определяются взаимосвязи между всеми объектам, и в соответствии с этим пишутся тест кейсы для выявления ошибок.)
- Угадывание ошибок (Такая методика полностью основана на опыте тестировщика и его мышлении. Угадывание ошибок - это искусство. Для этой методики нет специальных инструментов, которые покрыли бы все пути приложения.)
- Анализ граничных значений (Ошибки во многих системах возникают при работе с граничными значениями, поэтому важно тестировать граничные значения в приложении. Анализ граничных значений (Boundary Value Analysis/BVA) относится к методикам функционального тестирования. Для такого анализа выбирают предельные граничные значения. Граничные значения бывают максимальные, минимальные, только для внутренних/внешних границ, типичные значения и ошибочные значения.)
- Тестирование классов эквивалентности (Эквивалентное разбиение - методика тестирования черного ящика, когда набор вводимых в программу значений разделяется на классы данных, из которых можно получить тест кейсы.)
- Сравнительное тестирование (В этой методике различные независимые версии одинакового ПО используются для сравнения друг с другом.)
Разработка стратегий тестирования и планов тестирования
Выполнение написанных вручную функциональных тестов
Отслеживание дефектов
Регрессионное тестирование |
Автоматизированное тестирование |
Особенности:
1) Снижение затрат на выпуск новых релизов
2) Снижение операционных затрат на проведение тестирования системы
3) Гибкость в рамках подключения новых тестов в тестовые скрипты
4) Легкость внесения изменений в существующие сценарии
5) Легкость запуска конечным пользователем через облегчение выбора скриптов для исполнения
6) Создание нормализованных скриптов приводит к повторному использованию тестовых скриптов, уменьшая избыточность и сохраняя время. |
Тестирование производительности |
Оценка соответствия реальной производительности продукта заявленной в требованиях к нему.
Возможные варианты тестов:
- Определение общей производительности системы
- Определение максимальной загрузки системы
- Обнаружение узких мест, ограничивающих возможности системы
- Кратковременная загрузка мощностей инфраструктуры, определение поведения системы в критических ситуациях: при 100% нагрузке и выше
|
Тестирование платформы |
Тестирование соответствия продукта заявленным в требованиях платформам: оценка правильной работы функционала в условиях разных платформ, таких как
- MAC Os
- Linux
- Windows Platform
- Solaris
- AIX
- HP-UX
|
Тестирование интеграции |
Тестирование интеграции продукта с необходимыми Заказчику средами и сторонними продуктами. Оценивается степень успешности интеграции, легкость ее осуществления и отсутствие потерь передачи данных и функциональности. Подходы:
- Снизу вверх
- Сверху вниз
- Подход большого взрыва
- Обеспечение интеграции между двумя модулями или приложениями
|
Услуги по консалтингу |
Разработка стратегии тестирования для конкретных задач Заказчика, включая детализированные планы тестирования, разные виды тестирования, необходимые в каждом конкретном случае, разнообразные инструменты тестирования. |
Услуги по обучению |
Внедрение процессов управления качеством, регрессионного, автоматизированного и других тестирований и проведение демонстраций и обучающих семинаров для персонала Заказчика. |
- Rational TestManager (IBM),
- Quality Center (HP),
- Rational ClearCase (IBM),
- Rational Quality Manager (IBM)
- ….
- HP Quick Test Professional,
- Mercury Win Runner,
- Mercury Load Runner,
- NUnit for .NET,
- JUnit for Java,
- QF Test,
- Selenium IDE,
- Test Complete.
- …..
- Rational ClearQuest (IBM),
- PVCS Tracker,
- Mantis BT,
- Bugzilla,
- Scarab.
- ….
- Visual Source Safe (VSS),
- Version Control System (CVS)
- ….
- LoadRunner (HP),
- Rational TeamTest (IBM),
- QALoad (Compuware),
- SilkPerformer (Borland),
- WebLOAD (RadView),
- JMeter,
- OpenSTA,
- Web Application Stress (WAS) Tool,
- ANTS Load,
- WAPT,
- Microsoft Application Center Test,
- Code Smith Code Generator for .NET.
- ….
· WinRunner (HP),
· QuickTest Professional (HP),
· Rational TeamTest (IBM),
· SilkTest (Borland),
· TestComplete (AutomatedQA),
· TestPartner (Compuware),
· Test Coverage - Jester,
· PurifyPlus (IBM).
· ….
7. Инструменты обзора кода
- .NET FxCop,
- Eclipse Plugins for Java code review,
- JProfiler for Java Code Profiling,
- .NET Memory Optimization tools,
- Rational Purify and Valgrind for C++ code reviews,
- Code Smith Code Generator for .NET.
- ….
Средства отладки - специальные платформы отладочных инструментов, как Eclipse и NetBeans
Системы, подходящие для тестирования - Java, Web, SAP, Siebel, Сервисы и другие
Критерии |
QuckTestPro |
IBM Rational Functional Tester |
TestComplete |
Selenium RC |
Поддерживаемые Браузеры |
Firefox Internet Explorer Netscape Browser |
Internet Explorer Mozilla Firefox |
Internet Explorer
Mozilla Firefox
Netscape Navigator ver. (limited) |
*firefox *IE *opera *netscape *conqueror *safari *seamonkey *omniweb *camino |
Поддерживаемые платформы |
Windows |
Linux Windows |
Windows |
Windows Unix MacOS |
Поддерживаемые приложения |
web services,Windows applications, web (Internet Explorer, Firefox,Netscape), .NET, Java™/J2EE, SAP, Siebel, Oracle®, PeopleSoft, VB, ActiveX, mainframe terminal emulators and Macromedia Flex. |
Web-based, .Net, Java, terminal emulator based applications such as 3270 (zSeries™) and 5250 (iSeries™), PowerBuilder, AJAX, Adobe Flex, Dojo Toolkit, Siebel, and SAP® applications |
.NET, Java, Visual C++, Visual Basic, Delphi, C++Builder and web applications. |
Web-based applications |
Явные приемущества |
Лёгок в изучении, много документации |
Функционально богат
Чрезвычайно масштабируемый. |
Богатая поддержка языков (VBScript, JScript, C ++) |
Богатая поддержка языков и платформ |
Средняя стоимость |
20000 $ |
6000 $ |
Enterprise per named user: 1999$
Standard per named user: 999$
Enterprise per floating user: 4499$
Standard per floating user: 2999$ |
Бесплатная |
Forrester 2006 Forrester 2008,
Средство тестирования |
Тестирование пользовательского интерфейса |
Нагрузочное тестирование клиента |
Нагрузочное тестирования базы данных |
Тестирование Web-клиента |
Нагрузочное тестирование Web-сервера |
План тестирования |
Отслеживание ошибок |
Методология |
Прямой доступ к данным |
QACenter |
+ |
+ |
+ |
|
|
+ |
+ |
+ |
+ |
AutoTester |
+ |
+ |
|
|
|
+ |
|
|
|
HP |
+ |
+ |
+ |
+ |
+ |
+ |
|
|
+ |
Platinum |
+ |
|
|
+ |
+ |
|
|
|
+ |
Performance Awareness |
+ |
+ |
+ |
|
+ |
|
|
|
|
Pure Atria |
|
+ |
+ |
|
+ |
+ |
+ |
|
|
Borland Software |
+ |
|
+ |
+ |
|
+ |
+ |
|
+ |
SQA |
+ |
+ |
|
|
|
+ |
+ |
+ |
|
IBM |
? |
? |
? |
? |
? |
? |
? |
? |
? |
Используемые методики и стандарты
1. RUP (в части процесса тестирования)
2. ITIL/ITSM (в части процесса управления изменениями)
3. IEEE 829 (в части документации)
4. ISO 12207 (в части процесса разработки, процесса эксплуатации)
5. ISO 20000 (в части процедуры проверки и приемки релиза)
6. PMBoK (в части процесса управления качеством)
7. COBIT (в части процесса внедрения и приемки решений и изменений)
8. CMMI (в части процесса валидации и процесса верификации)