STQA Lecture Slides 10
STQA Lecture Slides 10
2
Reviews
• Reviews are a form of static testing where people, rather than tools, analyze
the project or one of the project’s work products, such as a requirements
specification, design specification, database schema, or code
• Primary goal is typically to find defects in that work product before it serves
as a basis for further project activity
3
Preparation for a Review
• Read work product being reviewed completely and carefully; and reflect on
your understanding of it ~ 1-2 hours
• This process takes longer than reading a blog post or a newspaper article
• You need to take notes as you go about questions you have, problems you have
found, and potential problems you need to check further prior to the review
• You need to check internal and external cross-references for any contradictions
4
After a Review
5
Extensive Changes and Re-Review
• While this is a costly outcome, it’s less costly than simply ignoring the
serious problems and then dealing with them during component,
integration, system, or—worse yet—acceptance testing
6
Reviews: Formal vs. Informal
7
Objectives of Review, 1/2
8
Objectives of Review, 2/2
9
Reviews Usually Precede Dynamic Tests
10
Checklist
• Regardless of the individual author and their skills, there is nothing personal
about locating potential problems and improvements for their work from a
checklist
• The checklists serve as a valuable leveling and depersonalizing tool, both
factually and psychologically
11
Checklist Formulation
12
Static Analysis as Pre-Requisite for Review
13
Checklist Sections
• Product • History
• People • Quality Characteristics
• Tools • Traceability
• Priorities
15
There is More to Checklist
• One risk is whether it will focus attention on verification (are we building the
product right?) rather than validation (are we building the right product?)
• Checklists will tend to bring your thinking into a verification mindset
• Remember to think outside of the checklist to look at whether the product
will actually solve the end users’ problems.
16
Software: Architecture vs. Design
17
Software Architecture List Elements
https://www.codeproject.com/Articles/20467/Software-Architecture-Review-Guidelines
Example Checklist
19
General Checklist Items for Code Reviews
• Checklist starts with the structure of the code (evaluated against any
architecture and design specifications to ensure consistency and
completeness)
• Checklist looks at documentation of the code (any applicable style
guidelines—for example, for class declaration and function headers)
• The next category on the checklist is variables
• Computation, programming logic, data structures, loops, conditions
• Programming practices 20
Brian Marick’s Code Review Checklist
22
Open Laszlo Code Review Checklist
23
Triage (5)
Investigation (10)
Hunting (4)
Incident Management (5)
Automation (4)
24
25
26
Audits
27
Software Process Assessment
29
Methods
30
Software Audit
• The most versatile purpose of software audits is to look for tools that no
longer contribute to overall software performance or even slow it down
• This is why software audits should be performed on all types of software
• As a result of the examination, software owners gain a better understanding
of the flaws that must be addressed, whether it means replacing a few
features or updating the entire platform
31
https://savvycomsoftware.com/blog/what-is-software-audit-why-do-you-need-it
More Purposes
• Managing software for the healthcare industry entails working with a large
amount of sensitive data, such as electronic health records. That is why it is
critical for the service or platform to comply with certain certifications, data
protection laws, and regulations, such as HIPAA in the United States or DPA
in the United Kingdom
• HIPAA = Health Insurance Portability and Accountability Act
• DPA = Data Protection Act
33
Maintain Software Quality
34
Conducting Software Audit, 1/2
35
Conducting Software Audit, 2/2
36
Types of Software Audit
• Code review
• Infrastructure inspection
• Architecture inspection
• Security audit
• Maintainability audit
• Usability and accessibility audit
37
Software Audit Checklist, 1/3
38
Software Audit Checklist , 2/3
39
Software Audit Checklist , 3/3
40
Audit Report
• Results of the software audit should include a report of findings and recommendations
• Report should provide a summary of the audit scope, objectives, and methodology
• Include a detailed analysis of the findings and recommendations for improvement
• Report should be easy to understand and provide actionable recommendations
• Include a prioritized list of recommendations, based on their importance and impact on
the software product
41
Metrics and Models in Software Quality
42
Engineering, Second Edition By Stephen H. Kan
43
Reading
• Section 5.5 Code review exercise from textbook Advanced Software Testing
• https://savvycomsoftware.com/blog/what-is-software-audit-why-do-you-need-it
44