понедельник, 9 ноября 2009 г.

Темы опроса(duplicated)

Недавно наткнулся на 2 статьи в сети, которые дубируют мои темы в опросе, выставленные на голосование, а именно:
  1. Тестирование по контексту - Context Driven Testing
  2. QA, QC, tester, тестировщик, тестер. А разница?

Не хотелось зная писать, то что уже итак отлично написано до меня, посему:
  1. Совсем недавно Алексей Лянгузов великолепно описал Context Driven Testing и дал собственные советы по приведенным практикам. Так что рекомендую к прочтению именно его статью.
  2. Вторую тему отлично описал(я бы сказал перевел ) Вячеслав Панкратов в своем посте "В чем разница между Тестированием и QA"
Поскольку в опросе остались лишь пара тем, то опишу обе, но немного позже

воскресенье, 8 ноября 2009 г.

Экстремальное тестирование

Хотелось бы уточнить название поста. Я хотел бы написать о тестировании в XP команде.
Экстремальное программирование XP базируется на 12 основных практиках:
  1. Разработка через тестирование (Test driven development)
  2. Игра в планирование (Planning game)
  3. Заказчик всегда рядом (Whole team, Onsite customer)
  4. Парное программирование (Pair programming)
  5. Непрерывная интеграция (Continuous Integration)
  6. Рефакторинг (Design Improvement, Refactor)
  7. Частые небольшие релизы (Small Releases)
  8. Простота (Simple design)
  9. Метафора системы (System metaphor)
  10. Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership)
  11. Стандарт кодирования (Coding standard or Coding conventions)
  12. 40-часовая рабочая неделя (Sustainable pace, Forty hour week)
Теперь же попробуем проецировать практики на тестирование.

пятница, 2 октября 2009 г.

Из QAS в Dev, из Dev в QAS, реально ли?

Ну а вы как думаете дорогие читатели?

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

Вопрос на самом деле другой: Кому легче и быстрее будет переквалифицироваться? На самом деле описать такую тему меня подвигнул пост одного из популярных IT блогов в СНГ блог Виктора Ронина на тему Программист против QC . Этот пост обрел очень большую огласку в то время среди QA(QC) среды.

Кому легче в принципе опять же зависит от многих факторов: желания человека, базы как таковой, прошлой специализации и т.д. Но давайте рассмотрим по 2-м усредненным типам специалистов. Предположим у нас есть Саша – хороший разработчик ПО и Ваня – хороший QAS.

среда, 16 сентября 2009 г.

Программисты и QAS в одной комнате

В принципе ситуацию нахождения программистов и тестировщиков в одной комнате можно воспринимать в качестве практики. Естественно у данной практики есть корень. Корнем я бы назвал практику XP, в которой говорится, что команда разработчиков должна находиться в одном помещении. Что это дает разработчикам в результате?

  • Команда по настоящему получает какую то семейную ценность, по идее микроклимат в команду улучшается(не всегда конечно, зависит от самого персонала)
  • Коммуникация между разработчиками улучшается тем, что необязательно вставать и спрашивать или обсуждать какие-то общие вопросы
  • Некоторые команды отменяют документацию к продукту, поскольку любой вопрос может быть решен на месте и без лишних телодвижений

Теперь поговорим о ситуации Dev+QAS. В принципе достоинства такого подхода думаю можно понять сразу же после примера с программистами. В команде, занимающейся над проектом, не должно быть людей лишних или мешающих. Все должны работать над одной большой целью:

четверг, 27 августа 2009 г.

Ты тестировщик ты должен уметь всё

Уже после создания опроса понял, что название темы дает двойственное понимание. Посему решил, что опишу оба варианта:
1. Совмещение позиции QA специалиста с какими то другими обязанностями
2. Необходимость большой базы знаний для качественного тестирования ПО

Итак, поехали по 1-му пункту:
Совмещение обязанностей, наверное, бесит абсолютно всех QA-специалистов(QAS). Если вы кроме тестирования занимаетесь программированием или администрированием сети, либо круче этого, вы - офис менеджер, то бросьте вы эту затею. Профессия тестировщика одна из тех, которым не пойдет «в плюс» совмещение позиций. Ведь вы профессионально тестируете софт, т.е. вы имеете деструктивное мышление, это вам не поможет не в обслуживании сети или офиса, а при разработке ПО будет всячески мешать, хоть и в некоторых случаях и помогать тоже.
При всем этом я вполне допускаю вариант тестировщика:

  1. Выясняющего и пишущего постановку бизнес требований
  2. Внедряющего ПО
  3. В роли похожей на «Product owner» в Scrum
  4. IT-консультанта
