Показаны сообщения с ярлыком холивары. Показать все сообщения
Показаны сообщения с ярлыком холивары. Показать все сообщения

среда, 7 декабря 2011 г.

Программирование - для тестировщиков?

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

Так что же, "есть ли жизнь на Марсе?" (с)
Стоит ли тестировщикам изучать автоматизацию?
Осваивать программирование?

Или "не лезь, куда не просят"? Упал - уходи? (вспоминается доклад Татьяны на SQA Days и слайд со Спартой)

Нет, конечно же, нет. Никогда не ошибается только тот, кто ничего не делает! А мы будем делать, и будем изучать :)

Другой вопрос - как? Объектно - ориентированный язык выбирать или процедурный?
Учиться строить архитекруту или работать с консолькой?

Продолжим диалог :)
Прямо на моих глазах два тестировщика осваивают Джаву. Я бы не сказал, что все у них хорошо. То проблемы с доступом к полям, то еще что-нибудь.

Не знаю, как вас, а меня бы больше удивило, если бы у них все было хорошо. Виданное ли дело, чтобы все с первого раза идеально получалось? Разумеется, у них будут проблемы с доступом к полям, с поиском кнопок и вводом строки с символами типа кавычек.

Но если бы все, у кого с первого раза что-то не получилось, бросали бы это дело, люди вообще ничем бы не занимались! Так и жили бы, охотясь на мамонтов, да разводя костер. Кому оно надо, колесо мастерить, против людского мнения переть с девизом "Земля круглая" и тд? Не получилось? Бросаем! Найдем что полегче, попримитивнее!
А без ide приходится постоянно следить за простотой и логичностью конструкций, за лаконичностью кода. Результат: проект растет, но дебаг простой, расширение простое, навигация в ворохе исходников проста, как никогда. Без IDE, без "перейти к".
А что, с IDE мозги автоматом отключаются? Ну напишет новичек код, непростой, потом через месяц попробует прочитать, не поймет и перепишет (хотя врядли, скорее пойдет к программистам и вместе каждую строчку разберут). Раз, другой, третий, на пятый запомнит, что значит этот код :) И перепишет более простым языком.
А если выбор экосистемы вообще так жестко не стоит, тогда какие проблемы-то?
Самый главный вопрос :)
В котором и ответ кроется. Какие проблемы-то? Изучить то, что ты выбрал сам?
Не ссылаясь на то, что для новичка будет "сложно", а что - "легко"...

Welcome to discuss!

суббота, 26 ноября 2011 г.

Программирование для тестировщиков

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

Так что, если вы еще размышляете, идти ли вам на эти курсы... Добавлю свое мнение к остальным!

Итак, встал вопрос об автоматизации тестирования. Дано добро на курсы, когда мы выберем инструмент. Я нашла себе курсы на специалисте, где автоматизации учат в два этапа, на первом даются основы программирования. Вот эти

Свыше их забраковали:

Основы программирования и баз данных - полная чухня

Во-первых, Ольга, эти вещи должны были читать в бауманке на первом-втором курсах (кроме запросов SQL)
Во-вторых, тебе это точно не нужно для тестирования.
Обзорные знание методологий, языков и структур данных тебе никак не поможет.

Мое мнение - этот курс отметаем.
Хотя я нашла много незнакомых слов в описании основ программирования :)) Ну ладно.
Скачала себе триалку Тесткомплита и стала думать дальше.

Следующее предложение было уже о тренинге Алексей Баранцева.
Что помогло обосновать? Как раз таки отзывы уже прошедших ))) В которых упоминается домашнее задание, без которого в обучении - никуда. Плюс мое собственное мнение об Алексее как о хорошем докладчике (как раз прошла первая ConfeT&QA)

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


И вот я участник данного курса :)
До его запуска я успела определиться таки с программой для автоматизации (мой выбор - Watin), и даже написать код. С помощью программиста мы написали тест, потом отрефакторили, потом вообще стерли и переписали )))

Однако что-то усвоить я уже успела. Поэтому первые два занятия мне были более-менее знакомы. И до разделения тестов и UI модельки (так она называется у меня, часть автоматизатора) мы дошли. И до принципа устойчивости тестов.

Формат обучения, если кто-то еще не в теме - просмотр записи вебинара с прошлых курсов. А то меня сильно удивил первый урок, во-первых, я невнимательно прочитала о том, что будут выкладываться записи и настроилась на то, что в понедельник в 5 будет вебинар. Даже время осводила.

А тут - курс прислали в пятницу. Сразу началась паника - это что мне, дз до понедельника надо сделать?!!!

