User Interview for Lead/Senior QA (Dec 22)

Testing consisted of two parts: the theoretical one for a deep understanding of users and immersion in their context and problems, and the second one - usability and practical application of the plugin.

Internal links:

External links:

 


Transcript:

– сonfirmed hypothesis;

– declined hypothesis;

to do: actions, immediately with a link to the task;

to discuss, important outputs.

Read me

As a potential plugin user, I want to read a few lines and quickly figure out what the purpose of the plugin is, how to install and use it.

To do:

Дописать в ReadMe https://github.com/jdi-testing/jdn-ai/issues/894 :

  • Main:

    • Небольшой summary, что это за плагин, для чего это и для кого;

    • Плагин не работает в инкогнито режиме;

    • Описать advanced calculation;

    • Описать работу фильтров, что с помощью них можно создавать нужный тип PO;

  • Server part:

    • Windows 10 изменить инструкцию по пользованию докером:
      в винде есть WSL - windows subsystem for linux, и он предлагает ставить не Docker Desktop (который по его словам на епамовсих тачках надо просить аппрув на установку), а впаять линуксовый докер в WSL

    • Сам заголовок сервер парт озадачил, видимо будет серверная часть видимо нужно уточнить для чего почему, ну видимо они должны как-то коннектиться;

  • Download:

    • Описание того, что скачивается, что внутри архива и как этим пользоваться;

    • Как открывать файл в bltt.

To discuss:

Почти все пользователи запутались в инструкциях докера и впн (запустил ВПН и начал разворачивать докер).

Впн не сработал: Если впн не сработал, надо подсказать перезагрузить, а не сразу устанавливать локальный сервер (предложила добавить часть - если у вас не получилось, то ....).

Не понятно что такое dockside view.


0) Install plugin

При установке плагина в нотификейшене другая иконка (старая). https://github.com/jdi-testing/jdn-ai/issues/886


1) Select the website

EPAM workers with the following positions: Primary skill: Automated Testing in Java SET.Java

Большая часть пользователей отметила что работают или работали с динамическими страницами.

Однозначного ответа нет. Большинство пользователей предпочитает использовать темную тему в своих ежедневных задачах. Работать с актуальной светлой цветовой схемой плагина комфотно.

To discuss:


2) Create a new page object

Wants to create test automation framework using JDI Light framework

Объединять только если выделять базовый класс. Полезной будет возможность резать и дублировать РО (выбирать один как РО базовый и на его основе делать другие) для облегчения чтения и ускорения работы. Делить PO на маленькие и собирает фасад-элементы которые взаимодействуют между собой. По клику хочу добавлять в РО а не все локаторы, сначала выбор - потом пред-генерация.

To do:

Возможность выбирать область с необходимыми локаторами на странице.https://github.com/jdi-testing/jdn-ai/issues/242

Дублировать РО (1 делаем базовым на его основе делать другие РО постоянно приходится.).

To discuss:


3) Choose a library

I choose the specific tools I work with. most likely, I work with the same, I want to quickly choose a tool that I work with So customer’s website should be according to the criteria available library: Material UI, HTML5

Большинство пользователей работает с 1 типом библиотек. Если, например, старая версия приложения на React, а новая – на Angular, то пишется фреймворк, который позволяет это обрабатывать.

Было бы полезно , все зависит от проекта и от того, с чем человек привык работать.

To discuss:


4) Manage generation (pause, rerun)

I want the locators I need to load faster or in the first order.

Функцию попросту не нашли. Нужно переработать подачу фичи.

To do:

Лучше подобрать нужный режим в начале генерации “простой до минуты”, “вдумчивый до 5 минут” и “до победного”.


5) Seach locators

I want to quickly find the right locator, so I write the necessary in the search

To discuss:


6) Filter locators

I need to filter the list of a large number of locators to find the right locators faster

Дописать в Ридми ? Что возможно делать РО с нужными типами элементов с помощью фильтра.

To do:

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

To discuss:


7) Copy locators

I want to quickly get the text of the desired locator and paste it into my code. Локаторы могут быть нескольких типов - полный xPath, оптимальный xPath, CSS selector.

Наиболее часто используемый кейс – 3, xPath + Selenium Annotation. Второе место поделили 6 Full code и 2 xPath + JDI annotation. Третье место – 1, xPath.

  1. xPath //*[contains(text(), 'Submit')]

  2. xPath + JDI annotation @UI(//*[contains(text(), 'Submit')])

  3. xPath + Selenium Annotation @FindBy(xPath="//*[contains(text(), 'Submit')")

  4. Full xPath /html/body/div[1]/div[2]/main/div[2]/div/form/div[3]/div[2]/button

  5. CSS selector #contact-form > div:nth-child(3) > div.col-sm-12.text-right > button

  6. Full code @UI(//*[contains(text(), 'Submit')])
    public Button button21

Функция не протестирована, ее не было на проде.

To do:

Точка с запятой потерялись (; где?).

Иконку не видно сразу.

Сopy all locators to clipboard


8) Edit locators

CSS нужен точно, как и “прайвет” или “паблик”. Ели мы работаем не с фреймворком а с чистым силениумом. Там веб элементы приватные, а методы будут публичные.

To do:

Aдвансд кальк просится в поле edit около текста локатора, чтобы было понятно что к чему.

To discuss:


9) Select locators

To discuss:

 


10) Save

Pressing the Save button. On the button is written the number of locators that will fall into the generation and I must understand how many and which ones.

To discuss:


11) Edit page object list

Additionally add, delete or edit + advanced calculation

Функцию не нашли. Возможно, нужно добавить в ReadMe описание фичи и более очевидный шаг во флоу. Либо – edit около текста локатора;

To do:

Может быть ее в Эдит попап? Сейчас вообще непонятно, крутая тема но неочевидная. адвансд кальк. просится в поле edit около текста локатора, чтобы было понятно что к чему

Может быть Адванст калькулейшен добавить в рид ми? (функция неочевидна и не поняли что и зачем нужна вообще)


12) Download

Download the PO to open it in another program

Пользователи предпочитают вручную проверять в проекте то, что они пушат. Форма комита задокументирована. Банально пробелы могут не так расставлены как должно быть.

To discuss:


Additional hypotheses:

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

Ideas:

To discuss:

List of users:

Users

Background

Notes

Link

Users

Background

Notes

Link

1

Anton Kulikov1

После универа работал разработчиком фулстек, потом перешел в авто тесты. Начал работать в UFT -- приложению для автоматизации тестов на бейсике, начал осваивать Java, основной стек сейчас Java 11, силениум 3, касался UI, на текущем проекте только бек.

SENIOR,USEFUL

Link

2

Aleksandr Khmelinin

В ЕПАМ 3+ года работал JDL light и мобайл. 
2. Был проект по разработке частного фреймфорка, бекенд и фронт приходилось лидить так как лид ушел. Я переключился на е-ком проект и там занимался автоматизацией апи и в рамках дежурства занимался UI. Преимущественно сталкивался с API.

SENIOR/Lead, JDI USER

Link

3

Anton Filichkin

Пришел в епам из лабы 3+ года назад, занимался тестированием, Javа, фронт бек, данные, конвертация данных Дата тестирование дата кволити.

SENIORJDI USER

Link

4

Ivan Protasov

Учился в лабе, 5 лет опыта, стандартный джава стек, сейчас руковожу автоматизацией на синдженте

LEAD/SENIOR, USEFUL

Link

5

Alla Blinkova

Работала как с UI тестами так и без них, работала с чистым selenium
в целом не очень много занимается UI-тестами, end-to-end сценарии со старой версией JDI + компонентные тесты
сложности с написанием JSP страниц, но это очень редкий случай

SENIOR

Link

6

Alina Lysenko1

курсы епама по автоматизации, занимается бекенд-тестами, с ui тестированием работала давно

SENIOR JDI USER

Link

7

Alina Tertyshnikova

информационная безопасность -> курсы епама автоматизатор тестирования на java -> джун на jdi -> tiar тестирование и мануальный тестировщик, после тестирует и разрабатывает на python

SENIORJDI USER

Link

Additional labels:

  • experience - LEAD/SENIOR , MIDDLE , JUNIOR;

  • users who used JDI - JDI USER;

  • users who brought a lot of insights - USEFUL;

 

Questions:

1) Select the website

  1. Работаете ли вы только с динамическими или еще со статическими страницами?

  2. Насколько комфортно работать с актуальной цветовой схемой?

  3. Какую цветовую тему вы обычно используете в приложениях?

2) Create a new page object

  1. Расскажите, как вы создаете тестовый фреймворк для себя, что используете?

  2. Есть ли вообще такое понятие как Page объекты или может вы как-то по-другому называете?

  3. Объединяете ли вы Page объекты?

3) Choose a library

  1. приходится ли вам автоматизировать сразу несколько веб UI написанных на разных фреймворках (например - на Angular и на BootStrap)? (подводим к maybe remembering the last choice); совмещать разные элемент лайбрари на одном сайте нельзя - из этого есть только одно исключение - HTML5 можно одновременно использовать с Bootstrap т.к. бутстрап это просто выпендрёжный стиль для HTML5, такое бывает когда продукт состоит из пользовательского фронта, например, и админки для владельцев)

  2. поддержка какого стекового language вам пригодилась бы (кроме Java)?

  3. Имеют ли смысл CSS локаторы от корня?

  4. Результирующие веб-элементы вы предпочитаете использовать xpath или css? Или смесь? Или по ID либо другому дом атрибуту (name, tagname and etc.)? В 99% случаев целимся на ID.

4) Manage generation (pause, rerun)

5) Seach locators

  1. Фокус на функциональность, наблюдать за удобством и фиксировать фитбек

6) Filter locators

  1. Фокус на функциональность, наблюдать за удобством и фиксировать фитбек

7) Copy locators

Questions:

  1. Проследить, нашел ли пользователь эту функцию самостоятельно.

  2. Что из этого вы хотите скопировать?

  3. зачем и для чего пользователю нужно копировать локатор?

  4. как он это использует. напрямую спрашивать можно ли заменить этим копирование думаю будет тяжело

  5. Какую часть локатора важно и нужно копировать для работы? (Имеет ли смысл полное копирование локатора или только тело xpath/css?)

Варианты копирования

  1. Optimal xPath: //*[contains(text(), 'Submit')]

  2. Optimal xPath + JDI annotation: @UI(//*[contains(text(), 'Submit')])

  3. Full code: @UI(//*[contains(text(), 'Submit')])                     public Button button21

  4. Optimal xPath + Selenuim annotation: @FindBy(xPath="//*[contains(text(), 'Submit')")

  5. Full xPath: /html/body/div[1]/div[2]/main/div[2]/div/form/div[3]/div[2]/button

  6. CSS Selector: #contact-form > div:nth-child(3) > div.col-sm-12.text-right > button

  7. Other?

8) Edit locators

  1. Как бы вы назвали такой элемент (напр.Батон)?

  2. Что бы вы изменили?

  3. Что не нравится?

  4. Что делать если нет нужного атрибута?

  5. Удобнее будет редактировать локатор (проперти, имя) или в отдельном всплывающем окне?

9) Select locators

  1. Что вообще ожидаете что сейчас произойдет?

10) Confirm

  1. Что вообще ожидаете что сейчас произойдет?

11) Edit page object list

  1. Устраивает ли текущая генерация? Или есть точки импрувмента?

  2. Пользуетесь ли вы advanced calculation?

12) Download

  1. Представьте возможность сразу загружать в Git напрямую. Нужно ли пушить сразу из плагина и есть ли в этом смысл?

  2. Нужен ли экспорт какого-то универсального веб-элемента, привязанного к XPass-элементу?


Фокус:

  • Создание кастомных локаторов

  • CSS-селектор

  • Создание подробной и понятной инструкции для тех кто начал реально пользоваться Пользователь должен получить value в течение 15-20 минут после начала - полное описание фич, API c примерами. (тестировать)