Понимание бизнес-сущности системы при тестировании

Введение

Добрый день! Меня зовут Анастасия, я QA-инженер команды бэкофиса в «Финаме». С 2022 года занимаюсь тестированием бэкофисных и торговых систем финансовых компаний. До перехода в QA работала в эксплуатации и поддержке торгово-клиринговой системы СПБ Биржи. Моя сильная сторона — глубокое понимание бизнесовой части тестируемого продукта, о важности чего мы и поговорим в этой статье.

Идея

Цель этой статьи — подчеркнуть важность понимания бизнесовой сущности системы, которую вы тестируете. Я приведу реальные примеры, которые помогут вам развить смекалку в тестировании различных систем. Статья будет особенно полезна QA-инженерам, работающим в брокерских, банковских компаниях и на биржах.

Содержание

  1. Личный опыт, вдохновивший на написание статьи

  2. Что важнее в QA: понимание продукта или теория тестирования?

  3. Лайфхаки для изучения предметной области

  4. Заключение

История из моего опыта

За несколько лет работы в IT я поняла, что погружение в задачу с точки зрения пользователя помогает выявить уязвимости, которые не описаны ни в одном учебнике по тестированию. Начну с примера из своей практики. Однажды я тестировала сервис расчета комиссий, где формула была проста:

0,25%*объем сделки=сумма комиссии

Проверяя кейсы, я заметила, что для сделки в 10 долларов UI отображал:  

Цена: 1 доллар
Кол-во: 10 бумаг
Объем сделки: 10 долларов
Комиссия 0.025 долларов

Вас ничего не смущает?  

Проблема заключалась в том, что сумма комиссии (0,025 долларов) не округлялась до двух знаков после запятой, как это принято для фиатных валют.

c1a31c261a37a189755900e88db9d38a.png

Обратите внимание не на сумму комиссии, а именно на ее значение: 0,025 доллара — это 2,5 цента. Половинка цента — это сколько? :)

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

Что важнее в QA: понимание продукта или теория тестирования?

Ответить на этот вопрос можно кратко: для QA важны оба аспекта. Но часто специалисты склоняются к одной из крайностей.

Когда я переходила в QA, у меня не было теоретической базы тестирования, но был опыт использования системы, которую я собиралась тестировать. Мои интуитивные подходы улучшились после прочтения книги Святослава Куликова «Тестирование программного обеспечения — базовый курс». На собеседованиях меня больше спрашивали про брокерскую деятельность, чем про тестирование. Работодатели заинтересованы в практиках, которые понимают продукт.

Чтобы стать востребованным QA-специалистом и продвигаться по карьерной лестнице, важно развиваться как в области теории тестирования, так и в понимании сферы деятельности компании.

Лайфхаки для изучения предметной области

  1. Google It. Если вы тестируете какой-то новый сервис и видите незнакомые бизнесовые определения, то не воспринимайте их как абстрактные объекты. Гуглите их, спрашивайте у ИИ. В общем, используйте все возможные инструменты, чтобы понять, с чем вы работаете.

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

    Пример из жизни: как-то работали с сервисом расчета накопленного купонного дохода, поняла, что коллеге очень тяжело дается эта задача. Я ему на простом примере объяснила механизм расчета НКД. Задача была решена уже вечером: человек понял, как это работает, и ему стало легче справляться с этой задачей.

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

  4. Интернет-ресурсы. Подпишитесь на 2–3 тематических канала и регулярно их читайте. Не перегружайте себя информацией.

  5. Записывайте термины. Фиксируйте новые термины прямо в тест-кейсы или в глоссарий проекта. Например, сегодня вы узнали, что такое KYC. Запишите это.
     

    60545f092d485b976d24a2442bcf7800.png

6. Изучите базовый профессиональный английский в вашей сфере. Это вам поможет лучше понимать написанный код, а также делать названия объектов в своих автотестах более осмысленными.

Пример из жизни: я тестировала зачисление и списание денег на счет клиента по новому тарифу. У трестируемого клиента баланс в конце дня — -1500. На начало дня было 0. Выгружаю исходные данные. Вижу таблицу:

Id

Operation code

Value 

1

Money: output

100

2

money: input

700

3

money: input

1000

4

Money: output

100

Что не так? С английского:

То есть у клиента должен быть баланс +1500. Ошибка была еще на уровне ТЗ, а разработчик тоже не заметил. Поэтому let«s study English:)

Итог

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

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

© Habrahabr.ru