Поняв, что время есть до четверга, поуспокоилась и включила запись. Сбивают с мыслей напоминания о том, что "консультации у нас во вторник", хотя у нас то консультации в четверг)))) Но это в принципе, только на первом занятии удивляет или напрягает. Потом привыкнешь.Зато приятно то, что всегда можно будет вернуться к какому-нибудь уроку. Особенно если понадобится перейти на селениум, а я уже все забуду)))

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

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

В автоматизаци я далеко не эксперт, так что мысли вынесла. Правда, не прям на занятии, на занятии я как раз думала о том, что это мне, в принципе, уже знакомо, я это делала, просто в другом фреймворке.

А вот когда вернулась к своей работе, вынесенные знания мне очень помогли! Просто знайте - даже если вам ДЗ показались легкими, попробуйте заавтоматизировать свое приложение. Без практики не возникнут вопросы! А они возникнут ))))

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

И после второго урока я поняла, что мне надо удалить нафиг те новые классы, которые я уже успела создать, и вместо них сделать один - "Навигация". Ну конечно! Это же элементарно, Вадсон (с)

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

Перенести мысли в компьютер самостоятельно я, однако, не смогла ))))
Тут же всплыла куча вопросов, пришлось опять прибегнуть к помощи программистов.

Но, по крайней мере, я уже знаю, какая у меня будет структура кода, и я вижу косяки в моем старом коде, я вижу то, что пора менять, пока не стало слишком поздно :)))

Тут и вылез новый вопрос. Есть код:

 
 
private Div ГоризонтальноеМеню()
{
var div = Browser.Div(Find.BySelector("#id"));
return div;
}

public void ПереходимВМодуль()
{
var div = ГоризонтальноеМеню();
div.Span(s => s.Text.Equals("НазваниеМодуля")).Click();
}

Но первая строка с div - это повторяющийся код, с него можно в несколько мест попасть. А если его id изменится? Везде менять?
А как достать? Ведь если мы вытащим var, сможем ли мы к нему обратиться? И как??
В сомнении я выделила эту строку и нажала волшебную комбинацию, на которую указал Алексей еще в первом занятии: Рефактор - Excract Metod. И получила такой же гениальный по простоте ответ:

public void ПереходимВМодуль()
{
var div = Browser.Div(Find.BySelector("#id"));
div.Span(s => s.Text.Equals("НазваниеМодуля")).Click();
}
Сама бы я долго думала, как же это написать))))
Так и пригодилось первое же занятие. Спасибо рефакторингу! Что бы мы без него делали))))

Очень жду 5 занятия, так как вопрос записи в файл меня мучается уже больше двух недель. И также надеюсь, что еще до этого занятия я научусь с этим работать, а потом сравню методы - свой и Алексея, вытащу идеи, до которых не дошла сама)

пятница, 18 ноября 2011 г.

"Бага не повторяется!", сказал программист, не читая условия

Навеяно разбором кейса от Александра Орлова.
Очень понравился третий пункт - мягко провести диалог, повернув его в нужное тебе русло. Не каждый так умеет. У меня бы первой реакцией было нахамить в ответ на хамство :)) А у вас?

Предлагаю разобрать кейс тестировщиков.
Думаю, вам будет знакома ситуация.

Она меня, если честно, вообще в шок повергла ))))
Итак, есть права доступа - "право 1" и "право 2", созвучные, но разные.
Есть элемент, который открывается из "места 1" и "места 2".

Находим ошибку, заводим:
"Выбрав право 1, переходим на элемент из места 1... *описание ошибки*
При этом если перейти к элементу из места 2, все будет ОК".

По баге прилетает вопрос - как же так, она не повторяется. Меняю права, так как работаю уже с другим - все повторяется. Опять вопрос: "Нет, вот, я ставлю право 2 и ...". "Конечно, не повторяется, в описании совсем другая роль выбрана".

ОК, передаем разработчикам. Бага возвращается с комментарием "не воспроизводится". Опять лезу, выполняю предварительные шаги (ну а вдруг и правда не воспроизводится, всякое бывает, была бага, потом раз и нету, потому что ее поправили, делая другое). Да все же повторяется. Помня о первом сомнении, отписываюсь "Все повторяется. Проверь, то ли право ты выбрал и из того ли места перешел". То есть даже дается подсказка, где человек мог ошибиться и неверно прочитать.

Нет, не повторяется и точка. В доказательство прикрепляется линк... На элемент, открытый из места 2 -_-
Хотя это специально было оговорено в теле баги + в комментариях )))))

Итак! Как вы ведете себя в таких ситуациях?

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

Я пока выбрала звонок в скайпе. Ну и по возможности больше визуализации))) То есть рисунков. Правда, в данном примере я все же настаиваю на точном (и коротком! Там не было захламления текстом, в результате чего может возникнуть недопонятость) описании, к которому рисунки излишни.