Тема роботи: Колективне інспектування програмного забезпечення
Мета роботи: Ознайомитися з методами інспектування коду
Теоретичні відомості
Список питань для виявлення помилок при інспекції
Важливою частиною процесу інспектування є перевірка програми на наявність загальних помилок за допомогою списку питань для виявлення помилок. Концентрація уваги на розгляді стилю, а не помилок (питання типу «Чи є коментарі точними та інформативними?» і «Чи знаходяться символи THEN / ELSE і DO / END по одній вертикалі один під одним?») представляється невдалою, так само як і наявність невизначеності в списку, що зменшує його корисність (питання типу «Чи відповідає текст програми вимогам, висунутим при проектуванні?»).
Значною мірою він є незалежним від мови; це означає, що більшість помилок зустрічається в будь-якій мові програмування. Будь-який фахівець може доповнити цей список питаннями, що дозволяють виявити помилки, специфічні для тієї мови програмування, яку він використовує, і виявлені ним в результаті виконання процесу інспектування.
|
|
Помилки звернення до даних
Помилки опису даних. Чи правильно ініціалізовані об'єкти, масиви і рядки? Якщо початкові значення привласнюються змінним в операторах опису, то чи правильно инициализируются ці значення? Чи правильно створюються об'єкти, чи використовується відповідний конструктор?
Помилки обчислень. Чи проводяться обчислення з використанням даних різного типу?
Помилки при порівняннях. Чи порівнюються величини несумісних типів? Наприклад, число з рядком? Чи порівнюються величини різних типів? Наприклад, змінна типу int зі змінною типу long?
Помилки в передачах управління. Чи буде завершений кожен цикл? Чи буде кожен цикл, в кінці кінців, завершений? Придумайте неформальне доказ або аргументи, які підтверджують їх завершення. Хоча іноді нескінченні цикли не є помилкою, але краще їх уникати.
Помилки інтерфейсу. Чи відповідає число вхідних параметрів числу аргументів? Чи правильний порядок їх проходження? Перший тип помилок може виявлятися компілятором (але не для кожної мови), а ось правильність проходження (особливо, якщо параметри однакового типу) є важливим моментом.
Помилки введення-виведення. Чи не відбувається запис у файли read-only?