Обзор – ‘Login’ объект или нет?


С одной стороны, “Login” конечно же объект Recruiting, но с другой стороны без него никак не обойтись другим объектам приложения. Как быть?

Точнее будет сказать, что “Account” это объект, а “Login” это функциональная его часть. Посольку мы не создавали в приложении объект “Account”, то конечно же мы можем его и не тестировать. Мы можем этого не делать ещё и потому,что всё равно не сможем написать полный набор тестов для него.

Если мы будем рассматривать “Account” как отдельный объект, можно сравнить действия, которые с ним можно произвести, с действиями над другими объектами.

Если провести параллели, то регистрация учётной записи это добавление, тогда как логин это по сути поиск. Ну а редактирование или удаление такой записи обычно находится где-нибудь в настройках учётной записи, прячущихся где-нибудь за Settings или Profile в UI.

Так что полный набор тестов для объекта “Account” в общем случае должен включать – регистрацию, логин, логаут, редактирование профиля, включая восстановление пароля, а также удаление регистрационной записи.

Read the rest of this entry »

Обзор – О ‘фатальностях’ в тестах


Ответу на вопрос
“После каких событий нужно останавливать все тесты?”
посвящается.

В этот раз мы сразу перечислим фатальныe ошибки, а потом расскажем более подробно о некоторых из них.

Итак, основной список фатальных ошибок:

1. Нет сервера Selenium
2. Неудачный логин
3. Отсутствует элемент
4. Нельзя сохранить запись с known-good-values (KGV) значениями
5. Появление неправильной страницы

Большинство из этих ошибок проявятся в самом начале тестирования. Если их не будет – думаю, дальше тесты будут работать без проблем.

Несмотря на это, мы добавили ещё несколько фатальных ошибок, которые при нормальной работе вроде бы не должны возникнуть, в дополнительный список:

6. Неудачная попытка заполнить поле значением
7. Cлишком много обычных ошибок

Read the rest of this entry »

Двигателю прогресса посвящается
by Igor


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

Если вы постеснялись спросить о версии на PHP – отвечаем. Алёна потеряла интерес к происходящему “на подмостках”. Так бывает – жисть она такая штука…

Версия лежащая в SVNе работоспособна и примерно соответствует версии 54 на Java. Мы не бросим PHP просто потому, что любим его. Саша будет вести дальнейшую работу над ней.

Итак – о чём мы будем писать дальше.

Read the rest of this entry »

Сотворение – День первый (вечер)
by Dima

Если в Setting.java установлены следующие настройки:

	public static final Boolean LOG_INFOS = true;
	public static final Boolean LOG_VERBOSE = true;

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




Несколько примеров.

11:25:12,156 INFO pool-1-thread-1 utils:info:? - (V)Tab opening started
11:25:13,453 INFO pool-1-thread-1 utils:info:? - (V)Tab opened: title is Employment Websites: Home ~ Salesforce - Developer Edition

Read the rest of this entry »

Сотворение – День первый
by Dima

И Я сказал: да будет код! И тут стал код.

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

Перед тем, как начать писать код, который будет тестировать приложение SalesForce, мы провели ужасно много времени, уточняя для себя эту задачу. Результаты, которые мы хотим получить, что именно, в каком порядке и как именно будем проверять – всё это из, так сказать, первичного бульона, а скорее – каши мыслей, превратилось в довольно стройную систему, и дело осталось за малым – спуститься на землю.

Начнём с чего-то глобального – общих функциий, которые будут использовать другие классы.


Рисунок 1


Read the rest of this entry »

Сотворение – День первый (раннее утро)
by Dima

В качестве утренней зарядки предлагаем запустить первую работоспособную версию тестов на Jave (Revision 54). Мы исходим из предположения, что среда уже установлена. Один из вариантов описан нами в ‘Установка среды’.

Самое главное – вам понадобится собранное приложение Recruiting (на самом деле, пока будет достаточно иметь только объект Employment Websites этого приложения).

При создании Recruiting хорошо бы точно следовать инструкции – до буквы. Иначе, будет много ошибок и в них будет сложно разобраться. Для последней версии тестов это не критично – как раз все отклонения будут удобно предъявлены (но мы будем обсуждать её позже).

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

Сначала достаём требуемую версию из SVN репозитория…

Рис. 1 http://deepshiftlabs.com/svn/tests/trunk/salesforce/java

Read the rest of this entry »

Анатомия теста by Igor

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

