Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Преимущество XPath. Вопрос. Дискас



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Преимущество XPath. Вопрос. Дискас
2018-09-07 10:18

Доброго времени суток, дорогие друзья. Хочу придти к истине в одном вопросе, который беспокоит меня уже не один день. 

Итак, очень многие используют в юайных тестах обращение к элементам через xpath. Почему не использовать обращение к элементам по ID. Какие минусы этого подхода, и в чем преимущество непосредственно xpath над id. По скорости они примерно одинаковые. У ID очевидный плюс в том что если меняется структура страницы то элементы мы будем получать в любом случае. Плюс xpath нужно писать и поддерживать, id - не нужно(не в той степени и только со стороны присвоения этих id на фронтах). Может быть суть кроется в том, что присваивать id всем элементам это не очень хороший подход? Но тогда почему?

Помогите кто- нибудь, это жизненно необходимо



Размышления о том, кто должен создавать автотесты
2018-09-07 12:05

Автор: Баз Дийкстра (Bas Dijkstra)

 

Оригинал статьи

 

Перевод: Ольга Алифанова

 

В Твиттере широко обсуждалось, кто должен отвечать за создание кода автотестов. Судя по тому, что я читал, люди разбились на два лагеря:

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

Читать публикацию полностью



Посоветуйте курс по Maven+TestNG
2018-09-07 14:09

Всем привет! 

В рамках активной автоматизации в проекте обнаружили некоторые пробелы в знаниях инструментов. 

Дано: 

Мавеновский проект, тесты гоняются с помощью ТестNG

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

Хотелось бы как-то прокачаться в этой области, и не самим рыть интернет, а послушать каких-нибудь умных людей, с примерами и лучшими практиками, тем более, что ресурсы, чтобы их купить даже имеются) 

Быть может быть кто-нибудь может посоветовать курс (онлайн/ очный / записанный) по maven, testNG или (что предпочтительно) их взаимодействию?



С днем тестировщика!
2018-09-07 15:30

Удачи и хорошего настроения!

 

PS. Если что, 9 сентября в 11:00 по Москве собираемся на вебпосиделки.

Координационный чат: https://t.me/FrancisBaconClub



ищем программистов на ивент
2018-09-07 19:52

Приглашаем программистов на масштабный полугодовой блокчейн-хакатон от CryptoBazar Fund в онлайн формате. 

D83DDD38.png Общий призовой фонд - более 10 000 000 рублей; 
D83DDD38.png 2000+ разработчиков из России, Украины, Белоруссии, Казахстана и стран Балтики; 
D83DDD38.png 4 полуфинальных раунда, каждый из которых включает этап 2705.pngonline подготовки и последующий очный хакатон в Москве; 
D83DDD38.png Финал в Гонконге: двухдневный круиз на суперлайнере, где лучшие из лучших будут соревноваться за главный приз и оцениваться ведущими мировыми разработчиками; 

2705.png Сайт с подробной информацией: 
http://HackathonSerial.CryptoBazar.io/?utm_source=prm.
2705.png Telegram: 
@CryptoBazarHackathon



Использовать часть элементов из List<WebElement> c click()
2018-09-07 23:12

Камрады!

 

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

кроме ПЕРВОГО и соотвтетсвенно произвести Asserts для каждгого выбранного эдемента. (по нескольким позициям)

Логика выпадаюзего списка - это фильтрация, которая имеет свой pattern и конечное значение (Integer)

 

post-47229-0-24002500-1536350435_thumb.j

 

Code HTML:  (активного элемента)

<div class="ui-select-container selectize-control single ng-not-empty ng-valid ng-touched ng-dirty ng-valid-parse" ng-class="{'open': $select.open}" 
     theme="selectize" ng-model="ctrl.filter.rack.value" on-select="ui.addFilter('rack', ctrl.filter.rack.value)" style="">
<div class="selectize-input selectize-focus" ng-class="{'focus': $select.open, 'disabled': $select.disabled, 'selectize-focus' : $select.focus}" 
     ng-click="$select.open && !$select.searchEnabled ? $select.toggle($event) : $select.activate()" style="">
<div class="ui-select-match ng-scope" ng-hide="$select.searchEnabled && ($select.open || $select.isEmpty())" style="">
     <span class="ui-select-placeholder text-muted ng-binding ng-hide" ng-show="!$select.searchEnabled && ($select.isEmpty() || $select.open)"/>
     <span class="" ng-hide="$select.isEmpty() || $select.open" ng-transclude="" style="">FIX35R01</span>
