Якість та тестування програмного забезпечення
Спеціальність: Інженерія програмного забезпечення
Код дисципліни: 6.121.00.O.032
Кількість кредитів: 5.00
Кафедра: Програмне забезпечення
Лектор: Фоменко Андрій Вікторович
Семестр: 5 семестр
Форма навчання: денна
Завдання: Освоєння дисципліни дозволить майбутнім фахівцям забезпечити необхідний рівень вивчення і аналізу фахових дисциплін за рахунок ефективного використання сучасних технологій програмної інженерії. Для досягнення мети поставлені такі основні завдання: ? здатність формулювати та забезпечувати вимоги щодо якості програмного забезпечення у відповідності з вимогами, технічним завданням та стандартами; ? здатність забезпечувати технічну підтримку і навчання користувачів програмного забезпечення.
Вивчення навчальної дисципліни передбачає формування у студентів необхідних компетентностей:
загальні компетентності:
? 01. Здатність до абстрактного мислення, аналізу та синтезу.
? 02. Здатність застосовувати знання у практичних ситуаціях.
? 03. Здатність спілкуватися державною мовою як усно, так і письмово.
? 04. Здатність спілкуватися іноземною мовою як усно, так і письмово.
? 05. Здатність вчитися і оволодівати сучасними знаннями.
? 06. Здатність до пошуку, оброблення та аналізу інформації з різних джерел.
? 07. Здатність працювати в команді.
фахові компетентності:
? ІНТ. Здатність розв’язувати складні спеціалізовані завдання або практичні проблеми інженерії програмного забезпечення, що характеризуються комплексністю та невизначеністю умов, із застосуванням теорій та методів інформаційних технологій.
? СК04. Здатність формулювати та забезпечувати вимоги щодо якості програмного забезпечення у відповідності з вимогами замовника, технічним завданням та стандартами.
? СК05. Здатність дотримуватися специфікацій, стандартів, правил і рекомендацій в професійній галузі при реалізації процесів життєвого циклу.
? СК11. Здатність реалізовувати фази та ітерації життєвого циклу програмних систем та інформаційних технологій на основі відповідних моделей і підходів розробки програмного забезпечення.
? СК14. Здатність до алгоритмічного та логічного мислення.
Результати навчання: У результаті вивчення навчальної дисципліни студент повинен бути здатним продемонструвати такі результати навчання:
Знати:
? Критерії оцінки системи системним вимогам
? Принципи, рівні, види тестування.
? Метрики та ризики тестування.
? Тест-план, матрицю покриття вимог тестовими сценаріями.
? Функціональне тестування.
? Кваліфікаційне тестування.
? Тестування надійності, стійкості, конфігураційне тестування
? Техніки тестування
? Вимірювання результатів тестування
? Види тестування (приймальне, установче функціональне, альфа, бета-тестування, тестування продуктивності, тестування навантаження тощо).
? Рівні тестування (модульне, інтеграційне, системне).
? Артефакти тестування
? Системи документування та супроводу багу
Вміти:
? Розробляти критерії для оцінки відповідності системним вимогам.
? Застосовувати критерії оцінки системи в процесі перевірки відповідності системним вимогам.
? Тестувати інтегровану систему за певними критеріями.
? Здійснювати тестування для різних рівнів.
? Документувати результати тестування.
? Оцінювати систему за критеріями тестового покриття системних вимог, відповідності очікуваним результатам, здійсненності функціонування і супроводу.
? Працювати з документацією.
? Використовувати різні техніки тестування
? Розробляти сценарії тестування ПЗ
? Розробляти автотести та постійне підвищення скілів, аби ці тести вдосконалювати.
? Проводити тестування ПЗ на виявлення багів
? Визначати та виконувати контроль якості виконаної роботи та відповідальність за неї.
? Розробляти та документувати набір тестів, тестових прикладів і процедур тестування для кожної кваліфікаційної вимоги системи.
? Використовувати метрики для управління тестуванням та оцінки якості продукту.
? Застосовувати прийоми функціонального, конфігураційного тестувань.
? Оцінювати інтегровану систему за критеріями тестового покриття системних вимог, застосування методів тестування стандартів, відповідності очікуваним результатам, здійсненності кваліфікаційного тестування системи, функціонування і супроводу.
? Розробляти тестові сценарії, тест-плани.
? Використовувати різні типи тестування.
? Застосовувати критерії оцінки системи в процесі перевірки відповідності системним вимогам.
? Тестувати інтегровану систему за певними критеріями.
? Здійснювати тестування для різних рівнів.
? Документувати результати тестування.
? Оцінювати систему за критеріями тестового покриття системних вимог, відповідності очікуваним результатам, здійсненності функціонування і супроводу.
У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі програмні результати навчання:
Результати навчання Методи навчання і викладання Методи оцінювання рівня досягнення результатів навчання
ПР03. Знати основні процеси, фази та ітерації життєвого циклу програмного забезпечення. Лекційні та практичні заняття: інформаційно-рецептивний метод; репродуктивний метод; евристичний метод; метод проблемного викладу. Самостійна робота: репродуктивний метод (Поточний та екзаменаційний контроль. Методи оцінювання знань: вибіркове усне опитування; тести, оцінка активності, внесених пропозицій, оригінальних рішень, уточнень і визначень тощо. Захист проектного завдання. Екзамен – письмове опитування, тестовий контроль)
ПР04. Знати і застосовувати професійні стандарти і інші нормативно-правові документи в галузі інженерії програмного забезпечення. Лекційні та практичні заняття: інформаційно-рецептивний метод; репродуктивний метод; евристичний метод; метод проблемного викладу. Самостійна робота: репродуктивний метод (Поточний та екзаменаційний контроль. Методи оцінювання знань: вибіркове усне опитування; виступи на семінарах, тести, колоквіум, оцінка активності, внесених пропозицій, оригінальних рішень, уточнень і визначень тощо. Екзамен – письмове опитування, тестовий контроль)
ПР07. Знати і застосовувати на практиці 12 фундаментальні концепції, парадигми і основні принципи функціонування мовних, інструментальних і обчислювальних засобів інженерії програмного забезпечення. Лекційні та практичні заняття: інформаційно-рецептивний метод; репродуктивний метод; евристичний метод; метод проблемного викладу. Самостійна робота: репродуктивний метод (Поточний та екзаменаційний контроль. Методи оцінювання знань: вибіркове усне опитування. Екзамен – письмове опитування, тестовий контроль)
ПР14. Застосовувати на практиці інструментальні програмні засоби доменного аналізу, проектування, тестування, візуалізації, вимірювань та документування
програмного забезпечення. Лекційні та практичні заняття: інформаційно-рецептивний метод; репродуктивний метод; евристичний метод; метод проблемного викладу. Самостійна робота: репродуктивний метод (Поточний та екзаменаційний контроль. Методи оцінювання знань: внесених пропозицій, оригінальних рішень, уточнень і визначень тощо. Екзамен – письмове опитування, тестовий контроль)
ПР19. Знати та вміти застосовувати методи верифікації та валідації програмного забезпечення. Лекційні та практичні заняття: інформаційно-рецептивний метод; репродуктивний метод; евристичний метод; метод проблемного викладу. Самостійна робота: репродуктивний метод (Поточний та екзаменаційний контроль. Методи оцінювання знань: внесених пропозицій, оригінальних рішень, уточнень і визначень тощо. Екзамен – письмове опитування, тестовий контроль)
ПР20. Знати підходи щодо оцінки та забезпечення якості програмного забезпечення. Лекційні та практичні заняття: інформаційно-рецептивний метод; репродуктивний метод; евристичний метод; метод проблемного викладу. Самостійна робота: репродуктивний метод (Поточний та екзаменаційний контроль. Методи оцінювання знань: внесених пропозицій, оригінальних рішень, уточнень і визначень тощо. Екзамен – письмове опитування, тестовий контроль)
ПР23. Вміти документувати та презентувати результати розробки програмного забезпечення. Лекційні та практичні заняття: інформаційно-рецептивний метод; репродуктивний метод; евристичний метод; метод проблемного викладу. Самостійна робота: репродуктивний метод (Поточний та екзаменаційний контроль. Методи оцінювання знань: вибіркове усне опитування. Екзамен – письмове опитування, тестовий контроль)
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Попередні навчальні дисципліни
Безпека програм та даних
Супутні і наступні навчальні дисципліни
Людино-машинна взаємодія
Короткий зміст навчальної програми: Тестування програмного забезпечення — це процес, що використовується для виміру якості розроблюваного програмного забезпечення. Зазвичай, поняття якості обмежується такими поняттями, як коректність, повнота, безпечність, але може містити більше технічних вимог, які описані в стандарті ISO 9126. Тестування - це процес технічного дослідження, який виконується на вимогу замовників, і призначений для вияву інформації про якість продукту відносно контексту, в якому він має використовуватись. До цього процесу входить виконання програми з метою знайдення помилок.
Якість не є абсолютною, це суб'єктивне поняття. Тому тестування не може повністю забезпечити коректність програмного забезпечення. Воно тільки порівнює стан і поведінку продукту зі специфікацією. При цьому треба розрізняти тестування програмного забезпечення і забезпечення якості програмного забезпечення, до якого належать усі складові ділового процесу, а не тільки тестування.
Існує багато підходів до тестування програмного забезпечення, але ефективне тестування складних продуктів - це по суті дослідницький процес, а не тільки створення і виконання рутинної процедури.
Метою дисципліни є освоєння сучасних методик та підходів до тестування програмних систем та аналізу їх якості. Набуття практичних вмінь та навичок з проведення мануального та автоматичного тестування різних видів та типів, створення тестової документації різного типу і рівня
Опис: Лекційні заняття
1 Поняття якості програмного забезпечення. Тестування – спосіб забезпечення якості ПЗ. Стандарти, критерії якості.
2 Поняття якості програмного забезпечення. Тестування – спосіб забезпечення якості ПЗ.
3 Тестування. Загальні поняття. Основні визначення. Рівні. Моделі. Життєвий цикл.
4 Процес тестування. Підходи до тестування. Види тестування
5 Критерії вибору тесту
6 Оцінка відтестованості проекту: метрики і методика інтегральної оцінки.
7 Модульне й інтеграційне тестування. Методи проектування тестових шляхів. Монолітна та інкрементна збірка модулів.
8 Інтеграційне тестування і його особливості для об’єктно-орієнтованого програмування.
9 Системне та регресивне тестування. Види системного тестування.
10 Автоматизація тестування
11 Інтеграційне тестування для об’єктно-орієнтованого програмування.
12 Особливості індустріального тестування. Документування та метрики тестування. Чек-листи, тест-кейси, набори тест-кейсів
13 Регресивне тестування
14 Ручне тестування коду програми.
15 Тестування інтерфейсу користувача. Формальні інспекції
16 Екзамен
Лабораторні заняття:
1 Вступне заняття. Інструктаж з техніки безпеки. Види тестування. Плани тестування 4
2 Розробка вимог. UseCase виявлення вимог 2
3 Тестування вимог 4
4 Розробка та оформлення тестового плану 4
5 Тестування програмного забезпечення:
розробка тестової документації. Чек-лист 4
6 Пошук і документування дефектів в Jira 4
7 Документування результатів тестування 4
8 Модульне тестування 2
9 Звіт з тестування 2
Самостійна робота
1 Підготовка до лабораторних занять 20
2 Підготовка до здачі проектного завдання 20
3 Вивчення лекційного матеріалу 20
4 Розробка тестового плану, артефактів тестування власного модулю 30
Теми індивідуальних завдань:
? Надсистема (керування модулями через веб інтерфейс)
? Модуль облику осіб за ознаками (ПЗ-41),
? Інформаційний модуль (ПЗ-42)
? Комунікаційний модуль (ПЗ-43)
? Кабінет користувача (інтеграційний модуль) (ПЗ-44)
? Модуль формування пакету допомоги (ПЗ-45)
? Модуль аналізу і статистики (ПЗ-46)
Тестуються власні модулі проекту "Віртуальна лабораторія програмної інженерії"
Розглядаються наступні модулі:
? Надсистема (керування модулями через веб інтерфейс)
? Модуль аналізу вимог (ПЗ-41),
? Модуль проектування (ПЗ-42)
? Модуль моделювання (ПЗ-43)
? Модуль конструювання та розробки (ПЗ-44)
? Модуль тестування (ПЗ-45)
? Надсистема кабінет користувача
Індивідуальні завдання для заочної форми навчання полягають тестуванні розробленої частини обраної інформаційної системи зі списку з використанням різних технологій і методик тестування.
Проекти інформаційних систем для заочної форми навчання:
1) бібліотечний каталог;
2) відділ кадрів університету;
3) облік студентів університету;
4) деканат (співробітники та студенти факультету);
5) розклад занять викладачів кафедри;
6) розклад занять студентів університету;
7) облік результатів екзаменаційних сесій студентів за весь період навчання;
8) гуртожиток;
9) школа;
10) діловодство підприємства;
11) діловодство профкому організації;
12) облік матеріальних цінностей (склад);
13) магазини міста;
14) громадський транспорт міста;
15) клінічні лікарні міста;
16) довідкова служба аптек;
17) довідкова побутових послуг;
18) бронювання місця на залізничному транспорті;
19) домоуправління;
20) бухгалтерія підприємства;
21) облік платників податків;
22) оплата послуг телефонної мережі;
23) пошта;
24) банк.
25) за вибором студента (обов’язкове узгодження з викладачем)
Методи та критерії оцінювання: Лабораторні роботи: мінімальна оцінка 0 балів (робота є, виконана індивідуально, але не захищена), максимальна – 1,5 бали (для лабораторних робіт №2, №8, №9) і 3 бали (для лабораторних робіт №1, №3, №4, №5, №6, №7) (робота є виконана повністю, всі моделі правильні, були всі необхідні пояснення). Оцінка в межах від 0 до 1,5 чи від 0 до 3 відповідно виставляється в залежності від кількості помилок в моделях і при відповідях на питання.
Індивідуальні завдання (групове виконання) за планом
? Наявність плану тестування.
? Наявність тест-кейсів
? Опис ручного тестування, різни типи тестування ( не менш 8), не менш 3 тест-кейсів для кожного типу (загальна кількість тест-кейсів не менш 25)
? Документальний опис з підтвердженням тестування (використання баг-трекерів),
? Автоматичне тестування модуля
? Регресійне тестування з описом виправлених дефектів
? Тест- репорт
Бали за проект приводяться до 45 балів за формулою:
Бали за індивідуальну роботу= Отримана кількість балів / 120 * 45
Критерії оцінювання результатів навчання: Порядок та критерії виставлення балів та оцінок:
Допуск до іспиту надається за результатами поточного контролю:
Поточний контроль включає підготовку, здачу 9 лабораторних робіт (3+1,5+3+3+3+3+3+1,5+1,5=22,5 бали), захист проекту(22,5 бали) та два контрольних заходи (тест – 10 балів і письмова контрольна робота 3 питання*15 балів = 45 балів, разом 55 балів).
Лабораторні роботи для студентів ДФН виконуються в команді 3-5 студентів для студентів ЗФН - індивідуально.
Захист лабораторних робіт- повинні бути виконані та захищені всі лабораторні роботи курсу
Захист командного проекту, в відповідності до індивідуального завдання (для денної форми- модуль ВЛПІ, для заочної форми- завдання згідно списку тем) – захист передбачає наявність робочого модуля системи та проектну документацію до системи і відповідного модулю
Максимальні оцінки за лабораторні роботи виставляються при вчасному та успішному виконанні та захисту робіт:
? написання тестів їх роботи для різних вхідних даних (технологія на вибір студента),
? відповіді на питання про процес тестування згідно з темою роботи,
? модифікація завдання (на вимогу викладача для підтвердження самостійності виконання роботи),
? відповіді на питання за темою роботи.
Презентація цілісної програми (інтеграція компонент кожної лабораторної роботи) оцінюється згідно виконання всіх вимог, сформованих і розміщених у ВНС.
Екзаменаційний контроль включає два контрольних заходи і усну компоненту:
- тест (10 балів),
- письмова контрольна робота (2 питання*10 балів+1 питання*15 балів = 35 балів),
- усна компонента - додаткове питання по білету (10 балів).
Разом екзаменаційний контроль 55 балів.
Лабораторні роботи для студентів ДФН виконуються в команді 3-5 студентів для студентів ЗФН - індивідуально.
1. Захист лабораторних робіт- повинні бути виконані та захищені всі лабораторні роботи курсу
2. Захист командного проекту, в відповідності до індивідуального завдання (для денної форми- модуль інформаційної системи ІКХ або ВЛПІ (визначається викладачем, для заочної форми- завдання згідно списку тем) – захист передбачає наявність робочого модуля системи та проектну документацію до системи і відповідного модулю
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: Базова
1. Фоменко А.В., Джумеля Е.А. НМК дисципліни «Якість програмного забезпечення та тестування». [Електронний ресурс]. Режим доступу: https://vns.lpnu.ua/course/view.php?id=11307
2. Білас О. Якість програмного забезпечення та тестування: навч.посібник.- Львів: Видавництво Львівської політехніки, 2011.- 216с.
3. Конспект лекцій: Верифікація і тестування програмного забезпечення (наявний в бібліотеці кафедри)
4. Авраменко А.С., Авраменко В.С., Косенюк Г.В. Тестування програмного забезпечення. Навчальний посібник. - Черкаси: ЧНУ імені Богдана Хмельницького, 2017. - 284 с. http://eprints.cdu.edu.ua/1482/1/testyvan.pdf
5. Методичні вказівки щодо виконання лабораторних робіт з навчальної дисципліни «Основи аналізу якості програмного забезпечення» для студентів денної форми навчання зі спеціальності 123 – «Комп’ютерна інженерія». Укладач к. т. н., доц. О. Г. Славко. - Видавничий відділ Кременчуцького національного університету імені Михайла Остроградського. -2018. c.25. https://www.dstu.dp.ua/Portal/Data/3/19/3-19-lr12.pdf.
6. Дяченко М.П. Методичні матеріали щодо забезпечення самостійної роботи студентів з дисципліни “Методи та засоби тестування програмного забезпечення” (для освітньо-кваліфікаційного рівня «магістр»). — К.: МАУП, 2018— 35 с.
7. Standard for Software Verification and Validation Plans, ANSI/IEEE standard 1012-1986. (http://ieeexplore.ieee.org/iel5/2487/1028/00026585.pdf)
8. IEEE Standard Glossary of Software Engineering Technology, IEEE Std 610.12 –1990. (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=159342)
…………………………………………………………………………………………………
Допоміжна
1. . Java SE Overview - at a Glance. [Електронний ресурс]. Режим доступу: http://www.oracle.com/technetwork/java/javase/overview/index.html
2. . Eclipse - The Eclipse Foundation open source community website. [Електронний ресурс]. Режим доступу: http://www.eclipse.org/
3. Hibernate Tools - JBoss Community
http://www.hibernate.org/subprojects/tools.html
4. The Elements of UML(TM) 2.0 Style. Scott W. Ambler. Cambridge University Press, 2005
9. Інформаційні ресурси
1. SoftServe IT Academy: Materials, Tasks and Tests. https://softserve.academy
2. QALIGHT Центр підготовки IT фахівців https://qalight.ua/baza-znaniy/yakist-programnogo-zabezpechennya/
3. Тестування програмного забезпечення та контроль якості.
http://www.znannya.org/?view=software-testing
4. InfoQ: ASP.NET MVC Example with Northwind and Entity Framework Published
http://www.infoq.com/news/2008/02/mvc-framework-example
5. ADO.NET Entity Framework
http://msdn.microsoft.com/en-us/data/aa937723
6. Bagzilla. [Електронний ресурс]. Режим доступу: http://www.bugzilla.org
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою:
вул. Карпінського, 2/4, І-й н.к., кімн. 112
E-mail: nolimits@lpnu.ua
Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).