|Software QA FYI - SQAFYI
Tips for Preparing for the Quality Assurance Phase
By: Steve Miller
Tips for Preparing for the Quality Assurance (QA) Phase
How can you ensure that your software is fully tested and has high quality, before moving to
production? Here are some tips on preparing for Quality Assurance (QA). Next month, we will
discuss how to measure the QA progress once QA begins.
Tip 1 - Quality Assurance begins during Specification
The QA team should have the opportunity to review each specification and to find issues and make
suggestions. The QA team should look for unclear requirements, requirements that are not defined
well enough to create test cases around, and for requirements that might affect other areas of the
software. Time spent in requirements review and correction can pay big dividends.
Tip 2 - Test Cases Should Be Developed as Coding is Progressing
If you wait until the QA phase begins to create your test suite, test cases will be rushed and your
team will not have time to fully review each suite of test cases for each requirements. Test case
development should begin the day coding starts. Testers should be assigned to create test cases for
specific requirements. Testers should remember to create test cases for:
. Positive Testing - These test cases ensure the software will work exactly as specified in the
. Negative Testing - These test cases are used to try to "trick" the software. For example, try
entering in an invalid date in a date field. Try entering character data in a numeric field. Try
entering in a date range where the "from date" is older than the "thru date". This also includes
entering in data that contains apostrophes, as this tends to trip up SQL based systems.
. Bounds Testing - These test cases test the bounds of each field. For example, if a field is
defined as 50 characters, try entering 60 characters.
. Relational Testing - These test cases test parent-child relationships. For example, if you
have a parent-child feature you are testing (e.g. an invoice may have one or more invoice line
items), try deleting the parent (invoice in this example), then ensure that all the child items
(invoice line items in this example) were deleted.
. Performance Testing - These test cases ensure that the new release will perform as quickly
(or quicker) than the past release. To test this, prior to the new release, try different actions
(add a record, search for a record, update a record, delete a record, etc.) and record your
timings in a spreadsheet. Once the new release is in the QA environment, try those same
tests and record the new timings, this will tell you performance has improved or degraded.
. Regression Testing - Upon a successful test cycle, some of the test cases above should be
marked as regression test cases so that they are run in future releases to ensure that existing
features continue to work as designed.
. Smoke Tests - Once all the test cases are designed for all the requirements, a small set (10
to 30 test cases) of the positive test cases should be identified as Smoke Tests. These will be
run prior to beginning the major testing effort. If any of these fail, they should be fixed
immediately before testing begins so that time is well spent by the testing team.
Here is an example of a report that shows the Smoke Test Listing:
Tip 3 - Test Cases Should Be Reviewed By Team Members
Once the tester completes all the test cases for a requirement, the tester should distribute a test case
review report that shows each test case for the requirement. The test case review report should
show the steps to be run, expected results, and what section of the requirement the test case
pertains to. The test case report should be reviewed by the appropriate team members (project
manager, programmers, and other testers). Reviewers should identify missing test cases and test
cases that are unclear. The review meeting should only take about 30 minutes, as each reviewer
should come to the meeting prepared, just to identify missing or unclear test cases. The tester will
then make the changes and mark that requirement as Test Ready.
Here is an example of a Test Case Review report:
Tip 4 - Review Test Coverage
Upon completing all test cases for all requirements (and having them reviewed), do a quick analysis
of number of test cases by type (Positive, Negative, etc) by Specification to ensure you have good
Here is an example of how that might look:
Below are some helpful templates to aid you in developing software solutions on-time and on-budget:
Functional Specifications - http://www.PragmaticSW.com/Pragmatic/Templates/FunctionalSpec.rtf
Architectural Overview - http://www.PragmaticSW.com/Pragmatic/Templates/ArchitectureOverview.rtf
Detailed Design - http://www.PragmaticSW.com/Pragmatic/Templates/DetailedDesign.rtf
Strategic Planning Document - http://www.PragmaticSW.com/Pragmatic/Templates/StrategicPlanning.rtf
Test Design - http://www.PragmaticSW.com/Pragmatic/Templates/TestDesign.rtf
Risk Assessment - http://www.PragmaticSW.com/Pragmatic/Templates/Risk%20Assessment.rtf
Weekly Status - http://www.PragmaticSW.com/Pragmatic/Templates/WeeklyStatusRpt.rtf
User Acceptance Test Release Report - http://www.PragmaticSW.com/Pragmatic/Templates/UATRelease.rtf
Post Mortem Report - http://www.PragmaticSW.com/Pragmatic/Templates/PostMortem.rtf
All Templates - http://www.PragmaticSW.com/Templates.htm
Prior Newsletters - http://www.PragmaticSW.com/Newsletters.htm
Software Planner - http://www.SoftwarePlanner.com/SoftwarePlannerPro.asp
Defect Tracker - http://www.DefectTracker.com
Remoteus (Remote Desktop Sharing) - http://www.PragmaticSW.com/Remoteus.asp
... to read more articles, visit http://sqa.fyicenter.com/art/
|Tips for Preparing for the Quality Assurance Phase