</div>
<input class="ui-select-search ui-select-toggle ng-pristine ng-valid ng-empty ng-touched ng-hide" autocomplete="off" tabindex="-1" 
     ng-class="{'ui-select-search-hidden':!$select.searchEnabled}" ng-click="$select.toggle($event)" placeholder="" ng-model="$select.search" 
     ng-hide="!$select.isEmpty() && !$select.open" ng-disabled="$select.disabled" aria-label="Select box" style="width: 190px;" type="search"/>
</div>

Code (Java - Selenium)

    @Step(description = "filter all Racks Cables assertion")
    public  void assertAllCablesInRacks() {
        List<WebElement> rackElements = driver.findElements(CablingElements.RACK_FILTER_LIST);  //4 elements

        for (WebElement webElement : rackElements) {
            clickRackFilter();
            driver.findElement((By) webElement).click();
            assertFilterCables();
        }
    }

    @Step(description = "filter single Rack cables assertion")
    public void assertFilterCables() {
        commonWebSteps.waitForElementToBeVisible(CablingElements.CABLES_NUMBER);
        Integer actualRackFilterCount =  commonWebSteps.getNumberFromElement(CablingElements.CABLES_NUMBER);
        String actualRackName = commonWebSteps.getNameFromElement(CablingElements.RACK_TITLE);

        Integer expectedRackFilterCount =  cableRackFilterCount();
        String expectedRackName = commonWebSteps.getNameFromElement(CablingElements.RACK_FILTER_TAG);

        assertThat(actualRackFilterCount).as("<---------- Assert Cabling Filter count is failed ---------> " + actualRackFilterCount)
                .isEqualTo(expectedRackFilterCount);

        assertThat(actualRackName).as("<---------- Assert Cabling Filter name is failed ---------> " + actualRackName)
                .isEqualTo(expectedRackName);
    }



Проблемы:

 

1.  Из списка выпадающего dropbox мне нужно выбирать по очереди в цикле все элементы, кроме первого (default) 

     В первом методе, WebElement webElement : rackElements

    ---> Как при таком определении, правильно и корректно оформить пробег по всем элементам, кроме ПЕРВОГО

 



Использовать часть элементов из List&#60;WebElement&#62; c click()
2018-09-07 23:21

Камрады!

 

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

кроме ПЕРВОГО и соотвтетсвенно произвести Asserts для каждгого выбранного эдемента. (по нескольким позициям)

 

Логика выпадающего списка - это фильтрация, которая имеет свой pattern (Name) и конечное значение (Integer)

 

post-47229-0-24002500-1536350435_thumb.j

 

Code HTML:  (активного элемента)

<div class="ui-select-container selectize-control single ng-not-empty ng-valid ng-touched ng-dirty ng-valid-parse" ng-class="{'open': $select.open}"
     theme="selectize" ng-model="ctrl.filter.rack.value" on-select="ui.addFilter('rack', ctrl.filter.rack.value)" style="">
<div class="selectize-input selectize-focus" ng-class="{'focus': $select.open, 'disabled': $select.disabled, 'selectize-focus' : $select.focus}"
     ng-click="$select.open && !$select.searchEnabled ? $select.toggle($event) : $select.activate()" style="">
<div class="ui-select-match ng-scope" ng-hide="$select.searchEnabled && ($select.open || $select.isEmpty())" style="">
        <span class="ui-select-placeholder text-muted ng-binding ng-hide" ng-show="!$select.searchEnabled && ($select.isEmpty() || $select.open)"/>
        <span class="" ng-hide="$select.isEmpty() || $select.open" ng-transclude="" style="">FIX35R01</span>
</div>
      <input class="ui-select-search ui-select-toggle ng-pristine ng-valid ng-empty ng-touched ng-hide" autocomplete="off" tabindex="-1"
         ng-class="{'ui-select-search-hidden':!$select.searchEnabled}" ng-click="$select.toggle($event)" placeholder="" ng-model="$select.search"
           ng-hide="!$select.isEmpty() && !$select.open" ng-disabled="$select.disabled" aria-label="Select box" style="width: 190px;" type="search"/>
</div>

