Условия и сортировка — DDT — Слияние — DML — DCL — Типы тестирования — Ограничения в SQL — и другое
Собрали вопросы по SQL на собеседовании тестировщика вместе с ответами — они помогут вам подготовиться к интервью. А для того, чтобы практиковаться в SQL, рекомендуем подписаться на наш телеграм-канал SQL для тестировщика.
1. Что такое SQL?
SQL (или Structured Query Language, «Язык структурированных запросов») — это язык, используемый в качестве средства коммуникации для создания баз данных и доступа к ним. SQL выполняет такие задачи, как извлечение, обновление, добавление новых и удаление существующих данных. SQL позволяет выполнять запросы, вставлять и обновлять записи, создавать и удалять базы данных и таблицы и многое другое. Подробнее об SQL простыми словами можно почитать в этом материале
2. Что такое СУБД (или DBMS)?
СУБД расшифровывается как «система управления базами данных». Это программа, используемая для обслуживания, мониторинга, создания, развертывания и контроля использования базы данных. Она также действует как файловый менеджер для данных, хранящихся в базе.
3. Что такое таблицы в контексте SQL?
Таблица в SQL — это набор записей, организованных в набор строк и столбцов для формирования модели. Нет точных верхних пределов для количества записей, которые могут быть определены строками в таблице.
4. Назовите SQL-операторы для составления условий
GROUP BY: используется при агрегировании для объединения идентичных данных в группы, предложение GROUP BY следует за предложением WHERE в операторе SELECT. В примере ниже результатом запроса с использованием GROUP BY будет таблица, показывающая количество пользователей (Customers) в каждой стране (Country):
SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country;
HAVING: используется для указания условия поиска в предложении GROUP BY, HAVING может использоваться в отсутствие предложения GROUP BY с помощью предложения WHERE. В примере ниже результатом запроса с использованием HAVING будет таблица, показывающая количество пользователей (Customers) в каждой стране (Country) с числом пользователей больше 5.
SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country HAVING COUNT(CustomerID) > 5;
ORDER BY: сортирует набор результатов в порядке возрастания (по умолчанию) или убывания (при использовании ключевого слова DESC). В примере ниже результатом запроса будет таблица пользователей (Customers), отсортированная по полю «Страна» (Country):
SELECT * FROM Customers ORDER BY Country;
WHERE: используется для определения условия извлечения записей». В примере ниже результатом запроса будет таблица пользователей (Customers) из Мексики:
SELECT * FROM Customers WHERE Country='Mexico';
5. Что нужно проверять во время тестирования базы данных?
Как правило, проверяются все функциональные возможности, включая проверку размерности полей, ограничения, индексирование, правильность работы хранимых процедур, достоверность данных, целостность данных, триггеры и функции, а также производительность базы данных, правильность добавления и удаления записей.
6. Что такое Data-Driven тестирование?
Data-Driven тестирование (или «Тестирование, управляемое данными») — это система автоматизации, в которой данные для тестов хранятся в таблице, а входные значения считываются из файлов данных и сохраняются в различных тестовых сценариях. Это помогает избежать необходимости создавать отдельные тесты для каждого набора данных.
Система изолирует данные, поэтому один и тот же тестовый сценарий может использоваться для нескольких комбинаций входных данных. Входные данные могут храниться в форматах XLS, XML, CSV и в базе данных. Ниже несколько примеров типов тестирования, управляемого данными:
Key-driven: Динамические тестовые данные вводятся тестировщиком для повторного тестирования приложения с новыми входными значениями.
File-driven (.txt, .doc): Повторное тестирование с использованием данных, хранимых в файле.
Excel: Этот тест запускает сценарий для нескольких входных данных, которые хранятся в Excel-таблицах.
Отдельную статью по Data-Driven тестированию в Selenium можно почитать по ссылке
7. Что такое JOIN в SQL? Какие виды JOIN-ов вы знаете?
JOIN — это ключевое слово, используемое для получения данных из нескольких таблиц на основе взаимосвязи между полями таблиц и представления результатов в виде единого набора. Различные типы JOIN: INNER JOIN, OUTER JOIN, LEFT JOIN и RIGHT JOIN.
8. Что такое DML?
DML (или Data Manipulation Language) — язык манипулирования данными. Это язык программирования, который облегчает выбор, добавление, удаление и обновление данных в базе данных. DML (как и SQL) позволяет пользователям получать и использовать данные в реляционной базе данных.
9. Что такое DCL-команды?
«DCL» расшифровывается как Data Control Language (или «язык управления данными») и является компонентом SQL, который управляет доступом к данным, хранящимся в базе. DCL-команды бывают двух типов:
Grant: предоставляет пользователям доступ к базе данных.
Revoke: прекращает предоставление пользователям доступа к базе данных.
10. Что такое повторное тестирование?
Повторное тестирование подразумевает выполнение одного и того же теста с разными входными значениями после предыдущего тестирования, обнаружение проблемы и ее устранение. Повторное тестирование отличается от тестирования с использованием данных тем, что повторное тестирование — это ручной процесс, когда тестирование проводится с совершенно новым набором данных, в то время как тестирование с использованием данных — это автоматизированный процесс, который тестирует приложение с несколькими наборами тестовых данных».
11. Что такое нагрузочное тестирование?
Тестирование производительности (или нагрузочное тестирование) — это узкоспециализированная техника тестирования программного обеспечения, которая помогает определить, как система работает с точки зрения скорости и стабильности при большой рабочей нагрузке.
12. Что такое ограничения SQL?
Ограничения в SQL — это утверждения, используемые для установления правил для столбцов в таблице. Если какое-либо действие нарушает ограничение, это действие будет прервано. Ограничения задаются при создании самой базы данных с помощью оператора CREATE TABLE или после создания таблицы с помощью оператора ALTER TABLE. В SQL используются следующие пять основных ограничений:
NOT NULL: указывает на то, что столбец должен иметь определенное значение; его нельзя оставлять пустым (NULL). В примере ниже столбцы ID, LastName и FirstName не могут быть пустыми:
CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255) NOT NULL, Age int );
UNIQUE: гарантирует, что каждая строка в столбце имеет уникальное значение; ни одно значение не повторяется ни в одной другой строке. Следующий SQL-запрос установит ограничение для ID (записи в таблице Persons должны будут иметь уникальные ID)
CREATE TABLE Persons ( ID int NOT NULL UNIQUE, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int );
PRIMARY KEY: поле в SQL-таблице, позволяющее однозначно идентифицировать каждую запись. PRIMARY KEYs должны быть уникальными — как правило, в качестве PRIMARY KEY используются ID записей. Запрос ниже задает первичный ключ (ID) в таблице Persons:
CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, PRIMARY KEY (ID) );
FOREIGN KEY: поле (или набор полей) в одной таблице, которое ссылается на PRIMARY KEY в другой таблице. Используется для обеспечения ссылочной целостности данных, а также сопоставляет значение в одной таблице с другой. Следующий запрос создаст внешний ключ (FOREIGN KEY) в столбце PersonID при создании таблицы Orders:
CREATE TABLE Orders ( OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY (OrderID), FOREIGN KEY (PersonID) REFERENCES Persons(PersonID) );
CHECK: используется для обеспечения соответствия значений в столбцах заданным условиям. В примере ниже ограничение гарантирует, что в таблице не будет записей людей, с возрастом (Age) меньше 18 лет
CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CHECK (Age>=18) );