2008/12/16

Советы для новичков в тестировании

У начинающих тестировщиков всегда есть много вопросов по поводу тестирования программного обеспечения и фактической работы, которую они будут выполнять. Как начинающий тестировщик, вы должны знать о некоторых фактах о профессии тестировщика программного обеспечения.



Советы ниже, несомненно, помогут вам правильно подойти к построению карьеры в тестировании ПО.

Эти "неоспоримые истины" так же применимы и полезны для опытных гуру-тестировщиков. Применение упомянутых ниже правил в вашей карьере, поможет вам не совершать поступков, о которых придется жалеть.


Знайте свое приложение


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


Изучайте новые технологии

Нет сомнений, старые подходы и методы все еще играют важную роль в повседневной работе тестировщика, но необходимо пытаться вводить новые процедуры тестирования. Не полагайтесь на скучные книжки. Теория суха. Будьте практичны. Ваши новые идеи в тестировании будут работать на Вас и для Вас.


Стройте хорошие отношения с разработчиками

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



100% покрытие тестами - сказка

Не стремитесь сделать 100% покрытие кода тестами. Существуют миллионы тестовых комбинаций, которые просто невозможно охватить. Используйте такие методы, как граничный анализ и декомпозиционное тестирование, чтобы ограничить количество тест кейсов до приемлемых размеров.

2008/12/09

Упростит ли автоматизация процесс тестирования?

Возможно!
Для небольших проектов, время, необходимое для изучения инструмента автоматизации и ее внедрения может не окупится. Для более крупных проектов или текущих долгосрочных проектов, автоматизация просто незаменима.


Автоматизация может добавить много сложностей для команды тестирования. Кроме того, всегда возможны такие проблемы, как нереалистичные ожидания, плохая практика тестирования, ложное чувство безопасности, эксплуатационные расходы, а также технические и организационные вопросы.

Но автоматизация даст необходимый результат, если ее будут внедрять правильные люди, используя правильные инструменты и в то время, когда это делать необходимо.

Автоматизация - процесс дорогостоящий
Исследования показывают, что создание автоматизированного тест сьюта может занять от 3 до 10 раз дольше чем создание и выполнение ручных тест кейсов.

Затраты на автоматизацию включают издержки на содержание персонала для поддержки автоматизированных тестов на долгосрочную перспективу, необходимое программное обеспечение, а также расходы на закупку, и эксплуатацию необходимых инструментов.



Обычно инструмент для автоматизации ориентирован на "запись / воспроизведение"

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

Обработка и анализ полученных результатов часто бывает тяжелым и утомительным процессом. Так же поддержка тестов, созданных путем простой записи тоже очень неудобна - так как любое изменение кода (даже самое незначительное) влечет за собой неработоспособность таких автоматизированных тестов.


2008/08/22

Откуда берутся баги?

Это жутко интересный вопрос, волнующий всю братию айтишников.


- Ошибки программистов

Программисты тоже люди, а людям свойственно ошибаться

- Изменения требований

Заказчик не всегда понимает, как те или иные изменения отразятся на программном продукте. Хотя он может это и понимать, но все равно настаивать на изменениях - переделки дизайна, смена разработчиков, добавление функционала и т. д.

Любые мелкие или крупные изменения требований влекут за собой новые баги, и нужны огромные усилия для сохранения целостности проекта после любых изменений.

В этих случаях менеджеры проекта должны понимать результирующие риски и тестировщки
должны адаптировать тест-план для интенсивного тестирования.

- Проблема времени

Не всегда время на проекты планируется правильно. Иногда все самое важное делается в последний момент. Когда на носу дедлайн и времени совсем нет - тогда и появляются баги.

- Элементарная нехватка коммуникаций

Программисты не поняли как правильно сделать, а не уточнили. Тестировщики подумали что программисты сделали правильно. Заказчик увидел и испугался. Этого бы ничего не было при правильной наладке процесса коммуникаций заказчик-менеджер-разрабочик-тестировщик.

Что любят говорить разработчики?

- Здесь нет ошибки. Винды у вас кривые.
- Это сделать раз плюнуть
- Да я за часик это все исправлю, а вы раздули глобальную проблему
- Проще будет обновить старый код...

Вместо...

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

2008/08/21

Кто такой хороший тестировщик?

Есть программа которая вычисляет квадратный корень из числа.


Что сделает очень плохой тестировщик?

- Он даже не запустит программу. Скажет все работает.

Что сделает плохой тестировщик?

- Кто-то ему сказал что программа возводит число в квадрат. Он ввел число 4, получил

в результате 2 и сказал что программа работает неправильно. Вернул разработчикам.