Почему?
  1. Я уже много раз писал, что еще в начале проекта на этапе сбора требований нужно подключать QAS. А при должном опыте работы общения с заказчиками, такая задача вполне по плечу тестировщику. Если не верите, то у меня и Ромы был личный опыт.
  2. Об этом я тоже давно пишу, что тестировщик лучше всех знает как установить и использовать софт. Не редкие случаи, когда тестировщик знает работу всего продукта лучше любого из разработчиков. Это объясняется тем, что QAS обычно работает со всем функционалом сразу. Кроме этого сборку и установку ПО каждый нормальный тестировщик обязан автоматизировать и в этом случае у него при внедрении все карты на руках :)
  3. Этот пункт, что-то вытекающее из 1-го пункта, в довесок просто плотное общение с заказчиком
  4. В принципе этот пункт я оставил напоследок, поскольку все скорее будет зависеть от самого человека, нежели от профессии, но я бы подчеркнул, что для QAS это не противоречивая должность
При этом нужно понимать, что тестирование программного обеспечения для компании является очень дорогим удовольствием. Содержать целую QA команду, не всегда является оптимальным по стоимости решением. Поэтому некую проверку продукта(релиза, проекта и т.д.) выполняют разные специалисты, еще чаще сами программисты.

Теперь по 2-му пункту:
База знаний QAS немногим уступает, а в идеале и вовсе должна быть больше базы разработчика. Кроме фундаментальных типов тестирования и инструментария к нему, тестировщик должен знать бизнес логику, архитектуру и наиболее рискованные участки софта. Знание всего вышеперечисленного уже является не малым багажом знаний.
Почему же я написал, что в идеале QAS должен знать больше самого разработчика? Я уже писал здесь, о том, какие знания разработчика должен иметь тестировщик и чем он должен владеть для меня в идеале.
Я понимаю, что в больших командах тестирования специалисты в большей мере узко специализированы и мое видение может показаться неправильным и не фундаментальным. Но я пока не имел опыта работы в действительно огромной команде тестирования и являюсь приверженцем, того что QAS должен быть универсально подкован во всех видах и типах тестирования.
Наверное, хватит! Извините за небольшой сумбур в описании. Получился 1 из примеров когда хотелось рассказать многое но не клеилось. Комментарии опять же приветствуются.

P.S. Обратно создал опрос на следующую интересующую тему. Выбирайте, срок почти тот же - 10 дней.

воскресенье, 16 августа 2009 г.

Опрос на то "О чем мне стоит написать?"

В общем то меня с каждым днем все больше и больше одолевает лень что то писать, поскольку все QA по сути пишут об одном и том же. Посему я решил создать опрос в этом блоге и написать пост так сказать "по заказу". Справа на странице вы можете увидеть все предлагаемые мной темы. Голосуйте, если вам это вообще интересно. Опрос продлится одну неделю после чего я отпишу пост на самую популярную. Может быть это станет традицией, кто знает :)

P.S. Не забывайте, что возможно выбрать несколько интересующих тем сразу.
Если вам не нравится вообще такая идея с опросом то это лично ваше мнение, которое вы можете отписать открыто в комментариях.

пятница, 24 апреля 2009 г.

Так сказать "Welcome"

Закончил экспорт своих предыдущих сообщений с прошлого блога. Если кому интересно переход из ЖЖ в блоггер можно сделать вот так.
И еще для тех кто хочет добавить так называемую функцию "Read More" в блоггере вот сюда.
После экспорта через тулзу, Гугл обвинил меня в спаме и начал втыкать captcha везде где было возможно, но после нескольких писем все вернулось.
Ну теперь главное Welcome на мой блог товарищи)

четверг, 23 апреля 2009 г.

Первый пост. Ознакомительный

Всем привет. Это мой первый пост в этом блоге. Кто я такой можно посмотреть в профиле.
В принципе это не первый мой блог. Предыдущий находился вот здесь. Все посты с того блога перенесу сюда и не буду париться. Причина перехода - это закрытый доступ к ЖЖ из моей страны, да и вообще функции Блоггера мне нравятся больше.
Теперь о чем буду писать.... Ммм. Ну в основном конечно писать буду о финтифлюшках и мыслях по своей специальности - QA. Интересно это будет или нет, решайте сами. Цель моего блога простая: хочу зафиксировать свое видение разных вещей и поделиться с другими. Ну начнем экспортировать старый блог с флагом в руках :)

среда, 28 января 2009 г.

Трекер задач(Issue Tracker, Bug Tracker) ч. 2

