База знань

Для чого потрібен SQL для тестування?

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

SQL — це стандартно комп’ютерна мова для управління базами даних та для обробки даних. SQL використовується для запиту, вставки, оновлення та зміни даних. Ви можете розглядати SQL як засіб зв’язку між користувачем та СУБД (система управління БД).

Простіше кажучи, SQL — це мова програмування, за допомогою якої ми звертаємося до нашої бази даних.

Для визначення SQL-запиту нам необхідно спочатку зрозуміти, що таке запит? Запит може бути визначений як запит даних з бази даних через СУБД. Запит може розглядатися як інструкція, що відправляється до СУБД для отримання набору даних на основі критеріїв. Такий запит може розроблятися за допомогою SQL та називається запитом SQL.

Простим прикладом SQL-запиту буде: Select * from Table.

Подивившись на цей запит, ви легко зможете зрозуміти, що він намагається зробити – вибрати всі дані (представлені *) з таблиці.

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

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

Наскільки важливі навички SQL для тестувальника програмного забезпечення?

Окремі додатки вимагають сильних навичок перевірки SQL, деякі з них вимагають середніх навичок, а для деяких додатків знання SQL взагалі не потрібні.

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

Розглянемо роботу над іншим проєктом, участь у бекенд-тестуванні, де потрібні сильні знання SQL-запитів. Внутрішній інструмент користувача інтерфейсу для отримання даних з бази даних Oracle на основі вхідних значень. В рамках тестування порівнюються вихідні дані інструменту інтерфейсу користувача і вихідні дані бази даних, вводяться однакові значення в інструмент і базу даних, щоб переконатися, що інструмент функціонував належним чином. Кожен раз, коли вхідні дані змінюються, адміністратор бази даних дає групі тестування запити з дуже великим обсягом за допомогою оператора select. Для початку потрібно зрозуміти зв’язок між таблицями, стовпцями та запитом, перш ніж його використовувати. Крім того, потрібно використовувати різні типи операторів SQL для перевірки тестових даних.

Тестувальник повинен володіти наступними знаннями баз даних та SQL:

  • Він повинен вміти розпізнати різні типи баз даних;
  • Підключитися до бази даних за допомогою різних клієнтів SQL-з’єднань;
  • Розуміти відносини між таблицями бази даних, ключами та індексами;
  • Уміння написати простий оператор вибору або SQL разом зі складнішими запитами на з’єднання;
  • Інтерпретувати складніші запити.

Оператори SQL, які найчастіше використовуються у тестуванні:

  • Data Manipulation Language (DML):використовується для вилучення, зберігання, зміни, видалення, вставки й оновлення даних у базі даних. Приклади: оператори SELECT, UPDATE та INSERT.
  • Data Definition Language (DDL):використовується для створення та зміни структури об’єктів бази даних у базі даних. Приклади: оператори CREATE, ALTER і DROP.
  • Transactional Control Language (TCL):Керує різними транзакціями, що відбуваються у базі даних. Приклади: оператори COMMIT, ROLLBACK.
  • Inner Join:витягує зіставлені записи з обох таблиць.
  • Distinct:витягує різні значення з одного або кількох полів.
  • In:цей оператор використовується для того, щоб знайти або ні значення у списку.
  • Between:цей оператор використовується для отримання значень у діапазоні.
  • WHERE:вказує, які рядки отримати.
  • Like:цей оператор використовується для виконання зіставлення з шаблоном; він використовується з оператором WHERE.
  • Order By Clause:вказує порядок повернення рядків, сортує записи таблиці у порядку зростання або спадання. За замовчуванням порядок зростає.
  • GROUP BY:групує рядки із загальною властивістю так, що агрегатна функція може бути застосована до кожної групи.
  • HAVING:обирає з груп, визначених оператором GROUP BY.
  • Aggregate Functions:виконує обчислення для набору значень і повертає одне значення. Приклад: Avg, Min, Max, Sum, count і т.д.

SQL дуже важливий для тестування програмного забезпечення, оскільки:

  • Перевірка допоможе зрозуміти, що дані, які додаються до форми (на frontend), додаються на бекенд або ні. Наприклад, під час реєстрації користувача на сайті, деякі поля пропущені, отже, ми бачимо певне повідомлення про помилку щодо реєстрації користувача. Також, якщо ми виконаємо SQL-запит, то зможемо сказати, що такі поля пропущені, й існує деяка помилка у функціональному модулі реєстрації користувача.
  • SQL допомагає нам в отриманні тестових даних. Наприклад, якщо необхідно перевірити окремі виправлення для товарів, які видно на працюючому сайті. За допомогою SQL-запиту, можна отримати продукти з певною умовою (фільтрацією), і змінити опис товару всіх записів одночасно.
  • SQL допомагає нам в автоматизації тестування. Наприклад, якщо нам потрібно переконатися, що для платного зареєстрованого користувача буде відображено прапорець VIP після входу в систему. SQL допоможе в тому, що ми безпосередньо отримаємо користувача з цими певними умовами з бази даних, а потім авторизуємося, використовуючи дані, і просто перевіримо наявність або відсутність прапорця VIP, замість того, щоб створити нового користувача і потім здійснити оплату від його імені.

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