Перейти к содержимому

Публикации frei_by

176 публикаций создано frei_by (учитываются публикации только с 17 июня 2023)



#79939 ... Нужно ли было в таком случае тестирование?

Отправлено автор: frei_by 12 ноября 2010 - 11:47 в Управление тестированием

"пока совсем не прогорели" - это не факт. Формулировка не корректна.
Если тестирование выявляет что "всё капут" - то оно как-бы само себе делает выстрел в голову.

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



#80068 ... Нужно ли было в таком случае тестирование?

Отправлено автор: frei_by 13 ноября 2010 - 19:58 в Управление тестированием

...Пришел он на работу, всех разогнал и фирма не прогорела.
Нужно было в таком случае послушать свирель?

Естественно нужно!!! Иначе никто никогда и никак бы не догадался, что продукт уныл. Ведь другого способа узнать этого не существует. Правда?

Поэты-обманщики. Если-бы никто не догадался что проект уныл - он бы не был уныл. То, что проект не состялся - решает только целевая аудитория, и никто больше.
Я думаю, что если менеджер заявляет что проект уныл - то у такого менеджера проблемы с оценкой рисков.
Вложенные деньги в разработку нужно вернуть любым способом. Иначе менеджера вместе с програмистами нужно гнать с.. веником. Причём менеджера - в первую очередь.
Если тестирование выявляет, что всё пипец - нужно начинатьь заново - это плохое тестирование.
Возвращаясь к примеру с трубами -
если вы ожидали ПВХ трубы а вам поставили железные - то нужно просто задумаьтся о том, что возможно человек, котрый был отвественен за поставку не то, чтобы не понимает разницы между ПВХ и железом, а считает, что ПВХ МОЖЕТ быть заменён железом. В этом случае нужно проводить подробное тестирование - чтобы "просвятить" потсавщика о том, что ПВХ не может быть заменен железом. Если вы просто в отчёте напишите что железо не соотвествует ожидаемому ПВХ - вам ответят - используйте железо. И вам всё равно придётся доказвать почему не может быть ПВХ заменено на железо.
Поэтому - тетирование - как я его вижу - это максимальное описание в деталях того, чем ожидаемй результат отличается от фактического.Предполагается - , что если исправить все баги то ожидаемый и фактический совпадут. = проект больше не УГ.
Если единственным выводом из всех багов является то, что нужно всё закрыть - то это плохое тестирование. Самый самый плохой продукт выпущенныйи на рынок имеет мизерный-мизерный шанс отбить расходы на его создание. Если вы всё загубите до выхода релиза - у вас вообще нет никаких шансов отыграть вложенные в разаработку средства.



#79514 @depend annotation

Отправлено автор: frei_by 03 ноября 2010 - 14:16 в Selenium - Functional Testing

Если кто-нибудь сталкивался, подскажите, что не так.

Пробую составить suite из нескольких небольших тестов:
создал папку test,
тесты из неё запускаю через cmd
phpunit path_to_tests

внутри для проверки создал один файл с тестами
sel_s1Test.php

Проблема: никак не могу настроить использование конструкции
/**
* @depends testlogin
*/

т.е. есть
class name1 extends PHPUnit_Extensions_SeleniumTestCase
{
protected function setUp() {}
protected function tearDown () {}

public function testlogin ()
{
$this->assertEquals(true, false);
}

/**
* @depends testlogin
*/
public function testnavigatetomodule ()
{}

}

выполняются как
FE

ожидаемый результат:
FS

Протип данного решения прочитал в
http://www.phpunit.d...st-dependencies

Например, с определением похожей декларации
/**
* *@dataProvider provider
*/
проблем не возникает. Т.е. @dataProvider работает, а @depends игнорируется.

если нужно, вот полный ответ от phpunit
PHPUnit 3.5.3 by Sebastian Bergmann.

FE

Time: 14 seconds, Memory: 4.50Mb

There was 1 error:

1) name1::testnavigatetomodule
PHPUnit_Framework_Exception: Response from Selenium RC server for testComplete().
ERROR: Element //a[@id='link_2' and text()='Сервис'] not found.


C:\www_pub\pricelist\1_Test.php:34

--


There was 1 failure:

1) name1::testlogin
Current URL: http://test1.webadmin.shop.by/index.php

Failed asserting that <boolean:true> matches expected <boolean:false>.

C:\www_pub\pricelist\1_Test.php:24

FAILURES!
Tests: 2, Assertions: 1, Failures: 1, Errors: 1.



#84167 database reverse engineering

Отправлено автор: frei_by 09 февраля 2011 - 15:50 в Инструменты и технологии

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

Из бесплатных - нашёл MySQL Workbench (собственно для MySQL).