Извиняюсь что так долго не писал, но блог блогом, а работа есть работа :)Как и обещал вот продолжение предыдущего поста о трекере задач. На сей раз допишу о том, что я забыл указать в базисах для любого трекера (Спасибо Роме:)):
1. Для основных статусов не написал такой важный статус как "Открыт заново", но в свое оправдание могу сказать что многие просто из статуса "Реализован" отправляют в "Подтвержден".
2. Очень не маловажный фактор это резолюции при реализации(Например: Выполнено, Не будет выполнено, не воспроизводится и т.д.)
3. Тут я сильно облажался но САМОЕ ГЛАВНОЕ это кто создал и кто реализовал, тобишь исполнитель. Если нет этих вещей, то любой трекер задач теряет свой смысл сразу...

Ну это все было то, что я не дописал в прошлом посте. Теперь же, то что я обещал написать, т.е. workflow который я поставил у себя. Ниже приведен рисунок, в котором я попытался обобщить все виды рабочего процесса.Теперь начну объяснять почему так. Ну во первых думаю понятно, что значит овалы и стрелки? Если нет, то объяснять я все равно не буду :)
Начнемс:
1. Создания задачи - это действие лучше разрешать всем кто работает над текущим проектом.
2. Подтверждение задачи - этот шаг нужен в качестве фильтра на создаваемые задачи. Подтверждение означает то, что задача полностью сформулирована и одобрена заказчиком, руководителем проекта или отделом тестирования.
3. Отмена задачи - означает то, что задача не сформулирована или просто не выполнима. Статус "Отменен" дает заказчику выбор на то, чтобы либо все таки реализовывать решение или же закрыть. Естественно при действии закрыть автоматически выставляется резолюция "Не будет выполнена"
4. Статус "В разработке" выделен отдельным статусом от "Решено" для того, чтобы заказчику или руководителю проекта было понятно над какой задачей работают, а над какой нет. В этом смысле статус "Тестируется" имеет то же самое значение. Если у вас в компании это не критично, либо не нужно, то конечно лучше просто сделать переход из "Подтвержден" в "Решен"
5. Статус "Не решен" тоже отделен от понятия "Подтвержден" потому что по этому статусу понятно, что реализация решения какое то было, но были найдены ошибки при тестировании.
6. Статус "Проверено". Здесь думаю все понятно. Конечно можно объяснить зачем проверенную задачу можно отправить в не решенные? Думаю у всех были случаи когда, во время тестирования задачи все работало, а позже при полном тестировании версии(итерации, проекта и т.д.) были случаи когда функционал просто не работал. Это именно для таких случаев.
7. Статус "Опубликовано" больше понадобится если у заказчика имеется понятие приемочного тестирования. Т.е. в реальности это означает, что вы передали дистрибутивы заказчику и он развернул его себе на своем тестовом окружении. Здесь имеется еще 1 интересный момент. Если на стороне заказчика задачу считают не решенной, она попадает именно в QA отдел. Это сделано впервую очередь для того, чтобы все ошибки впервую очередь были воспроизведены и только потом попадали на реализацию решения. Это можно считать еще одним фильтром :)
8. Ну и наконец задачу внедренной считает именно сам заказчик либо группа внедрения, где как в принципе. В частности для этого рабочего процесса конечным статусом будет "Внедрено".
На этом думаю все. Пожелания, вопросы и претензии в комменты :) В следующем посте постараюсь описать основные на мой взгляд достоинства JIRA и некоторые хитрости с ней.

четверг, 8 января 2009 г.

Трекер задач(Issue Tracker, Bug Tracker) ч.1

