Репутація українського ІТ. Пройти опитування Асоціації IT Ukraine
×Закрыть

Тестування CRM-систем на прикладі Salesforce

Привіт усім! Мене звати Віталій, я QA Team Lead у компанії Customertimes. Понад рік я працюю на проекті з розробки та підтримки CRM-системи для фармацевтичних компаній, створеній на базі Salesforce. Цією платформою користуються більше мільйона людей — здебільшого лікарі, фармацевти, торгові представники та пацієнти.

У цій статті я хочу розповісти про особливості тестування CRM-систем, а також поділитися досвідом: з якими задачами та челенджами стикається рядовий QA-інженер. Стаття буде корисною для тих, хто планує почати тестувати CRM-системи, або для тих, хто хоче дізнатися більше про їхні можливості, переваги та недоліки.

Що таке CRM

Якщо коротко, CRM-система — це програмне забезпечення, яке дозволяє бізнесу зберігати всі дані в єдиному місці та допомагає контролювати, упорядковувати й планувати роботу з клієнтами. Але це далеко не всі її можливості...

Компанії використовують CRM-системи для автоматизації взаємодій із клієнтами. За їх допомогою можна оптимізувати маркетинг, підвищити рівень продажів продукції, провести аналіз, покращити бізнес-процеси тощо.

Зважаючи на велику кількість користувачів і технологічний прогрес, CRM-системи можуть бути реалізовані на різних платформах: Web, mobile, desktop, що робить їх доступними для будь-кого і будь-де.

Насправді кожна компанія — чи то маленький таксопарк, чи то орбітальна станція — потребує аптечної точності та упорядкування даних (час, витрати, люди, технічні ресурси тощо). І в цьому допомагає CRМ.

Ось як виглядають різні CRM-системи:

Salesforce

HubSpot Sales Hub

ActiveCampaign

Переваги та недоліки CRM-систем

Однією з ключових переваг CRM є її багатозадачність. Система вирішує широке коло задач: від створення простих аккаунтів — до автоматичної генерації інвойсів за певним шаблоном (template), за певних умов (conditions) та для певної групи профілів користувачів (user profile).

Завдяки тому, що інформація зберігається в єдиному сховищі, користувач CRM-системи може знайти всі відомості про будь-який випадок взаємодії з клієнтами. Однак попри те, що CRM — це єдина система, клієнт завжди може розмежувати доступи до окремих даних, компонентів, процесів, полів і налаштувань. Таким чином відбувається оптимізація роботи персоналу, і кожен бачить лише ту інформацію, яка потрібна йому для роботи.

Крім того, кожен користувач CRM-системи може налаштувати її під себе. Наприклад, створити власні темплейти (page layouts) для контактів, аккаунтів та інших об’єктів, або ж вибрати місце розміщення та назву кнопки, прописати текст валідації полів.

І, нарешті, CRM-система дозволяє слідкувати, як працівники виконують свої показники ефективності, за допомогою аналітичних інструментів: графіків, чартів, таблиць, формул, метрик тощо.

Але є й недоліки.

Перш за все, CRM-систему складно впроваджувати. Особливо коли є необхідність значної кастомізації, що тягне за собою залучення великої кількості ресурсів — і не тільки фінансових і людських, а й часових і технічних.

Крім того, впровадження CRM-системи — це виклик не лише для керівника компанії, а й для персоналу, якому необхідно в короткі терміни освоїти та вивчити весь функціонал, необхідний для ефективної роботи.

І найбільш небезпечним недоліком є те, що коли CRM-система виходить з ладу, весь бізнес просто зупиняється.

Типи CRM-систем

За способом реалізації CRM-системи поділяються на автономні (Standalone) та хмарні (SaaS).

Standalone — це ліцензія на встановлення і використання програмного продукту. Таким чином ви отримуєте програмне рішення, яке встановлюєте на власний сервер, при бажанні — допрацьовуєте під свої потреби, залежно від тих можливостей, які надає постачальник CRM-системи.

Інший тип — SaaS (система як сервіс) — дозволяє отримати online-доступ до системи через браузер, програму-клієнт або мобільний додаток, а всі процеси відбуваються на сервері постачальника послуг.

