Мафия-оптимизация: предложение, от которого невозможно отказаться

Мафия-оптимизация: предложение, от которого невозможно отказаться

Помните историю Дона Корлеоне, который как никто другой умел делать предложения, от которых невозможно отказаться? Мы решили пойти по его стопам! Вооружившись автоматизацией вместо автоматов, собрав лучших специалистов вместо наемников, разработав хитроумные планы, которым позавидует сам «Крёстный отец», мы отправились на борьбу с похищением времени и сил у наших клиентов.

Если серьезно, то мы видим, что бизнес часто сталкивается с одними и теми же проблемами: задачи не оптимизированы, все специалисты заняты по 25 часов в сутки, продвижение вперед идет слишком медленно, и кажется, что так будет всегда.

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

Почему же ты сразу не обратился ко мне за помощью?


В одной из наших статей мы рассказывали про использование REST-сервисов при создании предусловий для наших автотестов. Сегодня речь снова пойдет о них. Для решения задачи одного из наших клиентов мы не только писали автотесты, но и создали для них библиотеку работы с сервисами, учитывая, что в ряде случаев предусловия бывают довольно сложными. Отладка библиотеки заняла немало времени, зато теперь все и всегда создается именно так, как задумано. Благодаря этой работе можно легко создавать сущности с нужными параметрами и связями с другими сущностями (например, при вводе параметров по умолчанию создается целая цепочка взаимосвязанных сущностей).

И тут мы посмотрели на наших ручных тестировщиков… Они для своих тестов создавали сущности через UI, причем иногда создание цепочки сущностей занимало до получаса. Несомненно, такая процедура весьма полезна для наработки навыков тестирования, но она значительно увеличивает время на выполнение кейса. Соответственно, за заданный период проверяется гораздо меньше кейсов, чем хотелось бы.

Время, мой мальчик, стоит денег

Нас осенило! Раз уж мы сокращаем время проведения автотестов, то тем более нужно стараться экономить время работы людей, ведь оно стоит гораздо дороже машинного! И ведь это совсем несложно: основной функционал у нас уже есть, и нужно только «прикрутить» к нему простенький интерфейс.

Сказано – сделано. Уже на следующий день была готова небольшая утилита, в которой создаются все основные сущности. Особенно приятно то, что она даже не требует особой поддержки: при изменениях в работе сервисов поправки вносятся в библиотеку работы с REST, а затем автоматически «подтягиваются» в утилиту (при этом лишь иногда добавляются поля настроек).

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

Приведенная ниже таблица составлена на основании результатов практических исследований со следующими предусловиями:
программы уже запущены;
все необходимые данные уже подготовлены.

То есть, мы сразу открывали окно и вводили нужные данные, не затрачивая время на поиск ИНН, НСИ и т.д.


Проведя замеры, мы были приятно удивлены: утилита сокращала затрачиваемое время в полтора-два раза даже с учетом «торможения» сервисов.

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

Мы сделали это, и теперь ты можешь всё

Что мы видим в результате нашей работы? Утилита помогает не только при тестировании по готовым кейсам. Она также оказалась незаменимым подспорьем в исследовательском тестировании, так как с ее помощью можно быстро проверить множество возможных вариантов. Кроме того, благодаря утилите специалисты могут быстрее локализовывать ошибки, ведь она позволяет с минимальными затратами времени создавать сущности с разными параметрами и проверять результаты.

В конечном итоге утилита позволяет увеличить скорость тестирования, и это хорошо как для нас, так и для заказчика.

Я воспринимаю трату времени как личное оскорбление


Уверены, что Дон Корлеоне мог бы сказать так, если бы был профессиональным тестировщиком, а не главой сицилийской мафии, а затем открыл бы свой кейс – и вы увидели там крутой пример работы с государственной информационной системой.

