Большая часть моего опыта связана с плотной работой на рынке Силиконовой долины, а это работа с программным обеспечением таких компаний, как Apple Computer и Borland. Поэтому методы, которые я собрал и разработал предназначены для использования в условиях сжатых графиков, высоких темпов изменений, компонентных технологий, и бедных спецификаций.
Абстрактно Вы уже опытный тестировщик. Вы знаете как написать тест кейс и ввести баг. Что дальше? Вы себя ощущаете экспертом? К сожалению, если вы захотите очень продвинуться в тестировании, вы обнаружите, что программ, семинаров и тренингов, способных вам помочь - практически не существует. Это означает что научится можно только через свой собственный труд.
Это выступление о поиске пути от опыта к опыту. Он основан на контекстно ориентированной методологии тестирования. Она сосредоточена на том, что значит думать, как тестировщик и как создавать и критиковать практики в тестировании (а не просто копировать то, что "гуру" сказал).
Это идеальный учебник, если ваша карьера - это тестирование и вы намерены в ней преуспеть
Видео на 57 минут. Но полностью на английском и без субтитров. Предлагаю скооперироваться и сделать версию с русскими субтитрами. Так же, как и когда то мы сделали со статьёй "Будующее тестирования"
Пока набралось 3 человека. Хотим собрать от 10.
По мере подключения новых людей на перевод - количество подключившихся буду обновлять.
LoadRunner vs Visual Studio
2010-11-01 13:05
Добрый день. В нашей организации разработчики используют нагрузочные тесты прям в Visual Studio, как тестируется в VS не представляю. Есть ли преемущество в LoadRunner перед VS, и может кто-нибудь знает ссылку где такое сравнение бы проводилось. Спасибо!
ТС не воспроизводит клики мышкой.
2010-11-01 16:13
Тестируется интегрированное в оболочку винды ПО. win xp sp3 со всеми обновлениями, tc7.52
в их саппорт не обращаюсь, очень "порадовало" когда они думали две недели и из всех необходимых мне ответов получил только ссылку на SDK для моей версии :/
тестируется копирование на, условно говоря, флешку и с неё на пк. скрипт открывает папку с файлами для копирования, копирует нужную папку, закрывает все это, открывает флешку и имитирует нажатие ctrl+v, после чего я замеряю время копирования файлов. после этого я имитирую ctrl+a, ctrl+с, закрываю флешку, открываю папку на пк и копирую туда файлы с флешки с таким-же замером времени. в конце теста система приводится в изначальное состояние. скрипты были записаны через Record Script, после допилены напильником (дописаны дилеи, таймеры). в начале я написал и отладил копирование на флешку.
как показала практика, такой вариант Aliases.Explorer.wndTestCopying.SHELLDLL_DefView.DUIViewWndClassName.DirectUIHWND.CtrlNotifySink.FolderView обращения к алиасам оказался стабильнее чем тот который генерирует ТС во время записи.
пример функции, отвечающей за старт теста:
function CopyOneToFlash()
{
//открываются нужные папки
OpenFolderForCopyingToFlash();
//предполагается, что папка wndFilesToFlash уже открыта
Aliases.Explorer.wndFilesToFlash.SHELLDLL_DefView.DUIViewWndClassName.DirectUIHWND.CtrlNotifySink.FolderView.ClickItem("One", 0);
Aliases.Explorer.wndFilesToFlash.SHELLDLL_DefView.DUIViewWndClassName.DirectUIHWND.CtrlNotifySink.FolderView.Keys("^c");
Aliases.Explorer.wndFilesToFlash.Close();
//открываю папку в которую необходимо скопировать
CommonScripts.OpenFlashDisk();
//запускаю само копирование с таймером и логированием
CopyToFlashDisk();
}
//***
function CopyToFlashDisk()
{
Aliases.Explorer.wndCabinetWClass3.SHELLDLL_DefView.DUIViewWndClassName.DirectUIHWND.CtrlNotifySink.FolderView.Keys("^v");
CommonScripts.ListenCopyWindow();
Delay(2000);
}
короче, оно работало и работало стабильно. пока я не добавил копирование с флешки на пк. вот эта функция запускает весь кейс
стоит раскомментировать ToPC.StartCopyFromFlashToPC() и тест валится. вот в этом методе, который при вызове из ToFlash.CopyOneToFlash() отлично срабатывает после чего папка закрывается
Ведущий тестировщик, 80 000руб, Москва
2010-11-01 17:55
В международную IT компанию требуется Инженер по тестированию: образование высшее техническое, специализация в одной из областей радиоэлектроники, электротехники, встроенное ПО (firmware), системы спутниковой навигации GPS/GLONASS, Английский язык письменный.
Должностные обязанности:
- Разработка методики и средств тестирования.
- Тестирование firmware разрабатываемых навигационных и связных приборов.
- Проведение испытаний, анализ результатов, взаимодействие с разработчиками, составление отчетности.
Условия:
з/п 80000руб, бонусы, ДМС, оплата проезда и питания, ЦАО
Переход из Selenium IDE на SeleniumRC+PHPUnit+NetBeans
2010-11-01 21:38
Помогите новичку в SeleniumRC+PHPUnit+NetBeans.
Возникла необходимость осуществить переход из Selenium IDE на связку SeleniumRC+PHPUnit+NetBeans в связи с нарастающей сложностью проектов и соответственно тестов.
К этому времени у меня уже есть набор тестов на Selenium IDE. Я их конвертирую в формат для связки и добавляю в проект. И тут начинаются проблемы...
1. Как правильно организовать структуру тестов сейчас? У мене есть ряд действий таких как залогиневание клиента, редактирование данных клиента, создание компаний, для клиента, их настройка, и т.д. Все эти действия в Selenium IDE у меня были в отдельных тест-кейсах объединенных в тест-сюит. Нужно ли сейчас в PHPUnit объединять их в одном файле з набором тестов, или же оставить по одному тесту в каждом файле?
2. Если оставлять все как есть то как организовать тест-сюит. Негде не нашел хорошей информации с примерами по создание тест-сюитов NetBeans+PHPUnit.
3. Если же объеденить все в один файл, то после каждого выполнения теста браузер закрывается и теряются некоторые настройки в проекте + приходется заново залогиниватся. Так же й при первом варианте.
4. При входе на сайт нужно пройти залогинивание. В Selenium IDE это был мой первый шаг в тест-сюите. Как сейчас организувать это дело. Если вызывать tearDown() то браузер закриваэться и нужно перезалогиниватся...
Общем, буду рад любой помощи здесь или хорошим ссилкам по теме.
Обзор инструмента TesterBench
2010-11-01 22:05
Сразу скажу: я не тестер, но подумать о приемлемой автоматизации тестирования одного проекта мне все-таки потребовалось. Причем хотелось заложить на это как можно меньше ресурсов – проект никак нельзя назвать выскобюджетным. Так что возникла и мысль отдать тестирование на аутсорсинг куда-нибудь подальше от двух столиц: удаленно можно нанять неплохих разработчиков по цене московских тестеров не самой высокой квалификации. Конечно, некоторые организационные проблемы при этом возникают – но стоит только один раз попробовать, чтобы понять, что у страха глаза велики, а разница во времени – это даже выгодно.
Конечно, на рынке присутствует море самых разных платных и бесплатных решений – Selenium, QuickTest Pro, SilkTest и т. д. Советовали Selenium – бесплатный и относительно широко распространенный. Но на рынке обнаружилось и почти никому не известное изделие компании MouseClick. Как оказалось, их группа разработки находится в Питере – так что при желании можно получить и поддержку на русском. Ребята сделали оригинальную систему “Tester Bench” ( http://www.testerbench.com/). Эта система не бесплатная, но ее стоимость меньше месячных расходов на одного тестера. Хотя отличия их демо-версии от коммерческой касаются только отчетов да поддержки, так что в некотором смысле продукт от бесплатного недалеко ушел: демо-версии для многих целей хватит за уши. Правда, неизвестно, сколько времени такое продлится – с ростом популярности могут какие-нибудь существенные ограничения и добавить.
Похоже, что при создании своего продукта они озаботились следующей целью: сделать процесс тестирования web – сайтов как можно более простым и как можно менее затратным, требующим лишь минимальной квалификации . Надо заметить, что у них это получилось просто отлично. Продукт вышел настолько простым как в установке, так и в использовании, что может заинтересовать не только фирмы, имеющие команды тестировщиков – но даже частных лиц, желающих без особого напряжения автоматизировать какие-либо свои действия на чужих сайтах. Тем более, что демки (ZIP на 2 мб) для этого вполне достаточно. Так что этот продукт явно найдет пару применений, не предусмотренных разработчиками и связанных больше с автоматизацией действий на web-сайтах, чем с тестированием.
В общем, эти ребята крайне ленивые в хорошем для потребителя смысле: меньше геморроя для пользователей – меньше работы для техподдержки (а на техподдержке у них пока что сами разработчики и сидят) .
Вся установка с настройкой сводится к запуску setup и нажатию кнопок “согласен” – и в меню “Пуск” появляется “Mouseclick Technologies” с тремя ярлыками. Эти три ярлыка - Demonstration, Readme и Uninstall. Запуск демонстрационного скрипта, ссылка на страничку на сайте производителя с поздравлением об успешной установке и запуск деинсталляции. Все! Никакой IDE, только интерфейс командной строки плюс конфигурационный файл(обычный XML, лежит в директории установки). Необычно. Хотя что-нибудь простенькое из трех полей (к примеру, что запускать, куда сохранять логи и автоматические скриншоты, какой браузер использовать) и энного количества чекбоксов не помешало бы. Может, и появится – вроде бы продукт развивается шустро.
Своей IDE нет, зато нет и никаких лишних серверных компонентов: все, что этому движку нужно – скрипт да доступ по HTTP к тому сайту, который нужно протестировать (я для начала немного побаловался с В Контакте, Яндексом и Google) . Ну и набор браузеров, для которых нужно протестировать сайт (если нужен не браузер по умолчанию, то можно указать конкретный браузер в командной строке). Так что к тестированию можно привлечь любого обладателя компьютера с доступом к интернету.
Написание скриптов – процесс нудный, но тоже несложный. Язык скриптов – JavaScript. Скрипты представляют собой имитацию обращений из JavaScript к jQuery, но фактически для написания скриптов достаточно знать всего несколько конструкций. Так что на самом деле для большинства задач нет необходимости ни в знании JavaScript, ни в знакомстве с jQuery .
Из одного файла вызывать другие файлы можно, так что управление наборами тестов не превращается в кошмар. Также можно подключать дополнительные модули CommonJs.
Один скрипт представляет собой текстовый файл с расширением jsq, который содержит набор блоков вида
Open('…') – обязательная конструкция, открывающая страничку.
После команды Open идут блоки команд к элементам страницы. К примеру, ниже – строчка, которая переводит курсор на текстовое поле “ firstTabTextArea'” и вводит в него текст в точности так же, как это сделал бы человек:
$('#firstTabTextArea', 'Text Area').mousemove('top left', +5, +5).click('top left', +5, +5).type("PLEASE DON'T USE YOUR MOUSE DURING THIS DEMONSTRATION");
Подвести мышиный курсор к элементу, кликнуть с небольшим отступом, ввести текст с клавиатуры… Все прозрачно. Причем все это делается не изнутри браузера, а через Windows API . Так что получается действительно полная имитация действий человека.
При желании команды к элементу можно разделять таймаутами при помощи wait(…):
В этом случае создается иллюзия, что наблюдаешь за чужими действиями через какой-нибудь RemoteDesktop. Зачем это нужно? На самом деле это - самый простой способ просмотреть внешний вид в разных браузерах, а скрипт – гарантия того, что ничего не будет забыто.
Кстати, использование OS приводит к любопытному эффекту: перед запуском скрипа нужно убедиться, что на клавиатуре включен нужный язык. В противном случае в поле появится загадочная надпись на кириллице с обилием шипящих согласных.
А строчка ниже - проверка, что в текстовом поле находится именно текст “ DON'T USE YOUR MOUSE ”
$('#firstTabTextArea', 'Text Area').mousemove('bottom right').val().contains("DON'T USE YOUR MOUSE");
Если текст не тот, что нужен, то тест помечается как failed.
Для проверок значений может быть использовано энное количество методов типа .contains(value), .is(value), .not(value) и т. д. Плюс – замечательный метод .matches, который позволяет использовать регулярные выражения.
Что приятно – если сорвется какая-либо из промежуточных операций над элементом, то в лог пишется, что именно сорвалось и почему. К примеру, если возник сбой при попытке кликнуть по элементу из-за того, что элемент находится за пределами видимости, то в логе и будет написано: “click position outside of browser window”.
Не менее приятно и то, что есть метод .screenshot(name) – как из названия и следует, он позволяет получить скриншот. Но вот с местом расположения скриншотов (да и логов) тут перемудрили – по умолчанию они выкладываются в C:\ Documents and Settings\...\Application Data\Mouseclick Technologies\Tester Bench\TestResults\...\Images. Понятно, что все это настраивается в config.xml – но ведь ожидаешь, что если ты ничего не указывал, то логи и скриншоты будут сохранены по умолчанию в какой-нибудь поддиректории рядом с файлом конфигурации. Файл конфигурации ведь положили именно на привычное место - в директорию установки, а не закопали в application data.
В общем, если человек имеет хоть какие-то навыки программирования и представление об HTML – уйдет всего несколько часов на то, чтобы по диагонали просмотреть документацию и разобраться. Хотя многим будет достаточно просто заглянуть в пример скрипта - http://www.testerbench.com/support/testDemo.jsq .
Именно этот скрипт и исполняется при щелчке по ярлычку “Demonstration”. Но таймауты, которые в этом скрипте расставлены, не являются обычной практикой: они нужны только для того, чтобы он не пролетел слишком быстро для человеческих глаз и пользователь успел увидеть “киношку” про манипуляции мышкой и ввод текстовых данных в поля на демонстрационной странице со вполне приличным набором контролов http://testerbench.com/demonstration.html?web .
И эта “киношка” – отнюдь не покоординатная запись движений мышкой и действий пользователя в духе “record macros & replay”. Конечно, элементы сайта, над которыми производятся действия, при желании могут указываться и через указание координат с описаниями шевеления мышкой. Но, понятно, это не основной режим . В качестве основного способа предполагается именно выбор элементов по именам, по классам, перебором списка. Важная именно для тестирования деталь: движок, несмотря на использование в скриптах jQuery, является на самом деле внешним по отношению к браузерам. Движения мышью, ввод данных с клавиатуры – все это делается через операционную систему. Благодаря этому выполняется действительно полная имитация действий пользователя.
То есть идет не просто инициирование события click. Без лишних усилий со стороны автора скрипта сначала подводится курсор мышки к элементу. Поэтому происходит полный набор событий, включая всякие mouseout(), mouseover() и т д
В общем, вкусностей и полезностей предостаточно. А из минусов… Большая часть того, что приходит в голову, зависит от сферы применения. Так что мнения могут быть прямо противоположными. Кому-то не понравится полное отсутствие IDE, а кто-то возразит: IDE здесь нужно не настолько, чтобы я за него переплачивать, пусть лучше сам продукт останется дешевым, а IDE пусть будет отдельным продуктом . Точно такие же аргументы “за” и “против” можно привести и насчет фичи типа “record & play”. Ее в этом продукте тоже нет – а ведь при грамотной реализации она может ощутимо ускорить разработку скриптов, снизив количество черновой работы.
Другой пример: поскольку события мыши и клавиатуры инициируются через OS, сейчас есть единственный способ заставить один компьютер прогонять несколько тестирований одновременно. Этот способ - создание на компьютере нужного количества виртуальных машин . Для кого-то это - существенный минус. А у кого-то вообще нет потребности гнать несколько тестов одновременно.
Но вот с документацией они однозначно не доработали. В поставке явно не хватает такого руководства именно по написанию скриптов к системе, которое позволит быстро и с минимальными усилиями привлечь к работе людей, вообще ничего не знающих ни о JavaScriipt, ни о jQuery. Ведь в принципе система такое позволяет.
Вообще продукт выглядит достойным пристального внимания. Сложно сказать, потеснит ли он системы, уже использующиеся в устоявшихся подразделениях QA крупных компаний. Но он точно в силу своих особенностей может быть полезен для организации тестирования своей продукции удаленно.
Ну и конечно, он однозначно будет полезен в тех компаниях, которые не имеют тестеров ВООБЩЕ. Да, это неправильно, и по всем известным причинам (не лень, как думают некоторые управленцы, а “замыленный глаз”,”в одном месте лечим, в другом - калечим” и все такое) продукт должен тестироваться не только самими разработчиками – в противном случае в тестеров превращаются конечные пользователи продуктов. Но таких фирм в России немало: на тестировании ведь нередко пытаются сэкономить.
Но лучше сэкономить деньги, сэкономив время разработчиков. Да и тоскливо (умное слово – “потеря мотивации к работе”) разработчику, который не планирует стать профессиональным тестировщиком, тратить лишнее время на то, что не имеет прямого отношения к его основным обязанностям. Ну вот подобные продукты как раз и могут помочь сэкономить.
В общем, automated testing рулит