Дорожня карта: як опанувати QA
Спеціально для тих, хто хоче почати свій рік з розвитку та змін, пропоную ознайомитись з дорожньою картою QA. Що це за фах? QA engineer відповідає за перевірку якості програмного продукту або послуги. Він відіграє вирішальну роль у цьому процесі та гарантуванні того, що продукт (або послуга) відповідає потребам клієнтів. Ця роль вимагає поєднання технічних навичок, уваги до деталей та розуміння процесу розробки програмного забезпечення.
Чим займається QA?
QA-інженер — це фахівець, який має певні знання та навички, що допомагають йому шукати проблеми в продукті. QA вміє тестувати продукт, знаходити помилки, аналізує умови їхньої появи, знаходить мінімальний набір умов, за яких помилка відтворюється, й у вигляді баг-репорту передає інформацію розробникам, які працюють над «фіксом бага».
Тестувальники мають розуміти, як влаштовані всі компоненти продукту, розуміти технології тестування, вміти складати сценарії та передбачати потенційні проблеми.
Роль QA-інженера зазвичай містить наступні обов'язки:
- планування та проведення тестування;
- виявлення та повідомлення про дефекти;
- автоматизація процесів тестування;
- впровадження та підтримка автоматизованих процесів тестування, щоб підвищити ефективність і точність, а також скоротити час і ресурси, необхідні для ручного тестування;
- моніторинг та вимірювання якості продукту;
- наставництво та навчання членів команди.
Щоб поступово впровадити у своє професійне життя всі ці пункти, створюються дорожні карти.
Дорожня карта — це план, у якому описано кроки та стратегії охоплення нової спеціальності, роботи з ресурсами, потрібні soft- та hard-skills.
Що потрібно знати, щоб стати тестувальником?
Існує думка, що мануальне тестування — це найпростіший напрямок в IT-секторі. Але я не можу з цим погодитися. Звісно ж, велика залежність від напряму, від проекту, але для старту роботи як manual QA все ж таки потрібен гарний багаж знань, низка особистих якостей та вмінь.
Але почнемо з самого початку: що потрібно знати, щоб стати тестувальником?
Підписуйтеся на наші соцмережі
Тестувальник повинен розуміти як працює «продукт», тому, перше — це знання мереж, клієнт-серверних технологій. Розуміння процесів міжрівневої взаємодії буде величезним плюсом — як струм, світло або радіохвилі перетворюються на графічне відображення в інтерфейсі користувача.
Другий обов'язковий момент — це теорія тестування. Тут можна говорити дуже багато, але спробую описати основні моменти та джерела інформації, які я використовував під час підготовки до співбесіди, без заглиблення в терміни й теорію:
-
1
«Тестування dot com», Роман Савін. Не можу сказати, що мені методика викладу сподобалася, але всі кажуть, що це must-have. Тож, теж відрекомендую;
-
2
Testing Computer software, CEM Kaner. Інформація трохи застаріла, але для новачка — це шикарна енциклопедія знань;
-
3
Rapid Testing, Robert Culbertson, Chris Brown;
-
4
«Як Google тестує програмне забезпечення», James Whittaker, Jason Arbon, Jeff Carollo;
-
5
Глосарій ISTQB — для розуміння термінології, найкраще джерело: https://www.softwaretestinghelp.com/
Що тестувальник має розуміти й знати?
Як молодший інженер з тестування програмного забезпечення, ви повинні добре розуміти процес тестування програмного забезпечення та володіти наступними ключовими навичками та знаннями:
- види тестування;
- види тестової документації (test plan, test case, test progress report, bug report, checklist, test strategy, user story), Bug life cycle, Software Development Life Cycle;
- знання інструментів відстеження дефектів, таких як JIRA, Bugzilla та Redmine, а також вміння своєчасно та ефективно повідомляти, відстежувати та усувати дефекти;
- здатність розробляти та документувати ефективні та комплексні тестові кейси, які ретельно перевіряють функціональність та продуктивність програмного забезпечення;
- розуміння циклу розробки програмного забезпечення (SDLC);
- володіння здатністю швидко адаптуватися до нових технологій, інструментів та методологій, а також постійно вдосконалювати свої навички та знання.
На мою думку, цієї інформації з теорії тестування достатньо для початку кар'єри Junior manual QA.
На додаток до цих ключових навичок і знань, manual QA повинен мати сильну увагу до деталей, пристрасть до якості та прихильність до безперервного навчання та професійного розвитку.
Що ще знадобиться, які знання обов'язково потрібні тестувальнику?
SQL. Навіть початківець має розуміти, що таке «бази даних», як з ними працювати, клієнти, запити, Oracle, My SQL, SQL Developer, MS SQL, IBM DB, MySQL, PostgreSQL — це все відіграє величезну роль в формуванні досвіду фахівця. Для цього рекомендую ознайомитися з Learning SQL, Alan Beaulieu; https://artoftesting.com/sql-for-testers
Також вкрай важливо звертати увагу на API. REST, SOAP, GET, PUT, DELETE, POST, Postman, Soap UI, Jira, базові знання Linux, Browser тощо.
Точно знадобиться знання сервісів зберігання та керування Git-депозиторіями. Наприклад, GitLab або GitHub.
Окрім цього, стане в нагоді вивчення інструментів моніторингу для відстежування динаміки роботи серверів та серверного обладнання: Grafana, Zabbix.
Стануть в пригоді сервіси для тестування подій з відкритим кодом, накшталт SoapUI, Postman, Katalon Studio, Jenkins, WinSCP та керування віддалених підключень (mRemoteNG).
І на десерт також хочу додати про IDE (інтегровану середу розробки) для роботи з різноманітними платформами. Наприклад, Xamarin Microsoft Visual Code Studio або Android Studio.
Які мови програмування треба знати, які інструменти освоїти, які навички шліфувати?
Хоча QA-інженеру не обов'язково бути експертом у мовах програмування, базове розуміння деяких популярних мов програмування може бути корисним з наступних причин:
- розуміння мов програмування, таких як Python, Java або C++, може допомогти QA-інженерам зрозуміти код та логіку, що лежить в його основі, що полегшить виявлення дефектів й потенційних проблем;
- знання JavaScript, Python, Java, або Ruby, може допомогти QA-інженерам створювати автоматизовані тести, підвищуючи ефективність і точність процесу тестування;
- розуміння мов програмування може допомогти QA-інженерам налагоджувати проблеми й допомагати розробникам у виправленні дефектів;
- написання тестових скриптів тощо.
Додам, що хоч для Manual QA знання мов програмування не обов'язкове, але розвиток IT вносить свої корективи. Дедалі частіше manual QA стикається з тим, що необхідно вміти читати код, писати елементарні скрипти для оптимізації деяких процесів. Введення автоматизованих процесів у мануальному тестуванні все частіше зустрічається, так само як і поняття General QA.
Автоматизація — це великий крок у розвитку manual QA. Для себе я обрав вивчення мови Python, чим зараз активно займаюся.
У моїх планах першим стоїть Python, оскільки саме він використовується для автоматизації частини продукту, з якою працює моя компанія, в якій я планую розвиватися найближчим часом.
Сподіваюся, було цікаво і корисно та бажаю вам швидкого досягнення поставлених професійних цілей й високих результатів в навчанні. Вивчення основ тестування та мов програмування допоможуть віднайти свій шлях та розпочати захоплюючу подорож в світ сучасних технологій. Нехай ця дорожня карта допомагає увійти в IT максимально легко та за задоволенням та пройти шлях від Trainee до Senior максимально швидко.