Хто має тестувати код: розробник чи тестувальник? | nt.ua

Хто має тестувати код: розробник чи тестувальник?

Серпень 03, 2022 qa тестування академія
Who should test the code

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

Проте, щоб оптимізувати та прискорити процес розробки, спеціалісти мають володіти додатковими навичками. Так, розробники та QA не просто повинні знати про ролі один одного; їм доводиться виконувати обов’язки один одного. Тестувальники повинні мати уявлення про принципи розробки та написання коду, а розробники повинні знати хоча б основи тестування.

Але хто ж саме має проводити тестування?

Щоб відповісти на це запитання, потрібно зрозуміти, що тестують розробники, та чим займаються QA фахівці.

Що тестують розробники?

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

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

Що тестують QA фахівці?

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

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

Поточна тенденція серед команд розробників програмного забезпечення полягає в тому, щоб відійти від QA тестування на користь тестування розробниками. Але чи це правильний вибір?

Тестування розробниками

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

Ще однією з причин, чому розробники уникають тестування нового коду є те, що вони працюють в одному розділі коду програми й не розуміють, як працює вся програма. Незалежно від глибини перевірки, розробникам буде важко, або ж і зовсім неможливо знайти помилки.

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

Деякі розробники також можуть бути надто оптимістичними щодо своїх кодів. Вони вважатимуть свій код бездоганним і, як наслідок, можуть пропустити інші деталі програми або пропустити помилки.

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

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

QA тестування

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

Тестувальники проводять цілу низку тестів, що дозволяють детально протестувати всі функції програми. Крім того, QA проводять тести, що копіюють поведінку кінцевих користувачів. Ці тести враховують той факт, що користувач може використовувати програму не за призначенням, що може призвести до поломки.

QA фахівці грають допоміжну роль для команд розробників, адже вони зазвичай співпрацюють між собою, що набагато підвищує продуктивність. Вони забезпечують незалежну точку зору, що підвищує успіх тестів.

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