Статичний аналіз за допомогою інструментів
Метою статичного аналізу є виявлення дефектів у вихідному коді програмного забезпечення та моделях програмного забезпечення.
Потік керування — це послідовність подій (шляхів) у виконанні через компонент або систему.
Потік даних — це абстрактне представлення послідовності та можливих змін стану об’єктів даних, де стан об’єкта є будь-яким із наступних: створення, використання або видалення.
Метрики коду
Під час виконання статичного аналізу коду обчислюється інформація про структурні атрибути коду, такі як:
- Частота коментарів
- Глибина вкладення
- Цикломатичне число
- Кількість рядків коду
Показники складності ідентифікують зони з високим ризиком і складність. Досвідчені програмісти знають, що 20% коду викличуть 80% проблем, а аналіз складності допомагає знайти ці важливі 20%.
Цінність статичного аналізу
- Раннє виявлення дефектів до виконання тесту
- Раннє попередження про підозрілі аспекти коду або дизайну шляхом обчислення показників.
- Ідентифікація дефектів, які важко знайти під час динамічного тестування
- Виявлення залежностей і невідповідностей у моделях програмного забезпечення, таких як посилання
- Покращена підтримка коду та дизайну
- Попередження дефектів, якщо робиться аналіз і висновки.
Типові дефекти
Типові дефекти, виявлені інструментами статичного аналізу:
- Посилання на змінну з невизначеним значенням
- Непослідовні інтерфейси між модулями та компонентами
- Змінні, які не використовуються або оголошені неправильно
- Недосяжний (мертвий) код
- Відсутня та помилкова логіка (потенційно нескінченні цикли)
- Надто складні конструкції
- Порушення стандартів програмування
- Вразливі місця безпеки
- Порушення синтаксису коду та моделей програмного забезпечення
Статичні Інструменти
Інструменти статичного аналізу зазвичай використовуються розробниками (перевірка на попередньо визначені правила або стандарти програмування) до та під час тестування компонентів та інтеграції або під час реєстрації коду в інструментах керування конфігурацією, а також розробниками під час моделювання програмного забезпечення.
Інструменти статичного аналізу можуть створювати велику кількість попереджувальних повідомлень, якими потрібно добре керувати, щоб забезпечити найбільш ефективне використання інструменту. Компілятори можуть запропонувати певну підтримку для статичного аналізу, включаючи обчислення показників.
Розбір тестових питань по третьому розділу
В цьому відео робиться спроба розібрати кілька десятків питань по третьому розділу сілабусу ISTQB CTFL.
В цьому відео працюємо з тестами до розділу 3.
00:00:17 Статичний аналіз за допомогою інструментів
00:02:13 Метрики коду
00:05:03 Цінність статичного аналізу
00:06:44 Типові дефекти
00:09:50 Статичні інструменти
00:13:16 Робота з тестами
Всі питання з відео з правильними відповідями наводяться нижче.
Question 1
Which of the following artifacts can be examined by using review techniques?
- Software code
- Requirements specification
- Test designs
- All of the above
Question 2
Who is responsible for documenting all the issues, problems and open point that were identified during the review meeting
- Moderator
- Reviewers
- Author
- Scribe
Question 3
‘Entry criteria’ should address questions such as
(I.) Are the necessary documentation, design and requirements information available that will allow testers to operate the system and judge correct behaviour.
(II.) Is the test environment-lab, hardware, software and system administration support ready?
(III.) Those conditions and situations that must prevail in the testing process to allow testing to continue effectively and efficiently.
(IV.) Are the supporting utilities, accessories and prerequisites available in forms that testers can use?
- II, III and IV.
- I, II, III and IV
- I, II and III
- I, II and IV
Question 4
A program with high cyclomatic complexity is almost likely to be:
- Difficult to write.
- Difficult to test.
- Small.
- Large.
Question 5
An important benefit of code inspections is that they:
- enable the code to be tested before the execution environment is ready.
- can be performed by inexperienced staff.
- can be performed by the person who wrote the code.
- are cheap to perform.
Question 6
Could reviews or inspections be considered part of testing:
- No, because they apply to development documentation.
- No, because they do not apply to the test documentation.
- Yes, because testing includes all non-constructive activities.
- Yes, because both help detect faults and improve quality.
Question 7
In a review meeting a moderator is a person who
- Takes telephone calls
- Takes minutes of the meeting
- Mediates between people
- Writes the documents to be reviewed
Question 8
Peer Reviews are also called as:
- Formal Review.
- Walkthrough.
- Technical Review.
- Inspection.
Question 9
People who don’t participate in technical reviews:
- Analysts.
- Testers.
- Management.
- Developers.
Question 10
Static analysis is best described as:
- the use of black box testing.
- the analysis of program code.
- the analysis of batch programs.
- the reviewing of test plans.
Question 11
Static code analysis typically identifies all but one of the following problems. Which is it?
- Too few comments
- Faults in the requirements
- Unreachable code
- Undeclared variables
Question 12
Success Factors for a review include:
I. Each Review does not have a predefined objective.
II. Defects found are welcomed and expressed objectively.
III. Management supports a good review process.
IV. There is an emphasis on learning and process improvement.
- II is correct.
- II, III, IV are correct and I is incorrect.
- III, I, IV is correct and II is incorrect.
- I, III, IV, II is incorrect.
Question 13
The Kick Off phase of a formal review includes the following:
- Explaining the objective.
- Fixing defects found typically done by author.
- Individual Meeting preparations.
- Follow up.
Question 14
What can static analysis NOT find?
- Whether the value stored in a variable is correct.
- The use of a variable before it has been defined.
- Array bound violations.
- Unreachable (“dead”) code.
Question 15
What is the main difference between a walkthrough and an inspection?
- A walkthrough is led by the author, while an inspection is led by a trained moderator.
- An inspection has a trained leader, while a walk through has no leader.
- An inspection is led by the authors, while a walk through is led by a trained moderator.
- Authors are not present during inspections, while they are during walkthroughs.
Question 16
What is the main purpose of Informal review
- Discuss, make decisions, solve technical problems
- Inexpensive way to get some benefit
- Find defects
- Learning, gaining understanding, effect finding
Question 17
What statement about reviews is true?
- Inspections are led by a trained moderator, whereas technical reviews are not necessarily.
- In a walkthrough, the author does not attend.
- Participants for a walkthrough always need to be thoroughly trained.
- Technical reviews are led by a trained leader, inspections are not.
Question 18
What statement about static analysis is true?
- Compiling is not a form of static analysis.
- Static analysis finds all faults.
- With static analysis, defects can be found that are difficult to find with dynamic testing.
- When properly performed, static analysis makes functional testing redundant.
Question 19
Which expression best matches the following characteristics or review processes:
1. Led by author
2. Undocumented
3. No management participation
4. Led by a trained moderator or leader
5. Uses entry exit criteria
s) Inspection
t) Peer review
u) Informal review
v) Walkthrough
- s = 4, t = 3, u = 2 and 5, v = 1
- s = 5, t = 4, u = 3, v = 1 and 2
- s = 1 and 5, t = 3, u = 2, v = 4
- s = 4 and 5, t = 3, u = 2, v = 1
Question 20
Which is not a type of review?
- Informal review
- Inspection
- Walkthrough
- Management approval
Question 21
Which of the following are success factors for reviews?
(I.) Clear objectives for each review.
(II.) Checklists and/or roles are used to increase effectiveness of defect identification.
(III.) There is an emphasis on process improvement.
(IV.) People issues and psychological aspects are not reviewed.
- II, III and IV
- I, II and III
- IV
- I and III
Question 22
Which statement about the function of a static analysis tool is true?
- Gives information about what code has and has not been exercised.
- Can detect memory leaks.
- Gives quality information about the code without executing it.
- Checks expected results against actual results.