CRM-система на базі Salesforce, з якою працюю я, саме типу SaaS.

Що таке Salesforce

Salesforce — один із світових лідерів на ринку CRM-систем. Компанію заснував у 1999 році Марк Беніофф. До цього він тривалий час працював менеджером з продажів в Oracle і, ставши у 25 років віце-президентом, увійшов в історію як наймолодший співробітник, який досягнув такої посади.

Сьогодні Salesforce — це не тільки CRM-система, а cloud-платформа, на базі якої, окрім CRM-частини, є ще багато цікавого. Salesforce надає цілу низку готових рішень, таких як:

• Sales Cloud — система для підтримки процесів продажів;
• Service Cloud — частина CRM для забезпечення процесів обслуговування та підтримки клієнтів;
• Marketing Cloud — послуги та програмне забезпечення у сфері хмарних рішень для цифрової автоматизації маркетингу та аналітики;
Force.com — програмна платформа, що надається передплатникам для самостійної розробки додатків і розширень для CRM-систем на базі Salesforce;
Database.com, Chatter, Data.com, Work.com, Community Cloud, Heroku, Integration, Einstein Analytics та інші.

Salesforce вважається № 1 за надійністю CRM-системи в США. Сьогодні уже більше 150 тисяч компаній в усьому світі ведуть бізнес на платформі Salesforce. Зі зростанням кількості користувачів зростає і необхідність у технічних спеціалістах, які б могли налаштовувати платформу під потреби клієнта.

Можливості для технічного спеціаліста

У Salesforce чудово вибудована система навчання. Зокрема, є можливість більше дізнатися про систему з безкоштовних уроків на спеціальному ресурсі: trailhead.salesforce.com/trails. Усе, що необхідно для початку, — це зареєструвати акаунт. Далі рекомендується вибрати уроки відповідно до вашої ролі на проекті. Наприклад, якщо ви тестуєте систему, для вас підійдуть Admin Beginner/Advanced уроки, а якщо ви розробник — то Developer Beginner/Advanced.

Також на цьому ресурсі можна підтвердити та закріпити знання за допомогою сертифікації. Після успішного складання тесту ви отримаєте сертифікат, де буде вказано, який курс ви освоїли та яку кваліфікацію отримали.

Окрім Trailhead, в інтернеті можна відшукати велику кількість платних ресурсів, які допоможуть швидко структурувати знання та максимально ефективно підготуватися до сертифікації.

Із власного досвіду можу порекомендувати недорогий ресурс, яким сам користувався. Саме він допоміг мені якнайкраще підготуватися до іспиту: focusonforce.com/...​ertification-study-guide.

Як влаштована платформа Salesforce

Salesforce пропонує три типи зв’язків між об’єктами, які відрізняються за жорсткістю зв’язку (обов’язковий та необов’язковий), за залежністю (каскадний), та за спадкуванням прав доступу.

На схемі нижче зображено взаємозв’язки між основним об’єктом (Account) та його дочірними об’єктами (Audio, Image, Video).

Media — об’єкт-джанкшн (junction), що виконує роль зв’язку між об’єктами за принципом Many-to-many (один із типів зв’язків SQL). Такі об’єкти будуть траплятися на кожному кроці.

Many-to-many relationship

Salesforce OOB Custom Solutions

Я опишу докладніше кілька готових рішень Salesforce та розповім про особливості їх тестування.

Custom UI

Це інтерфейси, розроблені засобами платформи для зручного створення і обробки об’єктів, часто зі складною ієрархією батьківських та дочірних зв’язків. З погляду тестування важливо покрити не лише їхню працездатність, а й те, як вони інтегруються з системою, чи немає розбіжностей між можливостями UI і об’єктами, створеними за їх допомогою, а також правами конкретного користувача.

Custom Code

Це кастомні валідації, розширення вбудованих можливостей платформи CRM, засоби масової обробки даних, заповнення полів відповідно до поведінки.

Custom Validation

Ми можемо зробити поле обов’язковим. Або ж зробити поле унікальним для введення специфічних даних. Наприклад:

