«Это должно быть сделано еще вчера», «Протестируйте как-нибудь быстренько», «Время от начала разработки до выкладки на продакшн должно быть минимальным, а если возможно — еще меньше» — наверное, многим знакомы подобные цитаты. И покуда мы (тестировщики) — одно из последних звеньев в цепочке разработки, именно нам чаще всего приходится балансировать между скоростью выхода фич и их качеством.
В данной статье хочу поделиться тем, как мы в нашей компании применяем успешные практики из Lean Startup (несмотря на то, что многие наши проекты вполне сформировались и устоялись), с какими проблемами сталкиваются тестировщики при использовании данной методологии и как мы с этими трудностями справляемся.
Пара слов о себе: я тестировщик, имела опыт работы в проектах разного масштаба, была единственным тестировщиком на проекте и работала в командах, в которых использовались разные подходы и методологии. По моему опыту, работать по Lean Startup — это круто, но тут есть и подводные камни для тестирования, о которых неплохо знать заранее.
Для начала стоит немного рассказать о том, чем занимается наша компания. Туту.ру — сервис по онлайн-покупке ж/д, авиа- и автобусных билетов, туров и других вещей, связанных с путешествиями. Один из наших проектов — "Туры" — еще в стадии активного развития, он очень динамичен, функциональность быстро меняется. Наши PO (продукт-оунеры) практикуют Lean Startup, и в частности мы проводим очень много экспериментов.
Доброго всем времени. Коллеги, подскажите по scrum доске, создал доску. создал скрипты, добавил задачи, указал вес, запустил А активных спринтов не вижу. Что еще не сделано ?
Этот курс предназначен для тех, кто хочет научиться проводить нагрузочное тестирование при помощи HP Load Runner.
Данный инструмент используют до 70% крупных компаний по всему миру при проведении нагрузочного тестирования, так как он позволяет эмулировать нагрузку на системы с разной архитектурой и написанными на разных платформах.
На занятиях мы рассмотрим основные функции и настройки, которые Вам потребуются на первых порах.
Обучение будет на тренировочном web-приложении и мы пройдем все этапы проведения нагрузочного тестирования на одном примере от анализа задачи на проведение тестирования, создания профиля и до написания отчета о выполнении тестов.
В курсе используется HP Load Runner версии 12.53 Community Edition. Не удивляйтесь :) это полностью бесплатная лицензия, которая позволяет провести полноценное нагрузочное тестирование для небольших систем.
Все ли вы знаете о техниках поиска багов? Как найти то, что мелькнуло лишь раз? Как воспроизвести проблему по невнятному описанию пользователя «У меня все сломалось»? Какие предположения строить? Что уточнять?
В рамках курса мы создали специальный «бажный» сайт для тестирования. Внедрили туда 20 разных по типу ошибок. Чтобы их найти, придется применять разные техники и инструменты:
— Собрать логи.
— Проверить консоль JS.
— Найти граничные значения.
— Пройтись по туру, отмененному из-за дождя.
— Проверить разные браузеры.
— Убрать ограничение, установленное на клиенте.
— …
Сервер поднят на linux-е, куда у студентов есть доступ на чтение логов. Это позволяет применить полезные в будущем инструменты:
Putty — снять статистику, последить за логом
WinSCP — забрать лог с сервера
Grep — найти нужный стек в логе (linux)
Cygwin — найти нужный стек в логе (windows)
Еще на курсе будут использоваться:
Postman — послать POST-запрос на сервер
Perlclip — сгенерить большую строку текста
Курс запускался в два этапа — год назад вышла первая версия на 4 занятия. Мы рассказывали только то, что не зависит от “веб — не веб, линукс — не линукс” итд. Как искать, локализовывать и оформлять задачи. Материала было много! По отзывам студентов:
Ого, сколько материалов и заданий! Скучать не придется. А текст задания: "Меня обманули и обесчестили, я разворачиваюсь и ухожу." развеселил))
Но курс должен не только веселить, но и учить. Общаясь с ребятами, мы поняли просто “найти и локализовать” неинтересно. Это ведь все умеют, мы занимаемся этим каждый день.
Интересно другое:
— Как понять, кто именно сломался, если системы интегрированы?
— Как доказать подрядчику, что проблема именно на его стороне?
— Что делать, если ошибку уже пропустил?
Или технические штуки, которые пригодятся в дальнейшем:
— Залезть на сервер linux, найти нужный лог, изучить стек-трейс.
— Перехватить сообщение в консоли разработчика.
— Прочитать ответ, пришедший с сервера.
— Найти баг кеширования на сервере.
Все это теперь есть! Мы расширили курс, теперь там девять уроков вместо четырех. И 27 домашних задания — чтобы как следует закрепить материал. Приходите к нам, если хотите взглянуть на “обычный” процесс поиска и локализации багов по новому.
7 дней, 7 занятий. Это быстрый старт для тех, кто прочитал книжки и хочет применить знания. Вас закидывают на реальный проект и целую неделю вы оттачиваете на нем новые навыки под чутким присмотром тренера.
Легко? Нет!
Эффективно? Очень!
Курс создан ради того, чтобы переворачивать мышление. Занятия каждый день дают идеальный эффект погружения в тестирование на реальном проекте.
ВАЖНО!
Онлайн-интенсив хорош тем, что всего за неделю мы отрабатываем основные навыки, которые нужны тестировщику. При этом на целую неделю вы становитесь
тестировщиком реального проекта, а не абстрактного карандаша. Каждое домашнее задание основано «на реальных событиях»!
Каждый день в течение недели у вас будет:
15-25 минут теории (видеозапись)
7 часов практики (домашние задания)
НО!
Это будет неделя интенсивной работы. Придется поднапрячься, но оно того стоит!
Я только начал работать с jmeter, потому мой вопрос может быть не совсем компетентен, но тем не менее хотел бы прояснить ситуацию. Есть задача: создать нагрузочный тест по простому сценарию:
1) Пользователь авторизовался на ресурсе
2) Перешел в некоторый раздел
3) Создал новую запись
4) Перешёл в следующий раздел.
Уже на этапе записи скрипта (HTTP(S) Test Script Recorder) в логе обнаружил некоторую странность: после авторизации и прочих переходов по ресурсу постоянно происходит редирект на страницу логина.
И возвращает код 302.
Response data
<head><title>Document Moved</title></head>
<body><h1>Object Moved</h1>This document may be found <a HREF="https://site_name.com/new/site/login">here</a></body>
https://site_name.com/new/site/login - естественно совпадает с тем, что имеется в запросе.
Так же в логах самого ресурса я не нашел авторизации данного пользователя, хотя это я связываю скорее с тем, что пользователь не реальный, а виртуальный, и механика работы в этом случае может отличаться.
Ко всем прочему на п.3 (Создал новую запись) вижу код 400
Проделал те же операции вручную наблюдая за ответами - не увидел таких ошибок.
Здравствуйте) Подскажите, пожалуйста, я начинающий тестировщик и у меня возник вот такой вопрос:
Мне нужно написать сценарий, который будет автоматически записывать всю информацию из тестируемого каталога сайта в текстовый документ. Не понятно как это реализовать:( За ранее благодарю
Использую в работе selenium webdriver и junit.
1489604961223 geckodriver INFO Listening on 127.0.0.1:60431489604961668 mozprofile::profile INFO Using profile path /var/folders/0m/kmxmf5vn1y741ld9wvpgmhvh0000gn/T/rust_mozprofile.0eyQz5GeMVT9
1489604961669 geckodriver::marionette INFO Starting browser /Applications/Firefox.app/Contents/MacOS/firefox-bin with args []
1489604961673 geckodriver::marionette INFO Connecting to Marionette on localhost:54932
1489604962592 Marionette INFO Listening on port 54932
Mar 15, 2017 3:09:24 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
2017-03-15 15:09:24.428 plugin-container[69404:8429938] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x903b, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2017-03-15 15:09:24.434 plugin-container[69404:8429938] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9303, name = 'com.apple.CFPasteboardClient'
See /usr/include/servers/bootstrap_defs.h for the error codes.
1489604965586 Marionette INFO New connections will no longer be accepted
[GFX1-]: Receive IPC close with reason=AbnormalShutdown
[Child 69404] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-rel-m64-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 2143
[Child 69404] ###!!! ABORT: Aborting on channel error.: file /builds/slave/m-rel-m64-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 2143
Как победить? Я первый раз за долгое время запускаю и получаю вот такие сюрпризы. Очень нужен совет как это победить.