SoftTechQ:  The home for Software Technical Quality
Your Subtitle text
Process Checklist

Version Control

This is the ability to recover any version of any document/software throughout the product history.

  1. What are the project documents (examples, Design Specification, Requirements Specification, Functional Specification, Test Plans, Test Procedures, Test tools, Test Suite, Test results).
  2. How do you control the project documents?
  3. How is the software code base managed?
  4. How are software builds distributed?
  5. How are software builds approved?

Peer Reviews

This is a team review of a component (piece of code, test plan, test results, any artifact from the project).  It may be cross functional (as in the case of requirements), or it may be a single function (code review for software engineering).  However, it is more effective to have cross functional groups in the review (even for code you could add Design Verification).

  1. How do you review the critical documents for understanding?
  2. Who is on the review team?
  3. How are defects captured (problems found in documentation)?
  4. How do you review code?
  5. Who is on the review team?
  6. How do you review test plans, test procedures and test results?
  7. Who is on the review team?

Requirements

The Functional Specification defines what features will be enhanced, added, or removed from a customer perspective.  The requirements are clear, testable, and necessary

  1. Which document defines the product requirements?
  2. How many documents define requirements?
  3. How are changes incorporated?
  4. How are they refined for engineering?
  5. How are requirements defined throughout the organization?
  6. Are they testable and measureable?
  7. Who reviews/approves the requirements?

Software & Firmware

  1. How are unit tests performed?
  2. How are unit test results reported?
  3. Are there any other tests performed prior to an internal release from engineering?
  4. Which complexity metrics are you tracking?
  5. What are the boundary conditions you have set to ensure software is not too complex?
  6. How are builds managed?
  7. What is the body of tests run to ensure a build is stable enough to proceed with testing? 
  8. Does the test set work (have you run the tests, started working, and found the build was too buggy to work with)?

Testing

  1. How do engineers test their components?
  2. Where is the evidence of the engineering test results?
  3. Where is the evidence of Design Verification Engineering test results?
  4. Where is the evidence of Quality Assurance test results?
  5. How is your automation testing tracked?
  6. How are boundary conditions tested?
  7. Which boundary conditions are tested?
  8. How do you test for load and balance from these results?
  9. How do you test for stress?
  10. How do you test for performance?
  11. Where are the transactions clearly defined for performance?

Reporting

  1. How are the test results reporting working for you?
  2. How comfortable are you will the results?  Are they meaningful?
  3. Does your reporting reflect the product stability as it is delivered to customers?
  4. Could you explain the critical measurements on your dashboard?
  5. Are these measurements useful for you?
  6. What would you like to see on your dashboard?
  7. How much time does it take to collect the data?  Is it real-time?

 

Adding process moves effort to earlier cycles of the project.  If done effectively, this will remove test, debug, and retest time later in the project and reduce number of iterations required as the project nears delivery.  These problems are due to requirements misunderstandings, design misunderstandings and implementation errors.  While working with your team, the debug process is moved forward in the product life cycle, thereby improving the quality earlier in the analysis, design phases and continuing through the development and delivery preparation phase.

Web Hosting Companies