Якість та тестування програмного забезпечення

Спеціальність: Інженерія програмного забезпечення
Код дисципліни: 6.121.00.O.032
Кількість кредитів: 5.00
Кафедра: Програмне забезпечення
Лектор: Фоменко Андрій Вікторович
Семестр: 5 семестр
Форма навчання: денна
Мета вивчення дисципліни: Мета вивчення дисципліни - формування у майбутніх інженерів-програмістів сучасного рівня оцінки якості програмних засобів (далі – ПЗ), оволодіння основними принципами тестування ПЗ; набуття практичних навичок самостійного складання методик оцінки якості, випробування та тестування ПЗ для розв’язання різноманітних задач, засвоїти основи методології тестування та верифікації програмного забезпечення. Методологія включає всі етапи створення програмних засобів, починаючи від вивчення методів i алгоритмів, закінчуючи написанням, вiдладкою та тестуванням програмних модулів.
Завдання: Освоєння дисципліни дозволить майбутнім фахівцям забезпечити необхідний рівень вивчення і аналізу фахових дисциплін за рахунок ефективного використання сучасних технологій програмної інженерії. Для досягнення мети поставлені такі основні завдання: ? здатність формулювати та забезпечувати вимоги щодо якості програмного забезпечення у відповідності з вимогами, технічним завданням та стандартами; ? здатність забезпечувати технічну підтримку і навчання користувачів програмного забезпечення. Вивчення навчальної дисципліни передбачає формування у студентів необхідних компетентностей: загальні компетентності: ? 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).