x__miller_x
@x__miller_x

Как организовать автоматизацию тестирования с 0?

Доброго дня!
Нужен совет, а еще лучше - много советов, от людей, занимающихся автоматизацией тестирования веб-приложений.

Суть проблемы: есть компания, предоставляющая своим клиентам удобный доступ к данным, агрегированным из различных источников и БД. Есть команда разработчиков, поддержка, системные администраторы, администраторы БД.... НО нет тестировщиков. Тестированием занимаются все, как бы странно это не звучало.
И вот тут, мой дорогой Фродо, возникает идея автоматизации тестирования. Вопрос: как грамотно организовать эту автоматизацию, если:
1) нет тест кейсов, как таковых. Тестирование всегда выполнялось по принципу: есть функционал, который абстрактно отсортирован по значимости, и его проверяем.
2) нет никакой документации. Максимум: краткие заметки программистов по новым фичам и исправлениям в каждом новом билде.
3) есть Jira, служащая баг-трекером
4) нет полноценной тестовой версии продукта: есть бой и тестовые сборки (код), но БД на всех 1

В моем представлении, автоматизируются тест-кейсы, НО, если их нет, то нужно сначала из добавить, чтобы было понятно, что вообще нужно автоматизировать. Для этого приспособил TestLink. И начал добавлять туда позитивные тесты (т.к. есть 4й пункт), после готовности ~50% тест-кейсов, начал параллельно заниматься автоматизацией. Также сейчас с программистами обсуждается вопрос развертывания полноценного тестового окружения с тестовой БД для получения ожидаемых результатов, а не гадания по кофейной гуще.

И вот тут (хотя этим надо было задаться раньше) возник вопрос, правильный ли подход я выбрал? И как бы стоило/стоит строить процесс вообще?

Интересует в первую очередь реальные примеры, либо материалы, которые можно использовать за основу.

Заранее премного благодарен.
  • Вопрос задан
  • 609 просмотров
Решения вопроса 1
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. Есть даже пару записей ее лекций на ютубе - советую глянуть)
В ней прям шаблоны. Проблема - решение. Бесценная вещь. Мне в свое время очень помогло, чтобы понять "что не так" и как это лечить.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
kit_de
@kit_de
Моя... Твоя... Привет!
Цитаты великих людей:
Если у вас на проекте бардак и вы решаете заняться автоматизацией, то у вас будет автоматизированный бардак.
Мой друг Леха.


Прочитав описание вашего проекта я пришел к следующим выводам.
  1. С процессами у вас беда.
  2. QA мертво.
  3. Жизнь дала вам леща за п1 и п2.

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

Предлагаю вам следующее:
  1. Перестаньте воспринимать тестирование как недоразумение.
  2. Наймите толкового QA и слушайте его.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
начни с Jenkings + Jira интеграции
дальше по сопутствующему поймешь что делать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы