You are on page 1of 2

«Об’єктно-орієнтоване програмування», лабораторні роботи.

Кафедра ІПЗ, НАУ, 2018


МОДУЛЬ 3

Лабораторна робота 3.5

ДОСЛІДЖЕННЯ МОДУЛЬНОГО ТЕСТУВАННЯ

Мета роботи – навчитись створювати модульні тести для розроблювального програмного


забезпечення.

Завдання

1. Розробити функціонал згідно з варіантом. Виділити рівні представлення (PL), бізнес-логіки


(BLL) та доступу до даних (DAL). PL можуть бути Console App, WinForms, WPF, DAL – потоки вводу-
виводу чи серіалізація (один із способів).
2. Написати модульні тести до бізнес-логіки, використовуючи певний фреймворк (MSTest, Nunit,
Xunit, тощо), які перевіряють коректність роботи розробленого коду. Кожний тест повинен
відповідати принципу Triple A. За необхідності винести функціонал у окремі методи.
3. Дослідити ступінь покриття модульними тестами вихідного коду колекції, використовуючи
засіб Code Coverage.

Варіанти
№ Елементи пойменованого типу
1 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та
методів додавання рядка до тексту, видалення рядка з тексту, заміни вказаного рядка
заданим рядком, очищення тексту, повернення кількості рядків, повернення рядка з
символів-цифр, що трапляються в тексті
2 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та
методів додавання рядка до тексту, видалення рядка з тексту, видалення рядків, що містять
заданий підрядок, очищення тексту, отримання довжини найдовшого рядка, приведення
перших літер усіх слів тексту до верхнього регістру
3 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, очищення тексту, отримання довжини
найкоротшого рядка, повернення відсотка приголосних літер у тексті, заміни сукупності
пробілів, що стоять поряд, одним пробілом, та видалення пробілів спочатку рядка та
наприкінці.
4 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, очищення тексту, отримання
середньої довжини рядка, повернення відсотка голосних літер у тексті, видалення рядків,
що містять заданий підрядок.
5 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, очищення тексту, повернення
найбільшого рядка, повернення відсотка символів-цифр у тексті, повернення загальної
кількості символів
6 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, очищення тексту, повернення
найменшого рядка, повернення рядка, що складається з перших символів усіх рядків тексту,
повернення чаcтоти появи заданого символу (кількість символів/загальна кількість
символів)
7 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, очищення тексту, повернення чаcтоти
появи заданого символу (кількість символів/загальна кількість символів), заміни заданого
підрядка в тексті іншим заданим підрядком, пошук та видалення дублюючих рядків.
8 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, очищення тексту, приведення всіх
символів до верхнього регістру, пошуку заданого рядка в тексті, що повертає кількість
знайдених рядків, видалення з тексту всіх рядків заданої довжини
Страница 1 из 2
«Об’єктно-орієнтоване програмування», лабораторні роботи. Кафедра ІПЗ, НАУ, 2018
9 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, очищення тексту, повернення
загальної кількості символів, пошуку заданого рядка в тексті, що повертає кількість
знайдених рядків, заміни заданого одного символу в тексті заданим іншим.
10 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, очищення тексту, приведення перших
літер усіх слів тексту до верхнього регістру, отримання від заданого рядка ключа (рядка, що
складається з перших символів слів, що входять в рядок), отримання кількості рядків
заданої довжини.
11 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, заміни вказаного рядка заданим
рядком, очищення тексту, повернення кількості рядків, повернення рядка з символів-цифр,
що трапляються в тексті
12 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, очищення тексту, отримання довжини
найкоротшого рядка, повернення відсотка приголосних літер у тексті, заміни сукупності
пробілів, що стоять поряд, одним пробілом, та видалення пробілів спочатку рядка та
наприкінці.
13 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, очищення тексту, повернення
найбільшого рядка, повернення відсотка символів-цифр у тексті, повернення загальної
кількості символів
14 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, очищення тексту, повернення чаcтоти
появи заданого символу (кількість символів/загальна кількість символів), заміни заданого
підрядка в тексті іншим заданим підрядком, пошук та видалення дублюючих рядків.
15 Клас-контейнер, який є абстракцією тексту та складається з об’єктів класу-рядка та методів
додавання рядка до тексту, видалення рядка з тексту, очищення тексту, повернення
загальної кількості символів, пошуку заданого рядка в тексті, що повертає кількість
знайдених рядків, заміни заданого одного символу в тексті заданим іншим.

Контрольні запитання

1. Що таке модульне тестування?


2. Як використовуються модульні тести?
3. Назвіть вимоги до юніт-тестів.
4. Наведіть переваги використання юніт-тестів у розробці ПЗ.
5. Що таке рефакторінг?
6. Які метрики та засоби використовуються для оцінювання ефективності застосування юніт-
тестів у проекті?
7. Що таке TDD? Назвіть переваги застосування TDD.
8. Що таке принцип «Triple A»? Поясніть сутність його використання.
9. Як використовуються в юніт-тестах класи Assert?
10. Що таке Mock та Stub? З якою ціллю вони використовуються в юніт-тестах?1

Список літератури

1.Рой Ошероув Искусство автономного тестирования с примерами на C# (Roy Osherove The Art
of Unit Testing With Examples in .NET).
2.https://msdn.microsoft.com/ru-ru/library/ms182532.aspx
3.https://habrahabr.ru/post/176137/

1
Питання підвищеної складності (для студентів, бажаючих оцінку «відмінно»)
Страница 2 из 2

You might also like