Номер аккаунта не повинен містити більше восьми символів.

Custom Labels

Це ще одне «Out of the Box» рішення, що дає змогу кастомізувати різного роду повідомлення (pop-up, alert, error message, etc.).

Наприклад, створімо Custom Label для валідації незаповнених обов’язкових полів на сторінці створення об’єкту Lead.

При спробі збереження об’єкту спрацьовує Validation Rule та повідомляє користувача про те, що поле є обов’язковим для заповнення. Текст повідомлення береться з нашого запису (Lead Layout field), який раніше був створений у Custom Labels.

Впровадження CRM-системи

У процесі впровадження і розробки CRM-систем на базі Salesforce тестувальник може зіткнутися з певними складнощами.

Найчастіше при впровадженні CRM-системи для бізнесу виникає проблема в покритті всіх можливих юзер-кейсів у зв’язку з тим, що команда проекту не завжди володіє специфічними знаннями в цій галузі бізнесу (інколи важко передбачити, які саме сценарії CRM-системи використає клієнт).

Для вирішення цієї проблеми замовники (Product Owners) проводять sharing days, на яких проектній команді показують відповідні юзер-кейси та розповідають, як саме кінцевий користувач працюватиме з системою.

Ще однією важливою проблемою є складність підтримки декількох «пісочниць», адже для впровадження CRM-системи в одній компанії необхідно здійснити її тестування на багатьох сендбоксах:

QA sandbox — пісочниця для повсякденного тестування відділом QA;

AQA sandbox — пісочниця для команди Automation;

Upgradability sandbox — пісочниця для тестування переходу однієї версії продукту на іншу (наступну версію);

Production sandbox — пісочниця кінцевих користувачів;

Patch sandbox — пісочниця для завантаження виправлених дефектів на Production-пісочницю.

А що більше сендбоксів, то складніше налаштовувати та підтримувати CI. Звідси і труднощі у тестуванні.

Крім того, виникає ще одна проблема — необхідність постійно перемикатися між кількома сендбоксами та вести облік відомостей.

І остання важлива проблема пов’язана з самою платформою Salesforce. Оскільки система оновлюється тричі на рік, інколи ці оновлення спричиняють появу несправностей у вже готових для релізу компонентів і фіч. Щоб такого не сталося, проектна команда має слідкувати за списком нововведень платформи (Release Notes) та, знаючи структуру готових компонентів та фіч, передбачати можливі помилки.

Відповідно, для успішного впровадження CRM-системи на проекті з’являються нові ролі:

CRM консультант — спеціаліст, який є «містком» між бізнесом і розробкою. Основним його завданням є аналіз вимог клієнта і знаходження шляхів їх реалізації засобами CRM.

Salesforce Developer — профільний розробник, який досконало володіє інструментами обраної платформи. Для Salesforce це мова APEX та засоби розробки VisualForce (створення складного UI, який треба налаштовувати).

Етапи тестування CRM

На нашому проекті є п’ять етапів тестування CRM-систем: UNIT, System, UAT, Regression, Production.

UNIT тестування виконує розробник. Для цього він пише спеціальні UNIT тести для покриття всіх класів і методів розробленого компоненту чи фічі.

System тестування полягає у перевірці як функціональних, так і нефункціональних вимог у системі в цілому. При цьому виявляються дефекти: неправильне використання ресурсів системи, непередбачені комбінації даних на рівні користувача, несумісність з оточенням, непередбачені сценарії використання, відсутня або неправильна функціональність, незручність використання тощо.

Regression — це етап, коли команда тестувальників перевіряє всі тестові сценарії (розроблені заздалегідь) з метою виявлення можливих дефектів системи до того, як їх знайде кінцевий користувач.

UAT, або User Acceptance Testing, виконується на боці замовника. На UAT пісочницях команда клієнта налаштовує систему під необхідні бізнес-процеси, опираючись на user stories з acceptance-критеріями. Таким чином замовник може передбачити відсутні чи невиконані AC (Acceptance Criterias) або розширити user story додатковими критеріями, якщо наявні не повністю задовольняють потреби бізнесу.

