Задать вопрос
Ответы пользователя по тегу Selenium
  • Как организовать автоматизацию тестирования с 0?

    lxsmkv
    @lxsmkv
    Test automation engineer
    В принципе все правильно. Берете и делаете. Серебрянной пули нет.

    Особенно порадовало, что "все занимаются тестированием"- это правильно. Лишь бы это не было "все - значит никто". И следите за тем, чтобы тестирование давало результат - либо тикет в системе либо фикс. Если баги находят, но просто говорят о них на кухне - это не тестирование. Если баг фиксится сразу, это не значит что коммит-сообщение можно ляпнуть "fixed some strange bug" - он должен содержать описание сценария в котором он происходит и как он влияет на пользователя.

    Улучшайте коммит-сообщения. Так чтобы из них можно было собрать патчноут и красиво показать пользователю. А не куча невнятного "внутряка". Формулируйте с позиции пользы, это заставит разработчиков немного больше гордиться проделанной работой, а следовательно добавит им мотивации. Для примера посмотрите как пишут патчноуты передовые представители игровой индустрии.

    По автоматизации .. подводные камни такие:
    - если автотестов много - их долго выполнять. Начните с небольшого количества 20-50. На них вы обкатаете внедрение и процесс. Не считайте никакие ROI - это бред. Чем считать ROI лучше написать еще один полезный тест.
    - архитектуру тестов старайтесь организовать так, чтобы работу по их написанию можно было распараллелить. Например если у Вас Page Object - один может писать компоненты из которых другой может строить сценарии.
    - ваш сервис сильно зависит от доступности источников данных - проверяйте доступность источников регулярно, особенно если эти данные вы получаете не по API, а выковыриваете парсером.
    - сделать тестовую базу данных - правильно. Автоматизируйте ее свертывание-развертывание через контейнеры.
    - по приоритетам автоматизации - точно так же - по "абстрактной" значимости. Хороший источник для идей - багтрекер. Кластеризуйте ошибки по типам и делайте выводы.
    - не делайте автоматизацию ради автоматизации - в первую очередь чините продукт, потом тесты.
    - не усложняйте тесты ради того чтобы они справлялись с более сложными условиями, упрощайте условия.
    - автотесты будут сыпаться по непонятным причинам. Делайте как можно более полезное логгирование. Если тесты выполняются в произвольном порядке - это тоже может быть одной из причин. Любой рандом в тестировании - зло. Учитывайте это при наполнении тестовой базы данных. Желательно, чтобы тестовая база всегда содержала одинаковые данные. Смотря что у Вас за база. Если это только пользователи это одно, а если у вас там хранятся аггрегированные данные, то нужно время от времени пересобирать тестовую базу из свежих источников и проверять работу тестировочных скриптов с ней.
    - автоматизацию тестирования можно применять не только для тестирования конечного продукта, можно тестировать миграции схемы базы данных, восстановление базы из бекапа и прочее.

    Можете почитать мои ответы по этому хабу, может найдете там еще ответы на какие-то близкие Вам вопросы.
    Вот некоторые из моих советов-ответов более-менее общей направленности:

    Как добиться независимости в тестах (phpunit)?
    Правильное тестирование Javascript?
    Как систематически подойти к тестированию в малой компании разработчиков?
    С чего начать изучение на должность QA автоматизатора?
    Как создать отдел тестирования?
    Какие шаги тестирования сайта?

    Читайте:
    "Lessons Learned in Software Testing" (Kaner, Bach, Pettichord)
    "Experiences of Test Automation: Case Studies of Software Test Automation" (Graham, Fewster)
    и вот эту вики: TestAutomationPatterns (Кстати, ее инициатор и редактор та же Dorothy Graham. Есть даже пару записей ее лекций на ютубе - советую глянуть)
    В ней прям шаблоны. Проблема - решение. Бесценная вещь. Мне в свое время очень помогло, чтобы понять "что не так" и как это лечить.
    Ответ написан
    Комментировать
  • Python + selenium как отправить нужный мне комментарий в youtube?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Мне этика не позволяет помогать писать спам бота. Но ответ на этот вопрос есть в интернете.
    Ответ написан
  • Что почитать/поделать автоматизатору на досуге?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Для развития себя как тестировщика посмотреть лекции по тестированию. James Bach, Cem Kaner, Dorothy Graham на ютьюбе посмотрите для начала.
    По техническим навыкам имеет смысл познакомиться с Jenkins или его алтьтернативами. Представьте себе, если вы не только можете написать автоматизированные тесты, но и создать окружение для их автоматического исполнения и репортинга. Это несомненный плюс.
    Ответ написан
    Комментировать
  • Как правильно использовать инкапсуляцию в Page Object паттерне?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Если интерфейс контроллера предназначен для простых смертных, лучше писать функции общего плана с параметрами. Так вы сведете к минимуму возможность ошибочного использования. Например чтобы выбрать предмет из списка его нужно сперва раскрыть раскрывание будет производиться внутри общей функции напр. selectItemFromListMatchingName(String n) путем вызова приватной функции openItemList() а она будет использовать приватную функцию isListOpen() чтобы не открывать уже открытый список. Править такие тесты очень легко. Вы чините код в одной маленькой функции один раз. И все тесты которые опираются на нее чинятся автоматически.
    Ответ написан
    Комментировать
  • Что нужно изучать, чтобы заниматься автотестированием web-приложений на Java?

    lxsmkv
    @lxsmkv
    Test automation engineer
    зависит от того на чем написано приложение которое вы тестируете. В зависимости от используемого стека выбирается инструмент. Нельзя просто сказать "хочу научиться пилить". В зависимости от того что у вас "system under test" пилить можно лобзиком, бензопилой, или циркулярной пилой. Давайте инфы побольше, получите более конкретный ответ.

    Upd.: для тестирования веб приложения с помощью Java через Selenium нужен Selenium - это и есть фреймворк который вам нужен. Туториалов по нему много. Изучать непременно надо само тестируемое приложение. Сперва задайте себе вопрос "что я хочу протестировать", а потом уже "как" (это реализовать с помощью Selenium)
    Ответ написан
  • Как создать отдел тестирования?

    lxsmkv
    @lxsmkv
    Test automation engineer
    первая мысль которая пришла в голову: если проблемы на стыке компонентов возникают, может сперва над архитектурой поработать?

    Тестирование ведь всего-лишь находит проявление ошибок. А желательно устранять причины приводящие к их возникновению. Иначе вы будете тратить все больше денег на то чтобы находить ошибки, релиз будет откладываться, клиенты будут недовольны задержками обновлений.
    Почитайте багтрекер на предмет, каковы причины найденых ошибок. Как правило есть несколько корней зла. Вот на это и стоит обратить внимание.

    У нас например ModelView слой программы выдает минимум треть ошибок, мы делаем автоматизацию, это дорого, а надо просто нахрен выкинуть тот инструмент которым мы делаем UI и перейти на что нибудь, что будет валидироваться у разработчика на компьютере а не завтра утром на сервере после полной сборки. Другое дело что на такой шаг начальство пойти не может, они в рабстве у вендора этого инструмента. Т.е. миграция возможна но не вдруг.
    Ответ написан
    Комментировать
  • Как грамотно сделать page object + pytest, чтобы не передавать фикстуру в каждый page класс?

    lxsmkv
    @lxsmkv
    Test automation engineer
    у нас тоже так, только обьект называется не app , а root. Правда мы тестируем embedded системы через GUI.
    if root is None:
    root = testcore.createRoot(); #ядро фреймворка выдает нам этот обьект
    и все функции тестового фреймворка требуют этого объекта. У меня каждый page-класс имеет self.root ссылку создаваемую в конструкторе и везде где надо при использовании фреймворка я её передаю.
    tst.press_and_release_button(self.root, buttonname='Button1') # tst тут ссылка на фреймворк.
    Т.е я так понимаю у нас сделали пользовательскую обертку воркуг ядра, а у вас напрямую.
    Я этот фреймворк не писал, а писал паренъ который и интерпретатор питона на яве для нашей системы написал, потому что jython сильно много памяти ест. И я верю в то, что если оно так, то так надо :) А я только пользуюсь всем этим добром, но вполне себе подход нормальный.
    На этот объект можно еще переменных навесить и передавать данные из одного места в другое.
    Ответ написан
    Комментировать
  • Какие шаги тестирования сайта?

    lxsmkv
    @lxsmkv
    Test automation engineer
    попытайтесь ответить для себя на вопрос "какой фунционал предоставляет веб сайт для посетителя". Увидеть функционал сперва может показаться трудным. Но при должном упорстве серая пелена спадет.
    Начинайте так:
    1) У пользователя есть возможность ознакомиться с историей компании.
    2) - ""-- "" создать учетную запись
    и.т.д.
    Каждый глагол в списке это и есть функционал, который нужно проверить. Для тестирования каждой предоставляемой функции может потребоваться разное количество тестов. В итоге нужно удостоверится может ли посетитель использовать заявленную фунцкию в достаточном обьеме. Обьем при этом определяете вы. По верхам или каждую мелочь. Начать конечно лучше по верхам, чтобы уже что-то тестировалось в то время как вы будете искать способы для детального тестирования.
    Ответ написан
    Комментировать