Code (Java - Selenium)

    @Step(description = "filter all Racks Cables assertion")
    public  void assertAllCablesInRacks() {
        List<WebElement> rackElements = driver.findElements(CablingElements.RACK_FILTER_LIST);  //4 elements

        for (WebElement webElement : rackElements) {
            clickRackFilter();
            driver.findElement((By) webElement).click();
            assertFilterCables();
        }
    }

    @Step(description = "filter single Rack cables assertion")
    public void assertFilterCables() {
        commonWebSteps.waitForElementToBeVisible(CablingElements.CABLES_NUMBER);
        Integer actualRackFilterCount =  commonWebSteps.getNumberFromElement(CablingElements.CABLES_NUMBER);
        String actualRackName = commonWebSteps.getNameFromElement(CablingElements.RACK_TITLE);

        Integer expectedRackFilterCount =  cableRackFilterCount();
        String expectedRackName = commonWebSteps.getNameFromElement(CablingElements.RACK_FILTER_TAG);

        assertThat(actualRackFilterCount).as("<---------- Assert Cabling Filter count is failed ---------> " + actualRackFilterCount)
                .isEqualTo(expectedRackFilterCount);

        assertThat(actualRackName).as("<---------- Assert Cabling Filter name is failed ---------> " + actualRackName)
                .isEqualTo(expectedRackName);
    }

Проблемы:

 

1.  Из списка выпадающего dropbox мне нужно выбирать по очереди в цикле все элементы, кроме первого (default) 

     В первом методе, WebElement webElement : rackElements

    ---> Как при таком определении, правильно и корректно оформить пробег по всем элементам, кроме ПЕРВОГО

          (и в общем случае - по ОПРЕДЕЛЕННЫМ элементам из List),

 

2. Так как элемент, WebElement - то метод click() для него, я определил с помощью Cust (By)

   ---> Начколько это корретно и будет ли такая конструкция вообще работать?  (выделено bold)

 

спасибо

Прикрепленные изображения

  • cabling.jpg


jira база данных
2018-09-08 13:47

Добрый день. Подскажите пожалуйста. Jira установлена локально на ubuntu server. не могу найти настройки подключения базы данных. Нужно подключится к базе данных и поменять пароль пользоватея



Поздравляем с Днем Тестировщика!
2018-09-08 18:57
Всех тестировщиков, автоматизаторов, тест-лидов и QA-менеджеров, юзабилистов, нагрузочников, пен-тестеров - с днем тестировщика, коллеги! Чистого кода и успешных релизов!

Читать публикацию полностью

 



ISTQB Advanced Test Alanyst опыт 2018
2018-09-09 11:15

Всем привет. Делюсь моим опытом по поводу этого экзамена. Простите, что получилось долго и занудливо:)

Сразу оговорюсь, на этом форуме кажется уже была такая тема, вот: http://software-testing.ru/forum/index.php?/topic/34038-istqb-advanced-test-alanyst/   , там обсуждают решение вопросов, здесь я это не буду делать, так что там полезно, наверное, посмотреть:). Спойлер: здесь я буду приводить только общую информацию с упором на те затруднения , которые мне встречались:) 

 

Итак: вариант для сдачи Test Alanyst. 

Есть еще 2 варианта: advanced test manager и advanced technical test analyst.  Вот при подготовки все время сталкивалась с тем, что смешивают test analyst и technical test analyst. Это разные вещи, и более того на экзамене будут вопросы как раз касающиеся их различия. Поэтому ни в коем случае не путать:) Менеджер заведует всем, что касается ведения проекта и планов, аналитик все что касается ручного тестирования, технический аналитик - это автоматизация тестирования и все что касается нагрузочного и производительности. Есть области в которых эти трое пересекаются и вот там как раз важно понимать кто за что отвечает. Это будет в вопросах:)

 

Литература для подготовки: 

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

1. Собственно сам syllabus: https://www.istqb.org/downloads/summary/10-advanced-level-syllabus-2012/53-advanced-level-syllabus-2012-test-analyst.html

2. Возможно придется вспомнить подзабытое из базового уровня, поэтому хорошо будет иметь под рукой глоссарий и syllabus базового уровня.

3. Advanced Software Testing - Vol. 1: Guide to the ISTQB Advanced Certification as an Advanced Test Analyst (Rockynook Computing)

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

4. The Software Test Engineer's Handbook, A Study Guide for the ISTQB Test Analyst and Technical Test Analyst Advanced Level Certificates 2012 – Graham Bath, Judy McKay  

Здесь читать только то,что касается аналитика -это примерно первые 300 страниц. Зато все очень хорошо расписано, читается легко и приятно, есть вопросы для самопроверки, но они не такие как будут на экзамене.

5. Очень помог вот этот сайтик:

http://myideasandexperiences.blogspot.com/2017/12/equivalence-partitioning-and-boundary.html

прям рекомендую! Рассмотрены методики на экзаменационных примерах, форма упрощенная, то что нужно для экзамена. 

 