На проекте, о котором пойдет речь, существует 13 тестовых стендов, которые используются разработчиками, аналитиками и тестировщиками разных модулей для отладки, тестирования доработок, регресса, демонстрации заказчикам и обучения новых пользователей. Для упрощения доступа была создана автоматизированная заглушка, которая практически в точности повторяет оригинальную Единую систему идентификации и аутентификации (ЕСИА), применяемую, например, на Госуслугах.

Каждый пользователь системы может иметь одну или несколько функций, которые определяют его полномочия (например, «Орган государственной власти» или «Управляющая организация»). Количество функций в системе достигает 30, количество привилегий у каждой функции – от 2 до 30 (например, привилегии «Просмотр журнала событий», «Участие в форуме», «Операции с объектами жилищного фонда» и т.д).

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

Система – это блюдо, которое лучше всего подавать в оптимизированном виде

Итак, что мы имеем? Для каждого тестового стенда создан пул баз данных. При добавлении нового пользователя необходимо сначала заполнить порядка 30 полей в таблице пользователей ЕСИА, затем обозначить полномочия в таблицах реестра организаций и, наконец, прописать привилегии прав доступа для каждого из сотрудников данной организации. При добавлении или удалении функций, а также при изменении полномочий эту процедуру нужно было выполнять заново. Как вы понимаете, процесс этот нельзя назвать быстрым.

В определенный момент у заказчика возникла потребность в записи гораздо большего количества пользователей не только для тестирования, но и для демонстрации и хранения особых данных. Кроме того, в процессе отладки кода информация о некоторых пользователях могла быть утеряна, что вело к необходимости вновь создавать пользователя и вводить его данные «с нуля».

Только бизнес. Ничего личного


Мы решили ситуацию кардинально: для сокращения временных затрат на подготовку и исправление данных были разработаны требования к автоматизированной утилите создания пользователей с удобным интерфейсом.

В соответствии с этим ЧТЗ мы написали программу, которая не только умеет создавать и добавлять пользователей на различные окружения, но еще и ищет пользователей с нужными комбинациями функций и регионов. Поиск «юзверей» происходит по любому из обязательных реквизитов (ОГРН/ИНН/КПП), функции, региону или идентификаторам в БД. При создании пользователей все необходимые идентификаторы и справочные данные генерируются автоматически.

Дополнительно в помощь разработчикам и аналитикам при создании данных были добавлены шаблоны основных действующих лиц: граждан, управляющих организаций, органов государственной власти и прочих. Это еще больше сократило затраты на создание пользователей, ведь теперь остается придумать только ФИО сотрудника, ОГРН, ИНН и название организации – все остальное заполняет сама система.

Упомянем, что работа с государственной информационной системой – это всегда высокая сложность, сопряженная с большой ответственностью. Любое нововведение здесь должно быть многократно проверено, поэтому мы инвестировали свое время в разработку и отладку автоматизированной программы, чтобы наши клиенты в дальнейшем могли получить приличные дивиденды с этого вложения. А это время сотрудников и заказчиков и, конечно же, деньги.

Пока одни кормят рыб на дне океана, другие – бороздят его на своих яхтах

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

Наша цель – развязать нашим заказчикам и их сотрудникам руки для более интересных задач, для отлаженной и эффективной работы. Но и мы не остаемся за бортом этой яхты! Довольные клиенты возвращаются снова и снова, ведь их бизнес растет, появляются новые задачи, а кто справится с ними лучше, чем мы?

Дон Корлеоне нервно курит сицилийские сигары, а мы делимся с вами несколькими ценными инсайтами:

1. Упрощайте сложные системы: ищите максимально удобные, простые и автоматизированные решения.
2. Помните, что время каждого сотрудника стоит очень дорого, и поэтому его стоит экономить за счет оптимизации процессов.
3. Инвестируйте время и деньги в качественные решения, чтобы получить щедрые дивиденды в будущем.

На сегодня — все!
До встречи в блоге «Лаборатории качества».

© 2010—2018. Лаборатория качества