2009/05/26

Проверка соответствия реализованного UI макетам

Часто возникает задача по проверке соответствия реализованного UI макетам, сделанных дизайнером.

Здесь проверяется абсолютно все - цвета, шрифты, выравнивание, размеры элементов.

Хочу предложить несколько полезных вещей, которые облегчат эту задачу.

1) Электронная линейка - с ее помощью можно получить точную информацию о размере фрагмента любого приложения Windows, работающего в оконном режиме.



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

3) Сервис для определения шрифта - определяет возможный шрифт после загрузки примера изображения. Конечно, определяет не всегда правильно.

2009/02/18

А сколько тестировщиков в странах СНГ?

По данным службы занятости США 349 140 людей тестировали программное обеспечение в штатах в 2007 году.

Эти люди тестируют операционные системы, компиляторы, софт для медицины, производства, ПО для военных и ученых, ПО для полетов в атмосфере и космосе.......... и много чего еще.

Интересно, сколько у людей заняты у нас этим занятием.

Я даже не могу представить :-)

2009/02/16

7 вещей, которые необходимо узнать перед началом автоматизации

1. Что такое автоматизированное тестирование?

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

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

Автоматизируйте тестовые сценарии, используемые в регрессионном тестировании.

2) Вы тестируете веб-приложение, которое могут использовать тысячи пользователей одновременно? Как вы будете тестировать такое веб-приложение? Как вы будете создавать такое количество пользователей и эмулировать их работу? Это очень сложная задача, если ее делать вручную.

Автоматизируйте нагрузочное тестирование по созданию виртуальных пользователей для проверки запаса производительности тестируемого приложения.

3) Вы тестируете приложение, в котором изменения в коде происходят очень часто. Интерефейс уже почти стабильный, но функционал изменяется постоянно.

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

4) Для изучения процессов автоматизиции нужно время
У вас должны быть хорошие навыки программирования.
5) Инструменты автоматизации стоят довольно дорого.
Даже если вы используете опенсорсные инструменты - поддержка и написание тестов дорогое удовольствие.

6) Не автоматизируйте нестабильный функционал.

Зря потратите время.
7) Не пытайтесь покрыть приложение функциональными тестами на 100%


2008/12/26

Как приручить AJAX в Selenium

Технология AJAX сейчас встраивается в большинство web-приложений и я столкнулась с проблемой как автоматизировать тест-кейсы, в которых используется AJAX.

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

При перезагрузке элементов Selenium их не видит, а ставить просто паузу - это некорректно.

Я использую такой прием:

boolean el = false; //логическая переменная
for (int second = 0; second < 1000; second++) {
try {
if (selenium.isElementPresent("name")) {
el = true; // если нужный элемент появился то логическая переменная получает значение true
break;

}
}
catch (Exception ignore) {
}
pause(1000);
}
assertTrue(el);

2008/12/25

Добавление пользовательских типов результата в TestLink

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

Но вот, например, мне не хватает стандартных типов результата при выполнении тест-кейса:

Passed
Failed
Blocked

Я добавила еще свои статусы:

Test Error
Test Data Error
In Process





В принципе, добавлять можно сколько угодно статусов - было бы желание.

Как я это делала описано ниже. (Testlink 1.7):


Добавляем статус Ошибка Теста - Test Error
1. Файл констант
/cfg/const.inc.php
$g_tc_status = array (
"failed" => 'f',
"blocked" => 'b',
"passed" => 'p',
"not_run" => 'n',
"not_available" => 'x',
"unknown" => 'u',
"test_error" => 't',
"all" => 'all'
);
$g_tc_status_verbose_labels = array(
"all" => "test_status_all_status",
"not_run" => "test_status_not_run",
"passed" => "test_status_passed",
"failed" => "test_status_failed",
"blocked" => "test_status_blocked",
"not_available" => "test_status_not_available",
"test_error" => 'test_status_test_error',
"unknown" => "test_status_unknown"
);
$g_tc_status_for_ui = array(
"passed" => "test_status_passed",
"failed" => "test_status_failed",
"blocked" => "test_status_blocked",
"test_error" => "test_status_test_error"
);
// radio button selected by default
$g_tc_status_for_ui_default="blocked";
$g_reports_cfg->tc_status = array(
"passed" => "test_status_passed",
"failed" => "test_status_failed",
"blocked" => "test_status_blocked",
"not_run" => "test_status_not_run",
"test_error" => "test_status_test_error"
);
2. Файл языков
/locale/en_GB/string.txt
$TLS_test_status_all = "All";
$TLS_test_status_any = "Any";
$TLS_test_status_not_run = "Not Run";
$TLS_test_status_blocked = "Blocked";
$TLS_test_status_failed = "Failed";
$TLS_test_status_passed = "Passed";
$TLS_test_status_not_available="Not Available";
$TLS_test_status_unknown="Unknown";
$TLS_test_status_test_error="Test Error";
/locale/ru_RU/string.txt
$TLS_test_status_test_error="Ошибка Теста";
3. Цвет статуса
Копируем тему theme_m1 в theme_m2
/gui/themes/theme_m2/css/testlink.css
.passed {
color: white;
background: green;
}
.failed {
color: white;
background: red;
}
.blocked {
color: white;
background: blue;
}
.not_run {
color: white;
background: black;
}
.not_available {
color: black;
background: yellow;
}
.unknown {
color: black;
background: cyan;
}
.test_error {
color: black;
background: #e51cb8;
}
4. config.inc
/* CSS themes - modify if you create own/
define('TL_THEME_CSS_DIR','gui/themes/theme_m2/css/');

В процессе In Process process
Ошибка тестовых данных Test Data Error test_data_error

2008/12/16

Советы для новичков в тестировании

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



Советы ниже, несомненно, помогут вам правильно подойти к построению карьеры в тестировании ПО.

Эти "неоспоримые истины" так же применимы и полезны для опытных гуру-тестировщиков. Применение упомянутых ниже правил в вашей карьере, поможет вам не совершать поступков, о которых придется жалеть.


Знайте свое приложение


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


Изучайте новые технологии

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


Стройте хорошие отношения с разработчиками

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



100% покрытие тестами - сказка

Не стремитесь сделать 100% покрытие кода тестами. Существуют миллионы тестовых комбинаций, которые просто невозможно охватить. Используйте такие методы, как граничный анализ и декомпозиционное тестирование, чтобы ограничить количество тест кейсов до приемлемых размеров.