1 · Orientation
Де SQL входить у цикл тестування
~0,8 год

T-SQL як робочий інструмент перевірки, а не як тема. Для QA-інженерів, які знають основи й тепер мають перевіряти, що система справді записала: звірка міграцій, пошук дублікатів, розпізнавання запиту, який зеленіє там, де мав би червоніти. Усе на одній вигаданій платформі — від чужої схеми до детермінованого асерту. Юніти відкриті в будь-якому порядку.
Заняття — вашою мовою: його веде асистент.
Асистент бере матеріал курсу з нашого сервера й веде заняття вашою мовою.
Іспит складається на сайті, без асистента. Питання іспиту не перекладаються: так вирішено для всіх курсів.
порядок вільний · сходинки нижче — той порядок, який пропонує автор, а не умоваВигляд: карта · щаблі
1 · Orientation
Де SQL входить у цикл тестування
~0,8 год
2 · Orientation
Читання схеми, яку проєктували не ви
~1 год
за задумом автора — після «Де SQL входить у цикл тестування»
3 · Orientation
Безпечна робота на спільному тестовому стенді
~1 год
за задумом автора — після «Де SQL входить у цикл тестування»
4 · Precise retrieval
SELECT, що відповідає рівно на одне питання
~0,9 год
за задумом автора — після «Читання схеми, яку проєктували не ви»
5 · Precise retrieval
NULL і логіка, що має три відповіді
~1,1 год
за задумом автора — після «SELECT, що відповідає рівно на одне питання»
6 · Precise retrieval
Типи, перетворення та параметри сортування
~1 год
за задумом автора — після будь-якого із: «Читання схеми, яку проєктували не ви», «SELECT, що відповідає рівно на одне питання»
7 · Precise retrieval
Дати, час і останній день місяця
~1,1 год
за задумом автора — після будь-якого із: «SELECT, що відповідає рівно на одне питання», «Типи, перетворення та параметри сортування»
8 · Across tables
INNER і LEFT: які рядки з'єднання відкидає
~1 год
за задумом автора — після будь-якого із: «SELECT, що відповідає рівно на одне питання», «NULL і логіка, що має три відповіді»
9 · Across tables
~1 год
за задумом автора — після «INNER і LEFT: які рядки з'єднання відкидає»
10 · Across tables
Коли з'єднання розмножує рядки
~1,1 год
за задумом автора — після «INNER і LEFT: які рядки з'єднання відкидає»
11 · Across tables
Операції над множинами як звірка
~1 год
за задумом автора — після будь-якого із: «NULL і логіка, що має три відповіді», «INNER і LEFT: які рядки з'єднання відкидає»
12 · Aggregation
~1 год
за задумом автора — після будь-якого із: «SELECT, що відповідає рівно на одне питання», «Коли з'єднання розмножує рядки»
13 · Aggregation
~1 год
за задумом автора — після «GROUP BY і перерахунок звіту»
14 · Aggregation
~1 год
за задумом автора — після будь-якого із: «Коли з'єднання розмножує рядки», «GROUP BY і перерахунок звіту»
15 · Aggregation
Віконні функції для тестувальника
~1,1 год
за задумом автора — після будь-якого із: «HAVING і пошук дублікатів», «Підзапити та CTE»
16 · Data before and after the test
Тестові дані: підготовка та ідемпотентне очищення
~1,1 год
за задумом автора — після будь-якого із: «Безпечна робота на спільному тестовому стенді», «Операції над множинами як звірка»
17 · Data before and after the test
Перевірка того, що застосунок насправді записав
~1,1 год
за задумом автора — після будь-якого із: «Віконні функції для тестувальника», «Тестові дані: підготовка та ідемпотентне очищення»
18 · Data before and after the test
Читання представлень, процедур і тригерів
~1 год
за задумом автора — після будь-якого із: «Тестові дані: підготовка та ідемпотентне очищення», «Перевірка того, що застосунок насправді записав»
19 · Data before and after the test
Перетворення перевірки на детерміноване твердження
~1,1 год
за задумом автора — після будь-якого із: «Тестові дані: підготовка та ідемпотентне очищення», «Перевірка того, що застосунок насправді записав»
20 · Optional
Необов'язково: зберіть ENGAGE локально й виконайте перевірки
~1,5 год
за задумом автора — після будь-якого із: «Читання схеми, яку проєктували не ви», «Перетворення перевірки на детерміноване твердження»
21 · Optional
Необов'язково: повільні запити й заблоковані середовища
~0,8 год
за задумом автора — після будь-якого із: «Безпечна робота на спільному тестовому стенді», «Дати, час і останній день місяця»
22 · Optional
Необов'язково: дані клієнта, PII та ШІ-асистенти
~0,7 год
за задумом автора — після «Де SQL входить у цикл тестування»
23 · Optional
Необов'язково: наскрізна звірка міграції
~1 год
за задумом автора — після 2 із: «Сироти й посилання в нікуди», «Операції над множинами як звірка», «HAVING і пошук дублікатів»
24 · Optional
Необов'язково: чому схема виглядає саме так
~0,7 год
за задумом автора — після будь-якого із: «Читання схеми, яку проєктували не ви», «GROUP BY і перерахунок звіту»
фінал · у браузері, без асистента
Іспит
закрито · записатися на курс
| 1 | Де SQL входить у цикл тестування Назвати чотири моменти циклу тестування, у яких запит до бази даних — єдиний доступний доказ | ~0,8 год |
| 2 | Читання схеми, яку проєктували не ви Знаходити незнайому таблицю чи стовпець запитом до INFORMATION_SCHEMA, а не переглядом оглядача об'єктів | ~1 год |
| 3 | Безпечна робота на спільному тестовому стенді Отримувати кожну руйнівну інструкцію з SELECT з ідентичними FROM і WHERE, щоб інструкція ніколи не існувала без свого фільтра | ~1 год |
| 4 | SELECT, що відповідає рівно на одне питання Перетворювати перевірне питання на запит, результат якого можливий, лише якщо система поводилася правильно | ~0,9 год |
| 5 | NULL і логіка, що має три відповіді Пояснити, чому WHERE залишає лише рядки, що дають true, і що це робить із порівняннями з NULL | ~1,1 год |
| 6 | Типи, перетворення та параметри сортування Читати точність і масштаб із визначення стовпця та будувати твердження за значенням, яке стовпець може зберігати, а не за введеним значенням | ~1 год |
| 7 | Дати, час і останній день місяця Записувати фільтри за діапазоном дат як напіввідкриті інтервали з >= і < та пояснювати, чому кожна включна верхня межа має граничний випадок | ~1,1 год |
| 8 | INNER і LEFT: які рядки з'єднання відкидає Обирати між INNER і LEFT, виходячи з перевірного питання, за тестом: якщо правдоподібна відповідь — «жодного», потрібне ліве з'єднання | ~1 год |
| 9 | Сироти й посилання в нікуди Писати перевірки на сиріт із NOT EXISTS і з антиз'єднанням LEFT JOIN / IS NULL, перевіряючи ключ приєднаної таблиці, що не допускає NULL | ~1 год |
| 10 | Коли з'єднання розмножує рядки Пояснювати, чому з'єднання за неунікальним ключем розмножує рядки і чому агрегат приховує це розмноження | ~1,1 год |
| 11 | Операції над множинами як звірка Звіряти дві сукупності за допомогою EXCEPT в обох напрямках і пояснювати, чому один напрямок сам по собі може повідомити про успіх зламаної міграції | ~1 год |
| 12 | GROUP BY і перерахунок звіту Групувати за стовпцем, що робить рядок унікальним, а не за стовпцем, який показує звіт, і пояснювати, що злиття робить із результатом | ~1 год |
| 13 | HAVING і пошук дублікатів Знаходити дублікати, групуючи за бізнес-ключем і фільтруючи через HAVING COUNT(*) > 1 | ~1 год |
| 14 | Підзапити та CTE Розрізняти скалярні підзапити, підзапити-похідні таблиці та корельовані підзапити й визначати, де кожен із них дає збій | ~1 год |
| 15 | Віконні функції для тестувальника Пояснювати, чим віконна функція відрізняється від GROUP BY, і обирати між ними, виходячи з питання | ~1,1 год |
| 16 | Тестові дані: підготовка та ідемпотентне очищення Писати скрипти підготовки, що є ідемпотентними, ізольованими й самоідентифікованими, з очищенням на початку, а не в кінці | ~1,1 год |
| 17 | Перевірка того, що застосунок насправді записав Перелічувати радіус ураження запису — кожну таблицю, яку операція має зачепити, — до написання будь-якого перевірного запиту | ~1,1 год |
| 18 | Читання представлень, процедур і тригерів Отримувати визначення представлення, процедури, функції чи тригера й шукати в усіх тілах модулів посилання на таблицю або стовпець | ~1 год |
| 19 | Перетворення перевірки на детерміноване твердження Обирати між булевою, скалярною та множинною формою твердження, за замовчуванням використовуючи запит порушень | ~1,1 год |
| 20 | Необов'язково: зберіть ENGAGE локально й виконайте перевірки Розгорнути локальний екземпляр SQL Server і створити базу даних ENGAGE з наданого скрипта | ~1,5 год |
| 21 | Необов'язково: повільні запити й заблоковані середовища Читати чотири поширені оператори плану й тлумачити розрив між оцінною та фактичною кількістю рядків | ~0,8 год |
| 22 | Необов'язково: дані клієнта, PII та ШІ-асистенти Визначати, що вважається даними клієнта на проєкті професійних послуг, окрім персональних даних | ~0,7 год |
| 23 | Необов'язково: наскрізна звірка міграції Проводити багаторівневу звірку — сукупність, підсумки, різниця множин, дублікати, посилання, розподіл — і формулювати, чого не може виявити кожен рівень | ~1 год |
| 24 | Необов'язково: чому схема виглядає саме так Сформулювати єдине правило, що лежить в основі нормалізації, і перекласти його у версію тестувальника: дубльовані факти означають шлях у коді, який є тестовим випадком | ~0,7 год |