- •4 Верифікація, валідація та тестування. Стандарти тестування пп
- •Тема 10 Верифікація і атестація програм
- •4.1 Методи верифікації об'єктно-орієнтованих програм
- •4.2 Тестування та налагодження програм
- •4.3 Організаційні аспекти процесу тестування
- •4.4 Класифікація помилок. Міжнародний стандарт ansi/ieee - 729-83 розділяє усі помилки в розробці програм:
- •4.5 Джерело помилок.
- •4.6 Організація підготовки тестів
- •7 Команда тестувальників
- •8 Організація процесу тестування
- •9 Організація тестування по регулюється наступними стандартами:
- •Ieee 829-1998 Standard for Software Test Documentation.
- •Ieee 1008-1987 (r1993, r2002) Standard for Software Unit Testing.
4.6 Організація підготовки тестів
Для перевірки правильності програм спеціально розробляються тести і тестові дані. Під тестом розуміється деяка програма, призначена для перевірки працездатності іншої програми і виявлення в них помилкових ситуацій.
Тестову перевірку можна провести також шляхом введення в програму налагоджувальних операторів, які сигналізуватимуть про хід її виконання і отримання результатів.
Тестові дані служать для перевірки роботи системи і готуються різним способом: генератором тестових даних, проектною групою на основі внемашинних документів або наявних файлів, користувачем по специфікаціях вимог і так далі. Дуже часто розробляються спеціальні форми вхідних документів, в яких відображується процес виконання програми за допомогою тестових даних.
Створюються тести, які перевіряють:
- повноту функцій;
- узгодженість інтерфейсів;
- коректність виконання функцій і правильність функціонування системи в заданих умовах;
- надійність виконання системи;
- захист від збоїв апаратури і не виявлених помилок та ін.
Тестові дані готуються як для перевірки окремих програмних елементів, так і для груп програм або комплексів на різних стадіях процесу розробки. На рис. 4.5 приведена класифікація тестів перевірки за об'єктами тестування на основних стадіях розробки.
Багато типів тестів готуються замовником для перевірки роботи програмної системи. Структура і зміст тестів залежать від виду тестованого елементу, яким може бути: модуль, компонента, група компонент, підсистема або система. Деякі тести залежать від мети і необхідності знати: чи працює система відповідно до її проекту, чи задоволені вимоги і чи бере участь замовник в перевірці роботи тестів і тому подібне
Тестування специфікацій
Тестування програм
Тестування комплексу
Тестування при испытаниях
Тести перевірки:
структури програми;
обчислення і перетворення даних;
повноти виконуваних функцій
Тести перевірки:
повноти і согласованості функцій;
согласованності інтерфейсів
Тести перевірки:
структури комплексу;
інтерфейса компонент;
ограничений по памяти;
длительности исполнения;
полноты решения задач комплекса
Тести перевірки:
соответствия требованиям;
удобства установки рабочей версии;
работы комплекса на оборудовании;
удобства интерфейса пользователя;
удобства модификации и сопровождения
Рис.4.5 Класифікація тестів перевірки
Залежно від завдань, які ставляться перед тестуванням програм, ця команда складає тести перевірки проміжних результатів проектування елементів системи на стадіях ЖЦ, а також створює тести випробувань остаточного коду системи.
Тести інтегрованої системи. Тести для перевірки окремих елементів системи і тести інтегрованої системи мають загальні і відмітні риси. Так, на рис. 4.6 як приклад приведені кроки стадії інтеграції системи з готових елементів, що відтестували, задані зв'язки між різними кроками тестування інтегрованої програмної системи.
Для кожного кроку команда тестувальників готує тести і набори даних, використовувані для перевірки різних станів інтегрованої системи і відповідностей з прийнятими обмеженнями на кожному кроці і вимогами до елементу тестування.
Перший крок цього процесу - інтеграція елементів, яка грунтується на інтеграційних тестах, що створюються по специфікаціях проекту.
Кожна компонента цієї схеми тестується окремо від інших компонент за допомогою тестів, що включають набори даних і сценарії, складені відповідно до їх типів і функцій, специфікованих в проекті системи.
Тестування проводиться в контрольному середовищі на зумовленій безлічі тестових даних і операціях, вироблюваними над ними.
Тести забезпечують перевірку внутрішньої структури, логіки і граничних умов виконання кожної компоненти.
Згідно з приведеною схемою, спочатку тестуються компоненти А, В, D незалежно один від одного і кожна з окремим тестом. Після їх перевірки виконується наступний крок - перевірка інтерфейсів для наступної їх інтеграції, суть якої полягає в аналізі виконання операторів виклику А → E, B → C, D → G, на нижніх рівнях графа : компоненти - Е, З, G. При цьому передбачається, що вказані компоненти, що викликаються, так само мають бути відлагоджені окремо. Аналогічно перевіряються усі звернення до компоненти F, що є зв'язуючою ланкою з вищерозміщеними елементами.
F
Тестирование
интеграции элементов
A, B, C, D, E, G
Мал. 7.4. Інтеграційне тестування компонент
При цьому можуть виникати помилки, у разі неправильного завдання параметрів в операторах виклику або при обчисленнях процедур або функцій. Виникаючі помилки в зв'язках усуваються, а потім повторно перевіряється зв'язок з компонентою F у вигляді трійок: компонента - інтерфейс - компонента.
Наступним кроком тестування системи є перевірка функціонування системи за допомогою тестів перевірки функцій і вимог до них. Після перевірки системи на функціональних тестах йде перевірка системи на старанних і випробувальних тестах, підготовлених згідно вимог до ПО, апаратурі і виконуваним функціям. Випробувальному тесту передує верифікація і валидация ПО.
Тест випробувань системи відповідно до вимог замовника перевіряється в реальному середовищі, в якому система надалі використовуватиметься.