можно выгрузить дамп структуры таблиц командой вроде
mysqldump -u user -p --no-data bd tbls > /home/user/tables.sql

и по sql дампу получаются отличные ER диаграммы.

посоветуете ещё какие-нибудь?



#78885 Issue Document - need help! срочно

Отправлено автор: frei_by 15 октября 2010 - 15:23 в Тест-дизайн и ручное тестирование

страницу в валидатор - и в баг прикрепляю ответ валидатора.
http://validator.w3.org/
Дизайнеры в восторге.



#78869 Issue Document - need help! срочно

Отправлено автор: frei_by 15 октября 2010 - 10:57 в Тест-дизайн и ручное тестирование

мои скрины на орфогрфические ощибки выглядят примерно так:

bug.jpg



#78853 Issue Document - need help! срочно

Отправлено автор: frei_by 15 октября 2010 - 06:29 в Тест-дизайн и ручное тестирование

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

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



#79123 PHPUnit + Selenium RC + NetBeans

Отправлено автор: frei_by 22 октября 2010 - 11:01 в Selenium - Functional Testing

Подскажите пожалуйста как решить затруднение:

Пусть есть элемент:
<input type="text" value="" name="findtext" id="findtext" style="background-color: rgb(255, 255, 255);">

Нужно проверить что value='' пустая строка.

В IDE код выглядит следующим образом:
<tr>
	<td>storeElementPresent</td>
	<td>//input[@id='findtext' and @name='findtext' and @type='text']</td>
	<td>a1</td>
</tr>
<tr>
	<td>storeAttribute</td>
	<td>//input[@id='findtext' and @name='findtext' and @type='text']@value</td>
	<td>a2</td>
</tr>
<tr>
	<td>echo</td>
	<td>${a1} + ${a2}</td>
	<td></td>
</tr>

результат выполнения -
* [info] Executing: |storeElementPresent | //input[@id='findtext' and @name='findtext' and @type='text'] | a1 |
    * [info] Executing: |storeAttribute | //input[@id='findtext' and @name='findtext' and @type='text']@value | a2 |
    * [info] Executing: |echo | ${a1} + ${a2} | |
    * [info] echo: true + ${a2}

если писать на PHP под RC -
$this->ignoreAttributesWithoutValue(false);
$value = $this->getAttribute('//input[@id=\'findtext\' and @name=\'findtext\' and @type=\'text\']@value');

то выдаёт ошибку (валится тест) -
PHPUnit_Framework_Exception: Response from Selenium RC server for testComplete().
ERROR: Could not find element attribute: //input[@id='findtext' and @name='findtext' and @type='text']@value
Насколько я пониаю, если аттрибут имеет пустое значение то для IDE для него просто не присваивается значение, тогда как для RC значение не находится и генерируется ошибка...

Вопрос: Как используя метод getAttribute() проверить, что атрибут имеет значение "пустая строка" и при этом не получить ошибку теста?



#79027 PHPUnit + Selenium RC + NetBeans

Отправлено автор: frei_by 20 октября 2010 - 11:36 в Selenium - Functional Testing

вы таки будете смеятся, но это особенность Netbeans.

ЕСЛИ вы например захотите сохранить проект - а в netBeans работаешь именно с проектами - в папке d:\se\тетсирование шаблонов Ёо\ - то возникает такая ошибка
нужно для названий папок использвать латиницу. d:\se\test_patterns\

-вот за такие вот надмозги я не люблю все эти чащобы классов.



#79129 PHPUnit + Selenium RC + NetBeans

Отправлено автор: frei_by 22 октября 2010 - 11:57 в Selenium - Functional Testing

Т.е. вы предлагаете отавить PHP в покое и взятся за Java?

1. String attValue = selenium.getAttribute(locator + "@value"); // взять атрибут
2. log.info("Value is: '" + attValue + "'"); // записать в лог
3. assertEquals("", attValue); // сравнить с пустой строкой.


Так вот у меня пока что получается,
$value = $this->getAttribute('//input[@id=\'findtext\' and @name=\'findtext\' and @type=\'text\']@value');
- возварщает ошибку так как метод getAttribute вернул пустую строку и почему-то такой вариант считается что атрибут не найден:

ERROR: Could not find element attribute: //input[@id='findtext' and @name='findtext' and @type='text']@value

хотя если использовать подобный xpath в IDE,
то ошибки не возникает - а просто не присваивается переменная ${a2}
<td>storeAttribute</td>
        <td>//input[@id='findtext' and @name='findtext' and @type='text']@value</td>
        <td>a2</td>

Специально проверял действие getAttribute для этого-же элемента в случае, когда заполнен value- всё работает...



#79026 PHPUnit + Selenium RC + NetBeans

Отправлено автор: frei_by 20 октября 2010 - 11:27 в Selenium - Functional Testing

