
- •Місце тестування у життєвому циклі програмних продуктів
- •Жц розробки пз із завданнями і діями для процесу тестування
- •Визначте процеси досягнення надійності на жц
- •Задачі процесу тестування
- •Моделі якості пз
- •Визначте характеристики якості пс і їхнє призначення
- •Основні цілі й завдання системи керування якістю.
- •Які методи визначають показники якості?
- •Визначте метрики програмного продукту і їхні складові.
- •Методи контролю якості
- •Методи забезпечення якості
- •Поняття тестування
- •Основні задачі процесу тестування
- •Рівні тестування
- •Види тестування
- •Поняття тестів та тестового покриття
- •Перевірка на моделях
- •Помилки в програмах
- •Завдання і цілі процесу верифікації
- •Забезпечення якості
- •Метрики по забезпеченню якості
- •Метрики якості
- •Метрики програмного продукту
- •Метрики використання
- •Поняття якості пз
- •Рівні подання моделі якості пз
- •Що таке сертифікація програмного продукту
- •Процес верифікації
- •Процес валідації
- •Підхід до валідації сценарію вимог
- •Верифікація об’єктних моделей
- •Процес тестування за життєвим циклом
- •Поняття тесту
- •Тестові артефакти
- •Тест план
- •Тестовий випадок (Test Case)
- •Тест дизайн
- •Важливість і пріоритет дефекту
- •Градація серйозності дефектів
- •Вимоги до кількості відкритих багів
- •Помилки при написанні баг репортів
- •Техніка, що базується на інтуїції і досвіді інженера (Based on the software engineer’s intuition and experience)
- •Техніка, що базується на специфікації (Specification-based techniques)
- •Техніка, орієнтована на код (Code-based techniques)
- •Тестування, орієнтоване на дефекти (Fault-based techniques)
- •Техніки, що базуються на умовах використання
- •Техніки, що базуються на природі додатку
- •Функціональні види тестування
- •Нефункціональні види тестування
Помилки в програмах
Помилками в ПЗ, взагалі кажучи, є всі можливі невідповідності між демонстрованими характеристиками його якості та сформульованими або тими вимогами та очікуваннями користувачів, що мають на увазі,
В англомовній літературі використовується кілька термінів, що часто однаково перекладаються як "помилка" на українську мову:
defect - найбільш загальне порушення якихось вимог або очікувань, що не обов'язково проявляється зовні (до дефектів належать порушення стандартів кодування, недостатня гнучкість системи та ін.).
failure - спостережуване порушення вимог, що проявляється при якімсь реальному сценарії роботи ПЗ. Це можна назвати проявом помилки
fault - помилка в коді програми, що викликає порушення вимог при роботі (failures), те місце, яке треба виправити. Хоча це поняття використовується досить часто, воно, загалом кажучи, не цілком чітке, оскільки для усунення порушення можна виправити програму в кількох місцях. Що саме треба виправляти, залежить від додаткових умов, виконання яких ми хочемо при цьому забезпечити, хоча в деяких ситуаціях накладення додаткових обмежень не усуває неоднозначність
error - використовується у двох смислах
Перший - це помилка в ментальній моделі програміста, помилка в його міркуваннях про програму, що змушує його робити помилки в коді (faults). Це, власне, помилка, що зробила людина у своєму розумінні властивостей програми
Другий зміст - це некоректні значення даних (вихідних або внутрішніх), які виникають при помилках у роботі програми
Ці поняття деяким чином пов'язані з основними джерелами помилок. Оскільки при розробці програм необхідно спочатку зрозуміти задачу, потім придумати її рішення й закодувати його в вигляді програми, то, відповідно, основних джерел помилок три:
Неправильне розуміння задач.
Дуже часто люди не розуміють, що їм намагаються сказати інші. Так само й розробники ПЗ не завжди розуміють, що саме потрібно зробити. Іншим джерелом нерозуміння слугує відсутність його в самих користувачів і замовників - досить часто вони можуть просити зробити трохи не те, що їм дійсно потрібно.
Для запобігання неправильного розуміння задач програмної системи слугує аналіз предметної області
Неправильне розв'язання задач.
Найчастіше, навіть правильно зрозумівши, що саме потрібно зробити, розробники обирають неправильний підхід до того, як це робити. Обирані рішення можуть забезпечувати лише деякі з необхідних властивостей, вони можуть добре підходити для даної задачі в теорії, але погано працювати на практиці, у конкретних обставинах, у яких повинне буде функціонувати ПЗ.
Допомогти у виборі правильного рішення може зіставлення альтернативних рішень і ретельний аналіз їх на предмет відповідності всім вимогам, підтримка постійного зв'язку з користувачами та замовниками, надання їм необхідної інформації про обрані рішення, демонстрація прототипів, аналіз придатності вже обраних рішень для роботи в тім контексті, у якому вони будуть використовуватися
Неправильне перенесення рішень у код.
Маючи правильне рішення правильно зрозумілої задачі, люди, проте, здатні зробити досить багато помилок при втіленні цих рішень. Коректному представленню рішень у коді можуть перешкодити як звичайні помилки, так і безпам'ятність програміста або його небажання відмовитися від звичних прийомів, які не дають можливості акуратно записати ухвалене рішення