Ну как и обещал пишу об Issue Tracker, ну или Bug tracker кому как...В прошлом посте я описывал желательный рабочий процесс(workflow), который как мне кажется должен быть у всех. Теперь попробую написать о том, как все это дело фиксировать и как работать. Как мне кажется главная задача любого трекера задач - это фиксировать состояния задач и стараться максимально "прозрачно" работать с заказчиком. В принципе если ваш рабочий процесс построен не так, как я попытался описать в предыдущем посте, то это ни о чем не говорит. Но надо понимать что ваша задача это перенесьти весь имеющийся рабочий процесс на статусы в трекере. В любом деле важно максимально честно работать с заказчиком и давать ему возможность выставлять приоритетность задач. Ну это все набор слов, который встречается везде, теперь по полочкам.1. Создание задачи, ошибки или улучшения. Абсолютно все, что хочет заказчик должно фиксироваться в трекере. Никакого рода отмазок типа "Не понимает чего хочет", "Ему это не пригодится", "Потом заведу" быть не должно. Почему? Каждая новая задача для вас - это хлеб и возможность выглядить в более приятном свете перед заказчиком. Наверно все, не раз сталкивались с ситуацией, когда заказчик сказал по окончании проекта "Я же вам говорил, что это надо сделать".. При этом надо понимать, что эти задачи надо просто завесьти. Остальные вопросы кто, когда, в какой версии и зачем будут решаться позже. 2. Статусы или состояния задач. Статусы задач имеют чуть ли не самую главную роль в трекере. Если вы работаете с заказчиком то вы отлично понимаете что есть этапы, по которым происходит реализация задачи. Самые базовые:-Открыт. Статус в котором задача только была создана.-Подтвержден. Задачу подтвердили на разработку, т.е. такие задачи встают в очередь для решения.-Реализован. Задачу реализовали и передали на проверку QA отделу. -Закрыт. Реализацию задачи проверили и передали заказчику.Эти статусы присутствуют едва ли не в любой системе трекинга задач. Суть думаю понятна3. Переходы между статусами. Здесь главное на мой взгляд построить переходы между состояниями так, чтобы получилась некая модель типа конечного автомата.4. Выделение прав, кастомизация процесса. Здесь в принципе момент спорный. Если у вас нет необходимости ограничивать пользователей трекера и нужно просто фиксировать работу, то и не надо париться вам вполне подойдут бесплатные, опенсорсные решения типа Bugzilla, Trac или Mantis. Но вот если же все таки встала острая необходимость, то тут либо править ручками исходники open source продуктов или тупо купить уже готовые решения. Здесь конечно же очень выделяются продукты как Atlassian Jira или TrackStudio. Для себя же выбрал Jira... Не сочтите это за рекламу, но этот продукт действительно устраивает меня во всем и я его никому не навязываю. Кстати, если у вас небольшая фирма из 4-5 человек, то для вас вполне подойдет спец предложение от Atlassian по которому вы можете получить ее на халяву, правда с ограничением на нескольких пользователей и 1 проект кажется.Для полного представления трекера задач в следующем посте опишу workflow в собственной компании.И напишу некоторые советы по настройке Jira. На сегодня все...

среда, 7 января 2009 г.

Рабочий процесс(workflow) с QA

Всем привет.Захотелось написать о рабочем процессе разработки ПО и самое главное где впихнуть в уже имеющийся процесс свой QA отдел.В принципе эту тему я как то затронул в другом своем посте, но он честно говоря был уже написан давно и так рекламировать Trac я уже не стану. Теперь конкретно по теме:
1. Рабочий процесс разработки ПО практически всегда начинается со сбора требований. Так вот уже здесь лучше всего привлечь QA специалиста. Почему? Потому что первостепенной задачей для любого QA всегда должна быть проверка правильности выполненной бизнес логики. И узнать эту логику лучше всего еще до начала реализации. Опять же если у вас отличная документация к проекту или хорошо налаженная коммуникация с командой программистов, то этот шаг может быть будет и не нужен.
2. После сбора требований обычно пишут ТЗ. Здесь я бы советовал паралельным ходом уже начать писать тестплан для ПО(версии, релиза или продукта суть не важна, все зависит от вашей процедуры внедрения). Кроме сценариев, если это нужно, помочь в описании заказчику сценариев приемочного тестирования. Надеется на то, чтобы описать тестплан позже, лучше не надеется и описать его сразу же, а в дальнейшем по тихоньку его дополнять и улучшать.
3. Если ТЗ подписали, то начинается непосредственный этап реализации. Здесь очень важно, что для водопадной модели и любой ajile модели процесса, построить процесс так, чтобы после окончания любой задачи, она попадала на тестирование. Это поможет сократить сроки выполнения проекта и позволит быстрее получать ошибки от QA отделу программистов.
4. Непосредственно после реализации всего проекта должен быть выделен отдельный этап полного тестирования проекта. К этому времени у QA просто должен быть полный тест план и рабочие автоматизированные GUI тесты по нему. Здесь исправляются все имеющиеся ошибки и билд становится стабильным.
5. Следующий этап - отправка дистрибутивов. Почему это отдельный этап? Просто хотелось бы подчеркнуть, что именно QA лучше всего отправлять дистрибутивы на сторону заказчиков. Поскольку именно QA должны знать какой из дистрибутивов является стабильным, а какой нет.
6. Этап внедрения. Здесь важно понимать, что ошибки или дополнения так или иначе будут в 80% случаев. Исключить ошибки на данном этапе возможно лишь одной из методик XP - "customer on-site". Это мало когда бывает, но это возможно. Стоит подчеркнуть, что все найденные на стороне заказчика ошибки или дополнения сперва должны попадать в руки QA на воспроизведение. Этим выставляется некий фильтр на большой поток запросов от заказчика :)
7. Конец проекта(релиза, версии) и много, много пива :). Этот пост можно считать первой частью разговора об issue tracker и его роли.
Продолжение будет в следующем посте :) Всех с прошедшим Новым Годом!!!