при выполнении скирпта внезапно появилась ошибка

PHPUnit 3.5.0 by Sebastian Bergmann.

Warning: DOMElement::setAttribute(): string is not in UTF-8 in C:\Program Files\PHP\pear\PHPUnit\Util\Log\JUnit.php on line 299
Warning: DOMElement::setAttribute(): string is not in UTF-8 in C:\Program Files\PHP\pear\PHPUnit\Util\Log\JUnit.php on line 413
.
Warning: DOMDocument::saveXML(): output conversion failed due to conv error, bytes 0xF2 0xE5 0xF1 0xF2 in C:\Program Files\PHP\pear\PHPUnit\Util\Log\JUnit.php on line 466

Time: 10 seconds, Memory: 4.50Mb
OK (1 test, 0 assertions)

При этом тест выполнинлся без ошибок, о чём можно судить по ".", но при этом не отображается в NetBeans как выполненный в окне TaskResult

посмотрел на JUnit.php, 299
$testSuite->setAttribute('file', $class->getFileName());
посмотрел на JUnit.php, 413
$testCase->setAttribute('file', $class->getFileName());
используется в этом файле всего в двух местах,...

первая вызвается из function startTestSuite(PHPUnit_Framework_TestSuite $suite)
вторая вызвается из function startTest(PHPUnit_Framework_Test $test)

466 строка - это
public function getXML()
    {
        return $this->document->saveXML();
    }

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

Может быть ещё у кого-то подобная ошибка возникала?



#78967 PHPUnit+Selenium RC+NetBeans

Отправлено автор: frei_by 19 октября 2010 - 11:15 в Selenium - Functional Testing

В начале надо установить два плагина: PHP и Selenium Module for PHP

Подробнее тут: http://netbeans.org/...phpunit_ru.html

отличная ссылка, именно благодоря этой статье у меня первый раз удалось поставить и запустить всё вместе.



#78991 Selenium Core и редирект

Отправлено автор: frei_by 20 октября 2010 - 06:38 в Selenium - Functional Testing

приведите пожалуйста пример сайта в доступного в сети чтобы можно было проверить такой редирект...



#86257 selenium html source

Отправлено автор: frei_by 29 марта 2011 - 10:37 в Selenium - Functional Testing

Мне это почему-то напоминает работу некоторых xslt процессоров, где зависимости от того, хотите вы получить html или xml добавляется в конец экранирующий тег.
Потму что по некоторым спекам html допускается НЕ_применение экранирующих тегов, и если именно <input id="_wpnonce" name="_wpnonce" value="bc9e97a75f" type="hidden"> генерится из xml данных - то оно действтельно может оказатся без / хотя в оригинале было с /.



#78703 Selenium IDE встроенный функции

Отправлено автор: frei_by 11 октября 2010 - 12:27 в Selenium - Functional Testing

Подскажите пожалуйста что делает функция storeAttributeFromAllWindows

В описании прочитал, что:

storeAttributeFromAllWindows(attributeName, variableName)
Generated from getAttributeFromAllWindows(attributeName)
Arguments:
* attributeName - name of an attribute on the windows
Returns:
the set of values of this attribute from all known windows.
Returns an array of JavaScript property values from all known windows having one.


Перевожу как "должна вернуть массив свойств JS из всех существующих окон."
использую как
storeAttributeFromAllWindows
attributeName = alt
variableName = str

Команда проходит без ошибок. Ожидаю что вернёт массив всех атрибутов alt.

Далее
echo
${str}

не возвращает ничего....

вопрос:
1) я прав?
2) как посмотреть этот массив используя только средства IDE?
3) как проверить наличие и содержание аттрибутов alt у всех изображений?



#78753 Selenium IDE как обновить кэш для Firefox

Отправлено автор: frei_by 13 октября 2010 - 08:51 в Selenium - Functional Testing

Можно через RC отправкой нативных нажатий Selenium#keyDownNative и т.п.


Подскажите плз как называетвся функция отправляющая нативные нажатия...



#78704 Selenium IDE как обновить кэш для Firefox

Отправлено автор: frei_by 11 октября 2010 - 12:59 в Selenium - Functional Testing

Господа, подскажите как обновить кэш броузера Firefox.
встроенная функция refresh не помогает.

помогает только ctrl+F5.

Нашёл что можно симулированть controlKeyDown
нашёл что можно посылать коды

keyPress(locator, keySequence)
Arguments:

