Чи повинні тестувальники писати CodeПосібник з навичок та кар'єри
⚡ Розумний підсумок
Тестувальникам не завжди потрібно писати код, але знання кодування визначають, наскільки далеко може зайти кар'єра тестувальника. Ручні ролі цього не потребують, тоді як роботи з автоматизацією та SDET вимагають справжніх навичок програмування.
Чи повинні тестувальники вчитися Code?
Дуже поширене питання про програмне забезпечення Тестування Запитання шукача: чи повинні тестувальники писати код? Перш ніж відповісти на нього, необхідно повне розуміння різних ролей тестувальників програмного забезпечення.
Контроль якості програмного забезпечення зазвичай поділяється на дві категорії:
- Аналітик якості: Аналітик якості перевіряє функціональність та повноту тесту. Аналітик якості перевіряє програмне забезпечення лише після етапу розробки. Ця роль не така технічна, як роль розробника, і може не вимагати написання коду.
- SDET (Інженер-розробник програмного забезпечення в тестуванні): З іншого боку, SDET — це той, хто розуміє внутрішню роботу продукту. SDET розуміють концепції баз даних та мови програмування, а також беруть участь у розробці продукту, даних та інтерфейсів користувача. SDET працюють на етапі розробки та вимагають знань кодування. Тому роль SDET є складнішою, оскільки вона поєднує роботу розробника з роботою тестувальника. Тестувальники автоматизації (які використовують такі інструменти, як QTP та Selenium) також можна класифікувати як SDET.
На діаграмі нижче порівнюються ці два tracks, що показує, де кожен з них знаходиться відносно фази розробки.
Отже, виходячи з ролі тестувальника, ви можете визначити, чи потрібні знання кодування. Давайте відповімо ще на кілька питань, пов'язаних з цим.
Атрибути хорошого тестувальника
Методологія тестування програмного забезпечення залежить від потреб та специфікацій програмного продукту. Гарний спеціаліст з контролю якості або тестування програмного забезпечення відіграє важливу роль у завершенні процесу тестування, незалежно від того, який з них тип тестування вимагає проект.
Атрибути хороших тестерів:
- Добре знання предметної області
- Гарне логічне мислення
- Добре знання навичок програмування
Знання предметної області та логічне мислення є невід'ємними для кожного тестувальника. Однак навички програмування суттєво відрізняються залежно від ролі, що й розглядається в наступному розділі.
Скільки знань з програмування потрібно тестувальнику?
Написання коду та його налагодження – це робота розробника. Тоді виникає питання: навіщо взагалі знання кодування потрібні тестувальникам?
Давайте розглянемо деякі причини, чому знання програмування стає необхідним для тестувальників. Наведена нижче ілюстрація підсумовує, де ці знання фактично застосовуються.
Тестування програмного забезпечення в основному включає два підходи: Ручне тестування та Тестування автоматизаціїНа просунутому рівні тестування можна класифікувати як тестування білої скриньки, чорної скриньки або сірої скриньки. Різні методи тестування вимагають від тестувальників різного набору навичок.
- Під час виконання Тестування чорного ящику, тестеру не потрібні знання програмування. Тестер просто тестує програмне забезпечення, вводячи дані, а потім перевіряючи результат.
- Тестування білої скриньки, або тестування на основі коду, вимагає знання коду. Знання концепцій програмування, таких як C, C#, C++ та Концепції СУБД може бути корисним.
- Тестування сірої коробки знаходиться між ними: тестер має часткове знання внутрішньої структури, тому читання коду корисне, навіть якщо його написання не завжди потрібно.
- Тестерам потрібні добрі знання кодування, коли вони переходять до автоматизованого тестування або тестування білої скриньки. Це пояснюється тим, що автоматизоване тестування включає покриття операторів, покриття коду та цикломатична складність, і всі ці концепції вимагають добрих знань програмування та баз даних.
- SQL (Структурована мова запитів) — іноді тестування потребує перевірки бази даних. Тому тестувальникам потрібні базові знання команд SQL, таких як SELECT, CREATE та UPDATE.
- SQL-ін'єкція — SQL injection – це один із методів, що використовуються для злому баз даних шляхом вставки небажаних команд. Добре знання JavaScript та SQL команди стають у пригоді для запобігання таким загрозам безпеці програмного забезпечення.
- Agile тестування — у гнучкому тестуванні вся команда відповідає за якість програмного забезпечення. Протягом усього гнучкого процесу тестувальник працює з одним або кількома програмістами над написанням тестів. Отже, для створення автоматизованого тесту тестувальникам вкрай важливо знати код.
Важливі поради для аналітика з контролю якості програмного забезпечення
- Знання ручного тестування, а також мов сценаріїв, таких як JavaScript додасть балів вашим навичкам тестування.
- Як тестувальник, ви повинні мати базові знання мов програмування, таких як Java та vbscriptЦе не обов'язково, але дуже цінно. Знання концепцій SQL та СУБД також є гарною практикою.
- Навчіться читати стек tracе та журнал збірки. Читання коду — це нижча планка, ніж його написання, і це вже робить тестовий випадок набагато точніші звіти.
Окрім цього, є кілька загальних навичок, які допоможуть кожному аналітику якості програмного забезпечення:
- Навик спілкування
- Аналітичний склад розуму
- Здатність
Знання того, як програмувати в тестуванні програмного забезпечення, допомагає аналітику з контролю якості або тестувальнику протягом усієї його кар'єри. У наступному розділі ця вимога відображається для кожної ролі окремо.
Ролі тестування, що вимагають кодування, проти ролей, що не вимагають
На питання «Чи потрібно тестувальникам програмувати?» немає однозначної відповіді, оскільки «тестувальник» – це не окрема робота. У таблиці нижче зіставлено типові ролі тестувальників з рівнем програмування, який реально вимагає кожна з них.
| Роль тестування | Типова робота | Необхідний рівень кодування |
|---|---|---|
| Ручний / функціональний тестер | Розробляє та виконує тестові випадки, повідомляє про дефекти | ніхто |
| Розвідувальний / тестер зручності використання | Непланове розслідування, зворотний зв'язок щодо користувацького досвіду | ніхто |
| Тестувальник домену / бізнесу | Перевіряє бізнес-правила на відповідність специфікаціям | ніхто |
| Тестер баз даних | Перевіряє збережені дані, об'єднання та правила цілісності | Тільки SQL |
| Тестер API | Створює твердження запитів та відповідей поверх JSON або XML | Базовий |
| Тестер автоматизації | Пише та підтримує скрипти в Selenium, Драматург, або Cypress | Проміжний |
| Тестер продуктивності | Скрипти завантажують сценарії, співвідносять динамічні значення | Проміжний |
| SDET | Створює фреймворки, тестові харнети та конвеєри неперервної інтеграції (CI) | Рівень розробника |
Сприймайте таблицю як кар'єрні сходи, а не як стіну. Більшість тестувальників починають з рядка, який не потребує коду, а потім опускаються вниз, коли зростає їхня впевненість у програмуванні. Ніщо не заважає сильному тестувальнику ручного керування залишатися у верхніх рядках протягом усієї кар'єри, але нижні рядки - це місце, де зазвичай знаходяться бюджети на автоматизацію та старші посади.
Які мови програмування повинен вивчати тестувальник?
Тестувальникам не потрібна кожна мова. Зазвичай достатньо двох: однієї мови загального призначення для автоматизації та SQL для перевірки даних. Порівняння нижче показує, де кожен варіант виправданий.
| Language | Де це допомагає тестувальнику | Чому вибирають це |
|---|---|---|
| Python | Selenium та скрипти для драматургів, набори PyTest, перевірки даних | Найпростіший синтаксис, найшвидший шлях до першого робочого тесту |
| Java | Selenium з TestNG or JUnit, Appium, корпоративні фреймворки | Найбільш поширений запит у великих організаціях |
| JavaСценарій / TypeScript | Cypress, Драматург, фронтенд та компонентне тестування | Збігається з мовою, яку вже використовує тестований застосунок |
| SQL | Верифікація серверної частини, налаштування тестових даних та демонтаж | Корисно навіть для ролей, які ніколи не автоматизують браузер |
| Скриптування оболонки | Розбір журналу, налаштування середовища, кроки завдання CI | Невеликі зусилля, негайна щоденна винагорода |
Скрізь, де це можливо, оберіть мову, яку вже використовує ваша команда розробників. Спільне використання мови означає спільний перегляд коду, спільні бібліотеки та розробників, які можуть допомогти, коли тестування переривається. Тестувальник, який вільно володіє однією мовою та впевнено користується SQL, охоплює переважну більшість робіт з автоматизації.
Як почати вчитися Code як тестер
Навчання програмуванню під час повного тестового навантаження – це питання послідовності, а не таланту. Наведені нижче кроки ведуть від нульового програмування до комплексного комплексу автоматизації без відмови від щоденного виконання тестів.
Крок 1) Вивчіть основи мови. Змінних, умовних операторів, циклів, функцій та колекцій достатньо для читання та написання тестового скрипта. Об'єктно-орієнтована теорія може почекати.
Крок 2) Додайте SQL якомога раніше. Кілька операторів SELECT з об'єднаннями та реченнями WHERE дозволяють перевірити, що насправді зберегла програма, що негайно покращує звіти про дефекти.
Крок 3) Автоматизуйте одне нудне завдання. Перетворити один повторюваний регресія перевірити у скрипті. Один робочий тест навчає більше, ніж місяць навчальних посібників.
Крок 4) Вивчіть фреймворк тестування, а не лише інструмент. Твердження, встановлення, налаштування та демонтаж, а також звітність важливіші, ніж просто натискання кнопки на диктофоні. Саме тут сценарії перетворюються на цілісний набір.
Крок 5) Використовуйте систему контролю версій. Закомітьте тестовий код у Git так само, як це роблять розробники. RevПерегляд відмінностей – це також спосіб, яким тестувальники вчаться читати продакшн-код.
Крок 6) Підключіть комплект до трубопроводу. Тести, що запускаються автоматично для кожної збірки, мають цінність; тести, що запускаються лише на ноутбуці, — ні. Цей крок узгоджує тестування з ширшим життєвий цикл тестування ПЗ.
Очікуйте від трьох до шести місяців постійної практики, перш ніж автоматизація стане для вас комфортною. Прогрес навмисно поступовий, тому кожен крок дає корисні результати до початку наступного.


