Контроль качества разработки - ключ к успеху
Компания «МЦ-Сервис Инжиниринг» занимается разработкой и поддержкой программных продуктов для автоматизации бизнес-процессов железнодорожных грузоперевозчиков в России. Большое внимание мы уделяем организации системы качества.
Система качества в нашей компании влияет на несколько факторов. Прежде всего, это:
1. Повышение уровня безопасности на железной дороге.
Система качества исключает ошибки нашего программного обеспечения. Поэтому модуль «Ремонты» программного комплекса «МЦ-Слежение» своевременно подскажет срок ремонта вагона или модуль «ТМЦ» сообщит о необходимости замены отработавшей свой срок детали. Таким образом, работающие без сбоев модули «МЦ-Слежение» снижают аварийность и повышают безопасность на железной дороге.
2. Удовлетворенность клиентов.
Система качества помогает установить и поддерживать высокие стандарты обслуживания клиентов. Процессы контроля качества позволяют оперативно реагировать на запросы клиентов, предлагать инновационные решения и обеспечивать высокий уровень доверия со стороны потенциальных и текущих клиентов к продукту и компании.
3. Процессы разработки и внедрения программного комплекса “МЦ-Слежение”.
Система качества способствует оптимизации процессов разработки и внедрения программного комплекса. Целенаправленное управление качеством позволяет снизить количество ошибок и дефектов, ускорить разработку/доработку модулей комплекса, а также повысить уровень удовлетворенности пользователя.
4. Непрерывное улучшение.
Система качества способствует непрерывному улучшению процессов и производительности компании. Через анализ данных, обратную связь от клиентов и постоянный мониторинг результатов мы выявляем направления деятельности, требующие улучшений, и предпринимаем необходимые меры для повышения качества своих продуктов и услуг.
Кто принимает участие в контроле качества новой разработки
В контроле качества новой разработки «МЦ-Сервис Инжиниринг» так или иначе принимают участие все сотрудники компании. Например, аналитики проверяют тест-кейсы, написанные тестировщиками, на соответствие бизнес-логике клиентов, проводят приемочное тестирование доработок. Сотрудники других отделов также могут выявлять ошибки разработки и сообщать о них разработчикам.
Комплексно и целенаправленно тестируют разработку для исправления ошибок и возможной доработки две команды сотрудников. Непосредственно разработчиками сразу после разработки проводится «дымовое» тестирование, цель которого убедиться в том, что:
- реализованы все пункты поставленной задачи;
- код, написанный разработчиком, работает (программа не «крашится»).
Далее задача по проверке новой разработки передается профессиональным тестировщикам, которые проводят тестирование кода на соответствие поставленным требованиям, а также для предоставления актуальной информации о состоянии тестируемого кода всем заинтересованным сторонам. В отличие от сотрудников других отделов компании, тестировщики используют различные виды, методы и техники тестирования, что позволяет находить больше ошибок и исследовать функционал глубже. Так, например, метод попарного тестирования позволяет сократить количество тестов, а значит и затрачиваемого времени, без потери качества; интеграционное тестирование позволяет избежать ошибок в несогласованности отдельных функциональностей; негативное тестирование помогает «научить» систему вести себя должным образом в случаях, когда она получает недопустимые или неожиданные входные данные. В рамках тестирования предоставляется обратная связь по выявленным дефектам, предложения о том, как можно улучшить систему, сделать ее наиболее удобной для пользователя.
В контексте контроля качества тестирование является одной из важнейших техник, включающей в себя планирование тестирования, проектирование тестов, выполнение тестирования, а также анализ полученных результатов.
В «МЦ-Сервис Инжиниринг» тестирование программного комплекса проводится как вручную, так и с применением автотестов. Для работы с тестовой документацией используется TestIT.
Этапы контроля качества в «МЦ-Сервис Инжиниринг»
Непосредственно контроль качества в компании организован в несколько этапов, каждый из которых включает в себя определенные задачи и цели.
Первый этап - анализ тестирования - состоит в основном из тестирования и уточнения требований. Если проводится анализ доработки (а не исправления ошибки), то этот этап проходит одновременно с оценкой доработки.
Второй этап - планирование тестирования - включает в себя определение цели и трудоемкости тестирования, а также оценку возможности разбиения задачи на несколько частей и распараллеливания задачи для нескольких тестировщиков.
Когда планирование завершено, мы переходим к третьему этапу – непосредственно тестированию. Тестирование также проводится в четыре этапа:
1. Первый этап тестирования включает уточнение требований, написание и актуализацию тестовой документации в системе TestIT.
2. Второй этап тестирования - создание тестовых данных (примеров) и проведение тестирования с учетом тех техник, методов, видов тестирования, которые будут наиболее оптимальными для тестируемой задачи. В случае выявления ошибок создаются отчеты в баг-трекере Redmine.
3. Третий этап тестирования - на тестовых схемах - включает краткий ретест изменений, проверку основных кейсов и/или проверку наличия исправлений в определенном патче. Тестирование на тестовых схемах клиентов проводится, если у клиента есть специфические данные, настройки или примеры, которые нельзя проверить на наших тестовых схемах.
4. Наконец, последний, четвертый этап - оценка результатов тестирования - включает в себя составление отчета о тестировании и оповещение заинтересованных лиц о результатах тестирования.
После тестирования задач, отданных в конкретный патч, осуществляется проведение регрессионного тестирования. Регрессионное тестирование – это дополнительная проверка уже проверенной программы, которая выполняется после внесения изменений (доработок и исправления ошибок), чтобы убедиться, что процедура модификации не вызвала ошибки в областях продукта, которые не подвергались изменениям. Регрессионное тестирование проводится вручную и автоматически.
Вручную - путем обращения к чек-листу, включающему в себя основной функционал системы, который есть у всех или почти у всех клиентов.
Автоматически - с помощью автоматических тестов, которые сравнивают заранее установленные эталонные значения со значениями, полученными после обновления. Для проведения автоматических тестов с целью сохранения эталонных значений используется отдельная схема. Автоматические тесты запускаются после обновления схемы, которое обычно осуществляется один раз в день.
Работа по повышению контроля качества разработки
Отлаженный и выверенный процесс тестирования патчей, системный подход и многоуровневый процесс тестирования, отзывчивые и дружелюбные специалисты, способные работать в команде, выстроенная система наставничества, профессионализм участников команды и, как следствие, ее высокая эффективность — все это подтверждает организацию качественного контроля наших разработок. Сотрудники компании постоянно обучаются: посещают конференции, проходят регулярное обучение внутри компании.
Кроме того, мы ведем системную работу по постоянному повышению контроля качества разработки, для чего применяем разнообразные методы и инструменты:
- анализируем метрики, чтобы выявить места, где чаще всего возникают ошибки;
- обязательно проводим работу над ошибками, анализируя каждый патч для поиска причины пропуска ошибок и разработки предложений, которые помогут нам избегать таких дефектов в будущем;
- активно работаем над написанием тестовой документации, включая тест-кейсы, инструкции и чек-листы;
- поддерживаем список регрессионного тестирования в актуальном состоянии и ищем инструменты для автоматизации тестирования;
- регулярно обновляем список существующих автотестов;
- наращиваем экспертизу у наших тестировщиков. Важным шагом нашей работы стало отказ от практики "человек-модуль", когда за проверку определенного модуля системы отвечал только один человек без возможности его замены другими, что потенциально могло вызвать проблемы при отсутствии этого человека.
В целях обеспечения надежности и конкурентоспособности нашей продукции и услуг контроль качества в «МЦ-Сервис Инжиниринг» осуществляется современными методами и включает в себя многоэтапную систему.