Інспектування програм
Основна відмінність інспектування з інших видів оцінювання якості програм у тому, що його мета – виявлення дефектів, а чи не дослідження загальних проблем проекту. Дефектами є або помилки у програмі, або невідповідність програми організаційним чи проектним стандартам. На противагу інспектуванню інші методи аналізу програм основну увагу приділяють організаційним питанням, тимчасовому графіку робіт, витратам, порівняно з проміжними контрольними елементами або оцінкою відповідності програмним забезпеченням певним цілям організації-розробника.
У міру накопичення досвіду інспектування в організаціях можуть з'являтися інші пропозиції щодо розподілу ролей у групі. Під час обговорення результатів використання інспектування, впровадженого у процес розробки програм у компанії Hewlett-Packard, у статті [136] пропонується шість ролей (табл. 19.1). Одна особа може виконувати кілька ролей, тому кількість членів у групі інспектування може змінюватись.
Таблиця 19.1. Ролі в процесі інспектування
Як показано у статті [136], роль рецензента необов'язкова. І тут вихідний процес інспектування, у якому рецензування програми є важливою складовою, відповідно змінюється. Такий самий висновок міститься у роботі [129].
Для початку процесу інспектування програми потрібні такі умови.
1. Наявність точної специфікації коду, призначеного для інспектування. Без повної специфікації неможливо виявити дефекти в програмному компоненті, що перевіряється.
2. Члени інспекційної групи мають добре знати стандарти розробки.
3. У розпорядженні групи мала синтаксично коректна остання версія програми. Немає жодного сенсу розглядати код, який"майже завершено".
На рис. 19.4 показано загальний процес інспектування. Він адаптований до вимог організацій, які використовують програму інспектування.
Мал. 19.4. Процес інспектування
Сам процес інспектування має бути відносно коротким (не більше двох годин) та зосередженим виключно на виявленні дефектів, аномалій та невідповідностей стандартам. Інспекційна група не повинна пропонувати способи виправлення виявлених дефектів або рекомендувати зміни в інших програмних компонентах.
Процес інспектування має проводитися з урахуванням технологічної карти, яка описує можливі помилки програмування. Карта розробляється кваліфікованими фахівцями та регулярно оновлюється у міру накопичення досвіду у процесі інспектування. Для різних мов програмування складаються різні технологічні карти.
Технологічні карти, складені для різних мов програмування, різняться між собою, оскільки враховують можливості перевірки компіляторів мов. Наприклад, компілятор мови Ada перевіряє кількість параметрів функцій, а компілятор мови С – ні. Помилки, які можна виявити у процесі інспектування, перелічені у табл. 19.2. Підкреслимо, що кожна організація повинна розробляти власні технологічні карти для інспектування, які ґрунтувалися б на стандартах та досвіді цієї організації та оновлювалися в міру виявлення нових типів програмних дефектів [129].
Таблиця 19.2. Помилки, що виявляються під час інспектування