Production — заключний етап, ідентичний регресії, проте виконується на Production-сендбоксі. Оскільки в цьому випадку налаштування можуть значно відрізнятися від налаштувань на Regression-сендбоксі, покриваються нетипові сценарії налаштувань системи.

Під час цих етапів тестувальник має бути готовим до таких складнощів:

• Необхідність робити перевірки під безліччю різних профілів користувачів;
• Необхідність проводити тестування на декількох пісочницях (від двох і більше);
• Тестування кастомних інтерфейсів, вбудованих в систему;
• Обмеження (Limits) всередині самої CRM;
• CRM може одночасно мати кілька видів інтерфейсів користувачів;
• Тестування інтеграції великої кількості компонентів.

Але це ще не всі челенджі для тестувальника...

Зокрема, також необхідно перевіряти:

Валідацію стандартних і кастомних полів — наприклад, поле «phone number» може містити тільки 10 символів і не підтримувати нечислових символів.
Безпеку даних під різними профілями — наприклад, торговий представник має менше прав для роботи з даними, ніж регіональний менеджер, а менеджер — менше, ніж адміністратор.
Стандартні та кастомні об’єкти, поля на них та вимоги до їх доступності. Помилки можуть призвести до проблем інтеграції з іншими системами і зовнішніми додатками для роботи із CRM.
Performance. Оскільки CRM-системою може користуватися велика кількість юзерів, необхідно уникати проблем із навантаженістю системи та її окремих компонентів.
Роботу із даними. Відсутність дублікатів даних. Приховані дані повинні залишатися прихованими. Коректний меппінг даних. CRUD permission даних відповідають вимогам клієнта.

Для вирішення цих проблем тестувальник має:

• Чітко відрізняти фічі системи від розроблених програмістами фіч. Він повинен розуміти, коли і як слід використовувати OOB (Out of the Box) фічі, а коли варто ними нехтувати.
• Дебажити систему для кращого розуміння причини дефекту.
• Користуватись інструментом платформи — Developer Console.
• Вміти писати та запускати скрипти (APEX scripts) для зменшення рутинної роботи.

Підсумуємо

Salesforce надає багато готових рішень, проте всі вони вимагають неабиякої скрупульозності від тестувальника на всіх етапах розробки та впровадження продукту.

Тестувальник також має чітко розуміти всі вимоги замовника (Product Owner), щоб на їхній базі визначити всі можливі тестові сценарії, описати їх у тест-кейсах, використовуючи техніки тест-дизайну, та протестувати.

Пам’ятайте: роль тестувальника дуже важлива, адже його основна місія — забезпечити якість продукту на найвищому рівні для кінцевого користувача!

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

В цьому році, за рейтингом Gartner, Oracle APEX обігнав Salesforce.
Зараз розробка CRM на цій платформі набирає популярності серед великих компаній.

www.gartner.com/...​code-application-platform

Дякую за статтю
Але вона трошки з водою
А що саме роблять APEX скрипти?

Дякую за відгук!
Наприклад, APEX-скріптами можна створювати та видаляти різну кількість даних та об’єктів. Також, цими скріптами можна деплоїти різного роду метадату, підгружати готові налаштування для тестування, якщо такі потрібні. Скріптами можна запустити джобу, яка наприклад заповнить нове поле на певному об’єкті чи на великій кількості об’єктів. Скріптом можна провірити СRUD permission на любому об’єкті і тд... Можливостей багато.

Дуже дякую, стаття надзвичайно корисна і пізнавальна!

Дякую за статтю, цікаво.
Але у вашій піраміді Regression після UAT, серйозно?
Не надто логічно, мало б бути навпаки, ІМХО

Дякую за відгук. Зауваження має сенс, зробив виправлення!

Спасибо за статью. Всегда приятно узнать что то новое, и закрепить имеющиеся знания!

Спасибо большое, очень интересно и понятно!

Зальём в продакшен — тестировщиков там больше
©

Хорошая статья для начинающих в области CRM. Спасибо

Дякую за статтю, цікаво було дізнатись щось нове для себе.

Подписаться на комментарии