Software Quality Assurace Static Techniques Flashcards
What is Static V&V
Analyses of the code
Dynamic V&V
Executing the code
What are the Static V&V Software inspection & reviews
Use knowledge of the systems, its domain, and the technologies used to discover problems.
Advantages of Static V&V over dynamic V&V
Cascading errors can obfuscate test results:
- Once an error occurs, later errors may be new, or
are the cascading effect of the prior error
Incomplete versions can be inspected:
- Tests require an executable version of the system,
while inspections do not
Good inspections are more than “bug hunts”:
- Inspections uncover inefficiencies and style issues
- Inspections are a form of knowledge sharing and
collaborative problem solving
Why are inspections not a replacement to testing?
They are compliment to testing.
Inspections do not replace tests:
- People make mistakes and cannot catch
everything
- We still need tests to ensure that the code is
doing what it is intended to do
What are the two inspections and reviews approaches
Structured inspections:
- Rigid, heavyweight process
- Involves in-person meetings, review checklists
Modern reviews:
- Flexible, lightweight process
- Tool-supported, online, asynchronous
What are the roles in structured inspections?
Moderator:
- Ensures the artifact is ready for review
- Ensures inspection procedure is followed
- Assembles an effective inspection team
- Keeps inspection meeting on track
Recorder/Scribe:
- Documents problems that are identified during
the inspection meeting
- Not just procedural, requires technical
expertise as well
Reviewer:
- Analyzes and detects problems in the artifacts
- All participants in the inspection play this role
- Participants from different teams
(requirements, development, QA) may bring
important perspectives
Reader:
- Leads the inspection team through the
inspection meeting by reading aloud small,
logical units, paraphrasing where appropriate
Producer:
- Author of the artifact
- Responsible for correcting problems that are
identified during the inspection
- “Fly on the wall” during the inspection meeting
What are the tasks in a software structured inspection Pre-review
Planning:
- Setting up a review team
- Scheduling time and place
- Distributing artifacts for the review
Group preparation (optional):
- Meet to provide context, orientation for team members unfamiliar with product
Individual preparation:
- Review the artifacts and other relevant material
Checklists ensure that review quality is attained
- Data reference errors, data declaration errors,
computation errors, comparison errors, control flow
errors, parameter errors, input/output errors
What are the tasks in a software structured inspection Post-review
Error correction:
- Bugs identified during the inspection are fixed
Improvement:
- Ideas for improving the artifact are evaluated
Follow-up checks:
- After making changes, the moderator may reevaluate the artifact
What is the task in a software structured inspection Review meeting
Review meeting:
- Reader walks review team through the material
- Two hour meeting at most
- Moderator ensures discussion stays on track
- Recorder documents, producer listens
What are the roles for modern reviews?
Author:
- Responsible for correcting problems that are
identified during the review
Reviewer:
- Analyzes and detects problems and
opportunities for improvement in the artifacts
- An engineer with expertise in the context that
the artifact operates within
Integrator:
- A core team member who can make final
approval or rejection decisions
Verifier:
- A team member who is only responsible for
checking the functional correctness of the
patch (does it do what it set out to do?)
Who is using modern reviews?
Open source systems.
The Linux kernel and Apache:
- Low-tech reviews submitted to an email
mailing list
- Rely on the interest of the community to
review interesting patches
Android, Eclipse, Firefox, Qt, OpenStack:
- Use dedicated reviewing tools to perform
reviews
- The tools keep track of all review information
- Automate the integration process
What are tips for productive review process
Do:
- Critique the artifact
- Keep review chunks short and succinct
- Plan time for reviews
- Prioritize reviews of important issues
- Keep things light
Do not:
- Attack the person
- Submit fixes for multiple issues at the same time
- Skip reviews!
- FIFO queue reviews
- Use sarcasm or exaggeration
What are the tasks in a modern review?
Go to slide 28 to see answer lol.
How to critique other’s code?
Constructive feed back over ad hominem attacks
Clearly articulated rationale over Strongly worded opinion
Suggested means for improvement over focusing on the criticism.