* locator - an element locator
* keySequence - Either be a string("\" followed by the numeric keycode of the key to be pressed, normally the ASCII value of that key), or a single character. For example: "w", "\119".

Simulates a user pressing and releasing a key.


если это сработает, подскажите код F5... и какой локатор стоит указать? пробовал указывать какой-нибудь div, вроде нажимало, но не на ту клавишу. писал как
controlKeyDown
keyPress //div \\116

-
сработало как ctrl + T...



#78762 Selenium IDE как обновить кэш для Firefox

Отправлено автор: frei_by 13 октября 2010 - 11:54 в Selenium - Functional Testing

нашёл в описании php клиента

keyDownNative (line 2638)
Simulates a user pressing a key (without releasing it yet) by sending a native operating system keystroke.


использую как

//нажимаем ctrl+F5
    $this->controlKeyDown();
    $this->keyDownNative(116);
    $this->controlKeyUp();

смущает только строчка

void keyDownNative (string $keycode)
string $keycode: an integer keycode number corresponding to a java.awt.event.KeyEvent; note that Java keycodes are NOT the same thing as JavaScript keycodes!


не подскажете таблицу Java кейкодов?



#78852 Selenium IDE как обновить кэш для Firefox

Отправлено автор: frei_by 15 октября 2010 - 06:23 в Selenium - Functional Testing

Ну в общем решение не совсем с IDE, но у меня получилась такая вот функция:

function refresh_b ($n=3)
      {
          // 1 - refresh
          // 2 - ctrl + f5
          // 3 - refresh & ctrl + f5

      switch ( is_numeric($n) )
         {
             case ($n = 1 ): $this->refresh(); break;
             case ($n = 2 ): {
                 $this->controlKeyDown();
                 $this->keyPressNative(0x74);
                 $this->controlKeyUp();
             }break;
             case ($n = 3 ): {
                 $this->refresh();
                 $this->controlKeyDown();
                 $this->keyPressNative(0x74);
                 $this->controlKeyUp();
             }break;
         default:die('Failed to refresh;') ;
         }

keyPressNative - существует только для RC...



#78920 Selenium IDE как обновить кэш для Firefox

Отправлено автор: frei_by 18 октября 2010 - 10:48 в Selenium - Functional Testing

Можно как-то так, например:
String jScript_ = "" +
"Response.Cache.SetExpires(DateTime.Parse(DateTime.Now.ToString()))\n" +
"Response.Cache.SetCacheability(HttpCacheability.Private)\n" +
"Response.Cache.SetNoStore()\n" +
"Response.AppendHeader("Pragma", "no-cache")";

selenium.getEval(jScript_);

А вот для WebDriver: http://code.google.c...es/detail?id=40


по моему работать не будет.... вы по-моему с чем-то путаете javascript, либо я что-то не понял.
Response.Cache.SetNoStore -
http://msdn.microsof...setnostore.aspx
?



#79404 Selenium IDE как обновить кэш для Firefox

Отправлено автор: frei_by 30 октября 2010 - 20:16 в Selenium - Functional Testing

Я используя такую комманду в IDE:
deleteCookie | <cookie-name> | path=/, domain=<domain-name>, recurse=true

Вроде работает


А по моему колдунство какое-то. Удалить кукиз = обновить кеш? Возможно, что броузер при старте новой сессии кеш не используется. Или вы имеете ввиду кеш со стороны сервера? Что-то я недопонял...



#78965 Selenium IDE как обновить кэш для Firefox

Отправлено автор: frei_by 19 октября 2010 - 10:29 в Selenium - Functional Testing

финт ушами для кеша:

function timestamp ()
      {
         $time = date ('c');
         $time = str_replace(':','-',$time);
         return $time;
      }
...
$this->open('/?time='.timestamp());

Естественно учитывая специфику того, что тесты будут выоплнятся в обёртке PHPUNIT нужно будет правильно подключить в класс функцию...



#84991 Selenium RC + PHP

Отправлено автор: frei_by 28 февраля 2011 - 07:36 в Selenium - Functional Testing

0. Забудте про denwer

1. Установить php
2. Установить pear
3. Через pear вытянуть phpunit с сайта Бергмана
3.1 Через pear вытянуть Selenium testcase с сайта Бергмана
4. Скачать архив с jar селениумом и запустить сервер.
5. скопировать в блокнот селениумовский Hello world и запустить через командную строку как файл php <ваш файл>.

я обычно в такой последовательности делаю.



#83395 Selenium RC + PHPUnit getXpathCount выдает неверное значение

Отправлено автор: frei_by 21 января 2011 - 14:17 в Selenium - Functional Testing

Я бы предположил что событие вами вызываемое привязано не к span а к другому элементу, который содежит span, и "кликать" возможно стоит попробовать по нему...



#83350 Selenium RC + PHPUnit getXpathCount выдает неверное значение

Отправлено автор: frei_by 20 января 2011 - 13:00 в Selenium - Functional Testing

<?php

Спасибо за пример кода. У вас красиво получается писать. у мнея в тестах всё гораздо путаннее выглядит. :crazy: