powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Тестирование и QA [игнор отключен] [закрыт для гостей] / Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
20 сообщений из 20, страница 1 из 1
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38626851
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, подскажите по такому вопросу, насколько вам (в вашей компании например)
была-бы интересна (или наоборот не была) система тестирования веб продуктов которая
позволяет делать следующие вещи.

Я разделил их на две группы - в первой - сами тесты, во второй операционные вопросы.

- Позволяет тестировать как HTML так и JavaScript приложения (использует Selenium и соответственно
тестировать можно любым браузером)
- Использует простой, почти "человеческий" язык для описания тестов (см. примеры ниже).
- Не использует в тестах class & id (они иногда требуются, но их использование минимально, см. ниже).
- Поддерживает формат Cucumber, можно также их писать на JavaScript или CoffeeScript
- Помимо тестов может мониторить также живой сайт, и проверять что с ним все ок.

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

* По поводу использования class & id: один из способов указать какой именно элемент нам нужен - используя
его класс или ID - `click '#add-post-button'`, но, такие вещи делают текст теста похожими на абракадабру, мне
больше нравится вариант с `click 'Add Post'` (но если вы предпочитаете использовать ID - это конечно-же
тоже поддерживается, на ваше усмотрение).

Интересно услышать ваше мнение, насколько такая вешь нужна / не нужна.

* Примеры кода

...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38627285
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде не интересно.

Напишите пожалуйста почему если не сложно, например - "какая-то непонятная ерунда, вообще неясно что она делает и зачем это все нужно" или "вобщем понятно что делает, но нафиг не нужно" или что-то еще.
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38627570
DexterI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateВроде не интересно.

Напишите пожалуйста почему если не сложно, например - "какая-то непонятная ерунда, вообще неясно что она делает и зачем это все нужно" или "вобщем понятно что делает, но нафиг не нужно" или что-то еще.
Лучше вы напишите, чем ваша система лучше уже имеющихся?
Откровенно говоря, из ваше поста я не понял, что вы хотите предложить.
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38627893
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тестирование веб приложений, обычных - где страницы создаются на сервере и одно страничных где все работает на javascript'е в браузере.

Чтобы сравнить нужно что-то конкретное, например фрагмент существующего теста/спецификации для аксептанс теста веб приложения.
Я тогда постараюсь повторить его, и можно будет увидеть отличия. Лучше для одно страничного приложения, их сложне трестировать,
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38628026
DexterI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateТестирование веб приложений, обычных - где страницы создаются на сервере и одно страничных где все работает на javascript'е в браузере.

Чтобы сравнить нужно что-то конкретное, например фрагмент существующего теста/спецификации для аксептанс теста веб приложения.
Я тогда постараюсь повторить его, и можно будет увидеть отличия. Лучше для одно страничного приложения, их сложне трестировать,
Дык, я что ли должен вам пример искать? :)

Приведите этот пример сами тут в сравнении с другими системами автоматизации и покажите плюсы вашей системы.
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38628143
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы с удовольствием сделал сравнение с такими системами, если бы знал что именно сейчас используется и является популярным. И второе - для чего именно используется.

Я лишь примерно знаю какие аналогичные инструменты используют другие. Я конечно могу привести свой рабочий фрагмент кода, но былобы гораздо интересней попытаться решить уже решенную задачу (другим инструментом) и сравнить оба подхода.
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38628146
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно у вас есть кусочек кода тестов который не нарушает NDA и можно опубликовать? Мне в первую очередь интересно понять какие задачи решают и с какими проблемами сталкиваются.
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38628187
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно у нас Fitnesse используется, то же самое только пишем не на языке, а таблички, а сам код можно писать вообще на "любом" языке.
Вообще сама по себе система которую вы тут описываете не акептенс, а просто система. Акептенс тестирование, это часть методологии разработки.
Система описанная и предлагаемая вами может выполнять функции системы акептенс тестирования, а может и просто быть фрэймворком интеграционного и/или любого другого вида тестировнаия, я так понимаю.
Ну так и не делайте упор на акептансе.
Интеграция того же селениума в Fitnesse это дело одного дня = фрэймворк для автотестирования полностью покрывающий необходимости на вёб тестированию.
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38628209
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я понимаю что аксептанс это часть целого, просто юнит тесты или тестирование API - оно всегда специфично для проекта, там универсального ничего особо не придумать. Да и инструмкнты там всетаки проще чем с селениумом и имитацией действий пользователя. А аксептанс и имитация действий пользователя - она везде боль менее одинаковая, можно попробовать сделать универсально что-то.
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38628344
Жентос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Держи немного инфы к размышлению от экспертов по тестированию :)
http://software-testing.ru/forum/index.php?/topic/19221-pochemu-ja-ne-ljublju-ogurci-i-fitnes--pljusi-i-minus/

Я в чем-то солидарен с этим мнением, кстати
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38628345
Жентос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateЯ бы с удовольствием сделал сравнение с такими системами, если бы знал что именно сейчас используется и является популярным. И второе - для чего именно используется.

Я лишь примерно знаю какие аналогичные инструменты используют другие. Я конечно могу привести свой рабочий фрагмент кода, но былобы гораздо интересней попытаться решить уже решенную задачу (другим инструментом) и сравнить оба подхода.
А зачем тебе ПОПУЛЯРНОЕ решение?
Решение должно быть в таком виде, в каком оно решает поставленные задачи.
И гнаться за BDD или ATTD только потому, что "так щас модна" -- это, на мой взгляд, плохой путь

Нужно выбирать тот путь, который даст наибольшую отдачу. Так будет лучше для проекта
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38628348
Жентос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateЯ лишь примерно знаю какие аналогичные инструменты используют другие. Я конечно могу привести свой рабочий фрагмент кода, но былобы гораздо интересней попытаться решить уже решенную задачу (другим инструментом) и сравнить оба подхода.
Я бы начал вот с этого
http://software-testing.ru/library/testing/functional-testing/1621-dzynya-confetqa-2011

И прикрутил бы к нему Yandex Web Elements.
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38629597
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, спасибо, в яндекс элементах есть классный пример кода на две страницы текста, я покажу как его сделать в четыре строчки.

Первый вариант - вообще без хелперов

Код: javascript
1.
2.
3.
4.
@navigate 'http://www.yandex.com'
form = @context 'form'
form.type searchInput: 'yandex'
form.click '.b-form-button__input'



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

Мне лично нравится такой вариант больше (тесты достаточно умные чтобы понять что от них хотят).

Код: javascript
1.
2.
3.
4.
browser.searchForm = -> @context 'form'

@navigate 'http://www.yandex.com'
@searchForm.type('yandex').click()



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

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

Код: javascript
1.
2.
3.
4.
browser.searchForm = -> @context 'form'

@navigate 'http://www.yandex.com'
@searchForm.type('yandex').click('Поиск')



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

Код: javascript
1.
2.
3.
4.
5.
6.
7.
@browser.searchPage = ->
  searchPage = @context 'page'
  searchPage.search = (term) ->
    @type searchInput: term
    @click '.b-form-button__input'
    
searchPage.search 'yandex'




Теперь, я скопирую сюда для сравнения тексты того как это делается в яндекс элементах - кода раз в десять больше. Или я упустил какие-то моменты?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
import org.openqa.selenium.support.FindBy;
import ru.yandex.qatools.htmlelements.annotations.Block;
import ru.yandex.qatools.htmlelements.element.Button;
import ru.yandex.qatools.htmlelements.element.HtmlElement;
import ru.yandex.qatools.htmlelements.element.TextInput;

@Name("Search form")
@Block(@FindBy(xpath = "//form"))
public class SearchArrow extends HtmlElement {
    @Name("Search request input")
    @FindBy(id = "searchInput")
    private TextInput requestInput;

    @Name("Search button")
    @FindBy(className = "b-form-button__input")
    private Button searchButton;

    public void search(String request) {
        requestInput.sendKeys(request);
        searchButton.click();
    }
}

import org.openqa.selenium.WebDriver;
import ru.yandex.qatools.htmlelements.annotations.Name;
import ru.yandex.qatools.htmlelements.loader.HtmlElementLoader;
import ru.yandex.qatools.htmlelements.testelements.SearchArrow;

public class SearchPage {
    private SearchArrow searchArrow;
    // Other blocks and elements here

    public SearchPage(WebDriver driver) {
        HtmlElementLoader.populatePageObject(this, driver);
    }

    public void search(String request) {
        searchArrow.search(request);
    }

    // Other methods here
}

import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import ru.yandex.qatools.htmlelements.testpages.SearchPage;

public class SampleTest {
    private WebDriver driver = new FirefoxDriver();
    private SearchPage searchPage = new SearchPage(driver);

    @Before
    public void loadPage() {
        driver.get("http://www.yandex.com");
    }

    @Test
    public void sampleTest() {
        searchPage.search("yandex");
        // Some assertion here
    }

    @After
    public void closeDriver() {
        driver.quit();
    }
}
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38629600
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я немного ошибся в версии с шелперами, она будет выглядеть вот так

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
@browser.searchPage = ->
  searchPage = @context 'body'
  searchPage.search = (term) ->
    form = @context 'form'
    form.type searchInput: term
    form.click '.b-form-button__input'
    
searchPage.search 'yandex'
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38629601
Жентос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private, упустил.

В яндекс-элементах есть возможность объединения элементов в блоки и кастомизации отдельных веб-элементов.
И это все можно прикрутить к обычной PageFactory (на Java паттерн реализован, на C# нужно помучиться)

Если Вам нужен код на 4 строчки, проще заюзать какой-нибудь RobotFramework -- там будете программировать описывать тесты на тузмном английском in plain English.

Если Вы понимаете, что лежит в подложке Ваших тестов, то в качестве QuickStart для Вашего фреймворка подойдет предложенный мной материал. Если у Вас уже есть фреймворк, или Вы не понимаете, что лежит в подложке Ваших тестов -- игнорируйте непонятные буквы не парьтесь, все будет хорошо
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38629602
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще вариант если делать не с кодом а с человеческим языком, если без хелперов

Код: plaintext
1.
2.
3.
navigate  http://www.yandex.com 
select element 'form'
type 'yandex' in 'searchInput'
click '.b-form-button__input'

Или если с хелперами

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
browser.searchForm = -> 
  form = @context 'form'
  form.type = (text) -> @type searchInput text
  form.submit = -> @click '.b-form-button__input'

navigate  http://www.yandex.com 
select search form
type 'yandex'
submit
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38629603
Жентос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет тестов на понятном английском -- я высказал свое мнение, привел соответствующий материал.


УДАЧИ!!!!
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38629605
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ яндекс-элементах есть возможность объединения элементов в блоки и кастомизации отдельных веб-элементов.Да, в этом фреймворке тоже все это есть. Можно обьединять группы элементов, анонимные или именованные и добавлять методы к отдельным элементам или группе.

Если не трудно - приведите пожалуйста сложный пример, я попробую повторить, может действительно что-то упускаю, но пока что из тех примеров что я видел для яндекс элементов - все повторяется, и блоки и кастомизация.
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38629606
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С тестами "на английском" я отчасти согласен с приведенным вами мнением. Они не всегда оправданы, не настаиваю на их полезности во всех случаях.

Но в случае обычного кода, мне кажется что получается проще, по крайней мере для тех примерах что на странице андекс элементов.
...
Рейтинг: 0 / 0
Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
    #38629607
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВас уже есть фреймворк, или Вы не понимаете, что лежит в подложке Ваших тестов -- игнорируйте непонятные буквы не парьтесь, все будет хорошоЯ понимаю как все это работает. Непонятные буквы - имеете ввиду мою нелюбовь к CSS селекторам в коде тестов? :)

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

Но все дело в том что важно в данный момент - во время девелопмента для меня важны селекторы. Но во время тестов мне нужен мощный и компактный язык для описания бизнес-логики. Мне неважно какой именно там селектор нужно нажать - а важно само действие. И селекторы там - совершенно не к месту - они из совершенно другого уровня абстракции.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Тестирование и QA [игнор отключен] [закрыт для гостей] / Нужны-ли быстрые аксептанс тесты написанные "человеческим" языком?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]