Архив рубрики: Тестирование ПО

Selenium RC, AutoIt, C# и другие страшные вещи

По причине обновления сайта и дальнейшего его усложнения снова взялся за тесты на Selenium RC. Все бы ничего, но один момент очень мешает: при переходе по определенной ссылке сразу начинается скачивание файла, соответственно, открывается окно в Mozilla c предложением этот файл сохранить. Пришлось вспоминать AutoIt и писать программульку из 3 строчек, которая это окно закрывает.

Проблема номер 1:
Поначалу хотелось сделать нормальный клик на кнопку Save, но мозилловское окно какое-то хитрое, и кнопка никак не хотела кликаться нормальными способами (ID, Text). Вариант клика по координатам я решил не рассматривать как слишком неуниверсальный. Помучавшись, пришел к выводу, что не стоит делать «как правильно», а надо сделать «как проще и быстрее» — теперь окно просто закрывается по WinClose («Title») :) Вот оно, итоговое творение:
WinWait($CmdLine[1], "", 10)
WinActivate($CmdLine[1])
WinClose($CmdLine[1])

Ура! Скрипт закрывает окно! А больше сейчас и не надо.

Но!

Проблема номер 2:
Как теперь запустить это приложение из селениумовских тестов (NUnit-овская dll-ка на C#)? AutoIt есть COM-компонент! Гуглю, как его встроить в C#, пишу несколько строк кода. Оп-па — оно даже компилируется! Компилируется, но при запуске тестов ругается на отсутствие каких-то зависимостей. «Дверями похлопал, колеса попинал...» То есть зарегал 64-битный компонент, перевставил Reference в приложение — не помогло. Что ж... правильное и красивое решение придется оставлять на потом, а сейчас начинаем опять городить костыли! Делаю из au3-файла exe-файл, и уже его запускаю из своего приложения способом Process.Start.

Проблема номер 3:
Скрипт выполняется до нужного места, но потом вдруг затыкается, и exe-шник в нужный момент не запускается. Упс!.. Отваливается на этапе WaitForPageToLoad. Ну правильно, это вылезшее окно с предложением сохранить файл «мешает» получить доступ к странице, так что она вроде как и не загрузилась. Тогда пусть ожидание будет после вызова exe-шника!
А вот нихрена!
На этот момент страница уже полностью загрузилась, и WaitForPageToLoad ждет непонятно чего, так что этот вариант тоже отпадает. По-человечески надо бы сделать WaitForCondition, но это мучение я решил оставить на потом. Костыль Thread.Sleep (3000) помогает.
Уфф, test наконец-то passed.

Через некоторое время будет этап доводки написанного быдлокода до чего-то более приличного. А если сейчас работает — то лучше не трогать :)

Результаты «Недели тестирования с Акронис»

«Неделя тестирования с Acronis» закончилась еще 4 апреля, но окончательные результаты подведены только вчера.

Задача-минимум была выполнена — в десятку я попал.
Задача-максимум — получить бесплатный тренинг — к сожалению, нет. Что ж, буду помахивать битой тестировщика :)

Топ-20 участников:

Имя участника Количество тикетов Сумма балов
1 Igor Mets 59 407
2 Felix Zinatullin 36 342
3 Andrey Myasnikov 47 305
4 Andrey Aderkin 28 256
5 Anton Ignatyev  22 185
6 Pavel Novik 18 142
7 Grigoryeva Yulia 23 131
8 Dmitry Zhariy 17 114
9 Dinis Kasimov 17 89
10 Bochkanov Dmitry 17 87
11 Julia Owen 5 63
12 Dariya Isachenkova 10 61
13 Tatyana Galunenko 22 61
14 Egor Larchenko 9 51
15 Natalya Rukol 6 39
16 Anton Sukhonosenko 3 23
17 Vlasenko Vadim 8 14
18 Olga Grytsenko 8 14
19 Elena Malysheva 3 9
20 Svetlana Popova 3 9

Как раз эти 20 человек и стали наиболее активными участниками бета-тестирования. Из них только 12 тестировщиков добавили 10 и более тикетов. Я думал, что активность будет повыше, так как регистрировалось более 100 человек.

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

Когда будет проходить очередное подобное мероприятие, обязательно приму участие :)

Джеймс Бах. Becoming a Software Testing Expert

Ура, товарищи!
То, о чем так долго все говорили и мечтали, свершилось! Завершен перевод выступления Джеймса Баха «Стать экспертом в тестировании».

Перевод был сделан силами участников software-testing.ru community, за что им всем большое спасибо! (Я тоже участововал, и мне тоже можно сказать спасибо, хотя я прибегнул к небольшому «читерству» :) ) Отдельное спасибо стоит сказать Феликсу, который это организовал.

Готовый результат в виде видео с русскими субтитрами:

Неделя тестирования с Acronis

Решил поучаствовать в «Неделе тестирования с Acronis».
Во-первых, это вебинары от Натальи Руколь и Алексея Баранцева.
Во-вторых, это новый опыт.
В-третьих, это уже слегка подзабытое ощущение радости от нахождения нового бага :)

Сплошные плюсы и позитив! Жаль только, что времени на это мероприятие можно выделить совсем немного.

FIXber — попытка создать русский uTest

Анонс на Хабре:

По роду своей деятельности мне часто приходится подбирать тестировщиков для тестирования различных проектов (web, desktop, mobile и т.д.).
При этом тестировщики не всегда оправдывают свои заявленные умения и свой профессионализм.

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

Зачем нанимать «одного» тестировщика, если можно получить сотню и оплачивать только интересные баги.

FIXber

Во-первых, у меня вызывает сомнения сама модель взаимодействия тестировщиков и заказчиков, особенно пункты про заказчика:

покупает только интересные баги,
до покупки бага видит только его краткое описание,

Грамотно реализовать это непросто.
Ну и проблемы с определением критичности, множественности багов (причина одна, проблемы вылезают в 10 местах) и многое-многое другое...

А во-вторых — где набрать столько активных тестировщиков и заказчиков? И тех, и других вообще в России немного. К тому же продвинутым тестировщикам и на uTest-е неплохо, а начинающим кто будет давать проекты?

Обновления сайтов

Задача: Есть сайт продукта. Время от времени необходимо его обновлять.
Процесс осложняется тем, что кроме чисто контентных страниц (описание продукта, документация, о компании и т. д.) существуют сервисные страницы:

  • скачивание продукта,
  • получение триального регистрационного ключа,
  • проверка обновлений,
  • запросы на получение скидок,
  • покупка продукта,
  • спецраздел для реселлеров со своими сервисами,
  • дополнительная информация, которая доступна только из desktop-продукта,
  • ...

При обновлении этого проекта было решено сделать 3-ступенчатую систему.
Существуют 3 версии сайта: dev, release, live.
Dev — активно разрабатываемая версия. Все данные — тестовые. Может чего-то не хватать, что-то может не работать. Активно тестируется конретная новая фича. После окончания разработки и тщательного тестирования новая функция добавляется в Release-версию.
Release — стабильная версия. Максимально приближена к live-версии продукта. Происходит интеграционное и регрессионное тестирование. После успешного прохождения тестов release-версия помещается в live.
Live — версия, находящаяся на «живом» сайте и используемая клиентами.

Такая «трехзвенная» система позволяет:

  • всегда иметь готовый к обновлению сайт с минимальными изменениями,
  • иметь возможность тестировать новые фичи без боязни все поломать