Что сделает не очень плохой тестировщик?

- Прочитает спецификацию. Поймет что делает программа. Введет число 4, на выходе получит число 2. Скажет что программа классно работает и даст зеленый свет на релиз.

Что сделает хороший тестировщик?

- Прочитает спецификацию. Поймет что делает программа. Введет число 4, на выходе получит число 2. Введет число -2, на выходе получит число эксепшн - занесет баг.

Введет букву а в поле для числа, на выходе получит число эксепшн - занесет опять баг.

Что сделает тестировщик-профессионал?

- Изучит спецификацию.

- Напишет детальные тест-кейсы

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

- Проверит округление результата

- Проверит реакцию программы на неправильные данные (буквы, спецсимволы и т.д)

- Проверит действительно ли программа выдает правильный результат во всех случаях

- Протестирует интерфейс пользовталея

- Протестирует программу в разных ОС

- И сделает еще много-много полезных вещей и команда выпустит действительно качественный продукт

2008/08/20

Тренинги по тестированию ПО в Черкассах от компании QATestlab

В конце сентября - начале ноября компания QATestlab будет проводить тренинги по тестированию ПО в Черкасском Государственном технологическом университете (ЧДТУ).


Цели тренинга:

1. Раскрыть особенности достаточно новой профессии - тестировщика ПО;

2. Получить как теоретические знания, так и некоторый практический опыт работы с различными проектами, решения реальных задач, с которыми работают тестировщики;

3. Научиться применять разные методики для тестирования программного обеспечения;

4. Научиться описывать ошибки программного обеспечения и писать тест-кейсы;

5. Научится правильно использовать ручное и автоматизированное тестирование в реальных проектах;

6. Научиться анализировать и разумно использовать собственное время в работе;

Структура программы тренинга:

Тема 1. Введение в процесс тестирования. Роль тестирования в жизненном цикле разработки программного продукта. Как в действительности тестируются программы.

Тема 2. Ошибки в программах. Описание программных ошибок и их анализ. Жизненный цикл программных ошибок.

Тема 3. Разработка тестов и структура тест-кейсов. Характеристики хорошего теста. Регрессионное тестирование.

Тема 4. Автоматизированное и нагрузочное тестирование. Использование программного обеспечения для тестирования ПО.



ПРОГРАММА


Тема 1. Введение в процесс тестирования. Роль тестирования в жизненном цикле разработки программного продукта. Как в действительности тестируются программы.



1. Ознакомление с основными теоретическими вопросами, определениями и терминами.

2. Тестирование «белого ящика» и «чёрного ящика»

3. Цель работы тестировщика

4. Цикл разработки ПО

5. Роль тестирования в жизненном цикле разработки программного продукта



Тема 2. Ошибки в программах. Описание программных ошибок и их анализ. Жизненный цикл программных ошибок.



1. Определение программной ошибки и условия жизни программных ошибок. Причины появления багов.

2. Что такое качество. Разоблачение концепции о 100% тестировании ПО.

3. Типы багов. Атрибуты бага.

4. Описание программных ошибок и работа с багтрекинговой системой

5. Жизненный цикл программных ошибок.




Тема 3. Разработка тестов и структура тест-кейсов. Характеристики хорошего теста. Регрессионное тестирование.



1. Структура и детализация тест-кейсов.

2. Результаты исполнения тест-кейсов. Анализ полученных результатов.

3. Регрессионное тестирование.

4. Проверка исправленных ошибок.


Тема 4. Автоматизированное и нагрузочное тестирование. Использование программного обеспечения для тестирования ПО.



1. Использование автоматизированного тестирования с помощью Watir, Selenium, Rational Robot.

2. Нагрузочное тестирование с помощью Wapt, AB.exe, LoadRunner.

Использование программного обеспечения для тестирования ПО: программы для обнаружений утечек памяти, отслеживания сбоев, программы для web-тестирования.

По вопросам записи на тренинги:

ICQ: 82-0-четыре-5-5-два-0

E-mail: irinachсобачкаqa-testlabточкаcom

Нагрузочное тестирование с LoadRunner

Loadrunner - прекарсный продукт от компании Hewlett-Packard, предназаначеный для проведения нагрузочного тестирования и тестирования производительности.



Вы можете эмулировать сотни и тысячи виртуальных юзеров, которые будут делать определенные действия с вашим тестируемым приложением. Loadrunner обладает прекрасным инструментом для анализа полученных результатов - Loadrunner Analysis.
Результаты могут быть детально проанализированы с помощью наглядных графиков и вы можете выявить узкие места в тестируемом приложении до того как с этими проблемами столкнуться ваши пользователи.

Визуальные обучалки