Вот и сейчас пишу и ловлю себя на мысли о том, что описываю наше понимание около трёх месяцев назад. Где-то я уже это слышал? Кажется в планетарии, в детстве? Про свет далёких звёзд, который доходит до нас через миллионы лет …, а на языке почему-то упрямо вертится рекламный слоган “Оставайтесь с нами ещё три месяца, чтобы узнать о нашем сегодняшнем понимании тестирования, и вы не пожалеете!”

Наша задача сегодня прооперировать такой просто-непростой организм Рекрутингового социума как ‘Веб сайт’.

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

Рис. 1 Пациент


Read the rest of this entry »

Элемент-арное дерево
by Alena

Вот и выросло наше деревце, зазеленело. В его тени находят приют и уставшие пожилые тестировщики, и юнцы от тестирования. Вон, очередную экскурсию из Кружка юного тестировщика ведут…

Экспонат ‘Дерево на ветру’ от SalesForce примерно 1999-2009 гг.


Read the rest of this entry »

Анализ by Alena & Dima

Эхх, нелегка жизнь web-тестировщика. И пьесы ставим, и в блоге пишем, да и тесты не ждут. В общем, долго ли, коротко ли, но вступили мы в Этап 3. (Уж вступили, так вступили…) Стоим в нём, смотрим по сторонам. И что мы видим? Видим готовое, даже рабочее приложение на платформе SalesForce, созданное по руководству. Самое время разобрать его по косточкам, сделав ‘Шаг 1′, записанный однажды ненастной ночью черным маркером на белой поверхности доски.
Ну-с, начнем.

Text

SalesForce любезно предоставляет возможность задавать размер текстового поля при создании. Размер может быть абсолютно любым! Но в пределах 1..255 :) Проверить просто – ввести столько символов, сколько указано в спецификации для поля, плюс один символ и удостовериться, что последний не влез.

Phone

В поле Phone разрешено сохранять до 40 символов, поэтому даже 41 символа нам хватит для проверки. Символы могут быть любыми, что выглядит несколько странно. Хотя телефонные номера типа ‘1300 ORDER TESTER’ встречаются повсеместно, мы не знаем ни одного случая, когда такие номера принимались бы для ввода в поля web-формы.

URL

URL может содержать до 255 любых символов (проверяем как поле Text). Если введенный URL не начинается ни с ‘http://’, ни с ‘https://’, ни даже с ‘ftp://’, то при сохранении введенное значение предваряется родным и знакомым ‘http://’. На странице просмотра URL отображается как ссылка. Символы двойных кавычек и треугольных скобок не отображаются. Примеры с картинки дают некоторое представление о том, как можно протестировать поведение поля URL.


Read the rest of this entry »

Невыносимая лёгкость тестирования
by Dima & Alena

Автоматически сгенерировано ‘Deep Shift Forum2Play’ конвертером из phpBB Topic ID: 15345 18 Марта 2009

Одноактная пьеса о тестировании и пользе мозгового штурма

Любое сходство с реальными людьми является преднамеренным

ДЕЙСТВУЮЩИЕ ЛИЦА:

Дима – Java-штурмовик.
Алёна – PHP-перехватчик.
Игорь – тяжелый бомбандировщик.

СЦЕНА I

Офис, на тумбочке стоит аквариум, в нём плавает рыба неизвестной породы. За окном холодно и темно, шумит ветер, за столом сидит Игорь и что-то рисует простым карандашом. Входит Дима, присаживается на край стола, смахивая ошмётки от резинки.

Дима. Вот мы собираемся писать тесты для Recruiting…

Игорь откладывает в сторону страшного вида диаграмму.

Дима. Несмотря на то, что я уже написал план тестирования объекта ‘Employment WebSite’, у меня осталось несколько скользких вопросов. Сначала я думал, что эти вопросы прояснятся сами собой, когда я начну писать план или реальные тесты. Но это не помогло – я написал план исходя из того, что содержимое плана в данном случае от ответов на вопросы не зависит. Я не могу ответить с уверенностью на некоторые вопросы. Ты не против поговорить об ЭТОМ?

Игорь. ЭТО тоже меня беспокоит. Собственно, ради ЭТОГО мы и затеяли сей ‘экзерсис’. Но давай позовём Алёну, как известно, две головы хорошо, а три хуже, чем четыре.

Дима зовет Алёну. Игорь варит черный кофе в закопченной турке.

Read the rest of this entry »

Заблудились? Зайдите в архив.