Wednesday, March 26, 2008

Software Testing Life Cycle

The Software testing life cycle contains the following components:

  • Requirements Analysis - Mainly done by Project Manager and System Analyst
  • Use Case Documentation - Again this is done by System Analyst
  • Developing Test Plan - Done by Test Lead
  • Developing Test Case - Test Lead and Test Engineer
  • Test Case Execution - Test Engineer
  • Test Report Generation - Test Engineer
  • Defect Reporting - Test Engineer
  • Defect Retest - Test Engineer

Recommended Resources
Testing Interview Questions - http://www.coolinterview.com/type.asp
Testing Tools Interview Questions - http://www.coolinterview.com/type.asp
What is Software Testing?- http://en.wikipedia.org/wiki/Software_testing
Software QA & Testing Resource Center- http://www.softwareqatest.com/
Testing Faqs- http://www.testingfaqs.org/

A Sample Test Plan

The Test Plan identifies multiple test levels, which are going to be performed for the project. Activities which are going to be performed at each level must be planned in advance and has to be formally documented.

Below I am describing a sample Test plan:

1. Purpose

<The purpose of this document is to describe the various test cases, testing methodologies, environments and the Software/Hardware tools that would be used followed during <unit/integration/system> testing in the ABC project.>
2. Approvals and Authorizations


Designation Name Date
Author


Approved By



3. Distribution

Holder’s Designation Holder’s Name Issue Date
Project Manager

Test Lead


4. Amendment Record

No Date Section(s) Issue No. Description











5. Test Plan
5.1 Objective of Test
<The objective of the integration/system test is to test the interfaces between the modules comprising the ABC product and to meet the performance criteria and benchmarks requirements criteria, if any, which may include volume and stress testing>
5.2 Test Method
<Details of the Test Strategy>

5.3 Entry and Exit Criteria

5.3.1 Entry Criteria
• Unit / Integration / System test plan approved.
• Coding phase / Unit testing / Integration testing complete
5.3.2 Exit Criteria
• Unit / Integration / System testing complete.
• Test records produced.
• Defect reports/Defect Tracking/produced and resolved.
5.4 Test Schedule
<As defined in the Project Management Plan.>
5.5 Defect Reporting and Monitoring Progress
• Defect reports/Defect Tracking will be maintained in line with the Testing Procedure.
• The Test Lead will issue a test report to the team members, Project Lead and Project Manager on a fortnightly basis.
5.6 Build Plan and Build Refresh Criteria
A new build of the software will be made whenever
• A Defect is found which prevents further testing
• All test cases have been executed and some Defects have been corrected
5.7 Resource Requirements
5.7.1 Hardware Requirements

Resource Description Qty






5.7.2 Software Requirements

Software Description Qty






6. Test Architecture
6.1 Test Architecture/Topology

<Draw the various test architecture/topology required for the testing>

I will try to post a new blog on Test Architecture/Topology very soon. Keep updating and keep visiting... :)

7 Test Environment Set up
< Describe the Testing Environment >

8. Test Cases
<Test cases definition for this testing is documented in the separate Test Case Form.>

For more details on Test Case, please visit the Test Case Form blog :) .

Software Testing in SDLC

The orthodox software process model typically suggest Software testing after development of code. This process is advocated by several process models like:

  • Waterfall Model - Linear model
  • Prototype Model - Though we have scope to test at early phase.

Several studies has shows that this linear approach amplifies the defects several times.

Accommodating software testing early in the Software Development Life Cycle (SDLC) will reduce errors and in turn save cost and effort. Here I am trying to illustrate a process model which has been derived from popular waterfall model:

image

If you carefully analyses the above shown process model, you will come to the conclusion that, this is not different from any linear model. The only change is the placement of the testing phase; which has been at the beginning, just after High level design phase. The diagram is quite self defining, so I am not putting any more detail about this.

Note: Ref - CMM in Practice: Processes for Executing Software Projects at Infosys (The SEI Series in Software Engineering) by Pankaj Jalote

Tuesday, March 25, 2008

Welcome

Welcome Everybody,
You are most likely to fit into one of the following categories:
-- A student with no or little experience in Software Testing or Quality Assurance,
-- A seasoned practitioner of Software Testing or Quality Assurance.
-- You may have written books or papers.
-- You may be young.
-- You may be ripened.
-- You may have been or are a developer.
-- You may have been a support desk person.

Regardless, you are most welcome in the blog. When and if you ever leave this blog, you will have conversed with the best and the brightest in Software Testing or Quality Assurance, and – should you stay and study long enough, you will have been educated by the best and the brightest in this industry.

How much do you need to pay for this volunteer-based service and higher education? The cost of this education is as follows:


Your Payment Plan consists of Respect, Resourcefulness, and Self-sufficiency:
=*= Respect: You demonstrate extreme respect for the volunteer educators here, by taking into account all that is in this entire post. And when you have some useful feedback or guidance, do take time to follow-up with gratitude or other words pertinent to closing the loop on your post.

=*= Resourcefulness: Demonstrate that you have command of your question/topic when you post as follows.

=*= Self-sufficiency: You will also find a broad range of topics covering IT and the tools necessary to facilitate certain aspects of IT as related to software testing, et al.

Give respect and gain respect! Consider this place your most prized possession and it will reward you with all that you ever need for your professional advancement and professional well-being!

Thank you!