Примеры экзаменационных вопросов для самопроверки: Спойлер: дампов не будет:)))

Я искала варианты, по которым бы можно было себя проверить и в случае несовпадения ответа, понять в чем ошибка. Поэтому для меня было важно: ответы должны быть правильные, ответы должны быть с пояснениями :)

1. некоторые примеры будут в книжке под номером 3, 

2. примеры с разбором будут на сайте под номером 5.

 

3. есть примеры с ответами и пояснениями на сайте:

https://www.istqb.org/downloads/send/17-advanced-level-exam-documents/96-advanced-level-test-analyst-2012-sample-questions.html

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

 

4. Собственно сам тестовый экзамен можно пройти здесь:

можно регистрироваться и сдавать его много раз. Но там только 43 вопроса и время не 3 часа а меньше.Это немного урезанный вариант.
а вот тут есть ответы с хоть каким то обоснованием почему это так:
в принципе, при определенных усилиях мне удалось довести тестовый экзамен до 98%. Какой то один вопрос про сферу ответственности на 1 бал у меня остался неправильным, но сил докапываться до истины уже не было:). 
Чтобы не дергаться каждый раз регистрируясь на нем вот тут те же квизы со временем:
но там не все вопросы... Но для тренировки на кошках прокатывало:)
 
5. Есть еще вот такой вариант, похожий на правду: 
но там не все ответы могут быть правильными и нет объяснений.
 
В общем идея работы с вопросами такая: понять принцип формирования вопросов:) Для ускорения времени я вообще начинала читать вопрос с последнего предложения (собственно с самого вопроса, потому что там куча воды, надо уметь выделить основное). Ну и есть какие то общие вещи: например перечисляется куча ОС, куча браузеров и вопрос по выбору техники: ищем комбинаторику в ответах! Говорится, что у команды тестировщиков есть база с дефектами: ищем в ответах упоминание этой техники. Если надо посчитать switch - ищем ограничения в виде с какого state начинать и какие transition не считать, остальное вода. Ну и самое главное, что пишут все сдавшие экзамен: научитесь на примерах вопросов и ответов мыслить так, как это делал автор вопросов:) Поймите и ПРИМИТЕ его логику! Те вопросы, что были на экзамене по своей структуре были очень похожи на приведенные выше, это помогло сдать.
Все другие источники вопросов меня смущали тем, что вопросы там были все в куче (и от менеджера и от технического - что мне совсем не нужно) и неуверенность в правильности ответов меня смущала... Хотя я не считаю лишним, если есть время, их глянуть - это как раз поможет понять чем "правильные" вопросы от них отличаются и лишний раз перефразированные вещи повторить.
 
Ну собственно дальше чисто административные вещи:
после того как вы нахрабрились сдавать:
регистрируемся здесь:
 
отличие от регистрации базового уровня:
надо будет заполнить дополнительно регистрационную форму:
я ее забыла заполнить, но это не страшно, мне прислали письмо с просьбой это сделать. Не стесняйтесь при любых вопросах писать к ним в техподдержку, они очень мило и быстро отвечают и все решается. 
 
подтверждение вашего опыта: вы просто поставите галочку в рег. форме, что он у вас есть. (В инете находила инфу, что возможно попросят какую то форму заполнить и прислать скан-у меня только галочка прокатила)
самое интересное отличие: придется обосновать требование дополнительного времени :) скачать и заполнить форму, где вы укажите что английский (или другой выбранный вами язык)  вам не родной (я просто от руки писала там все) и потом загрузить ее. Уровень продвинутый - значит бюрократии должно быть больше:)))
 
Ну а дальше все как в базовом:) За неделю до сдачи приходит время и место, 
и удачи вам на экзамене!
 
Еще раз прошу прощения за много буков, надеюсь что-то из написанного будет полезно...


Тестирование интеграции с Facebook SDK
2018-09-09 18:52

Всем привет. Вот задался вопросом правильного тестирования интеграции с различными сервисами (например facebook).

есть небольшой трактат от самого fb

https://developers.facebook.com/docs/facebook-login/testing-your-login-flow?locale=ru_RU

 

Но интересует, реальный опыт, на какие кейсы следует обратить внимание, как например, возможность задизейблить facebook приложение на самсунг, но не удалять его (кейс, когда тестируемое приложение видит package facebook, но не может достучаться) . Как следует разбить тестирование? (залогинен в веб версии / не залогинен в приложении / не установленно fb приложение) и тд

 

Буду благодарен за рекомендации по теме.



© 2010 | Software-Testing.Ru


В избранное