Showing posts with label Software Testing Life Cycle. Show all posts
Showing posts with label Software Testing Life Cycle. Show all posts

Thursday, February 2, 2012

Smoke Testing and Sanity Testing


Smoke Testing
In Smoke testing a set of test cases are executed on every new build to verify that build is testable before test team accepts it for further testing. The test cases selected for smoke testing are the one which are of important for the build in test which is released. If any major functionality fails under smoke testing, the testing team rejects the build and conducts no further testing. Focus of Smoke testing should be on stability of the build released. In smoke testing mostly all features under test are tested, but not in much details.

Smoke Testing is also known as Build Verification Testing (BVT) or Build Acceptance Testing (BAT).
Why we perform smoke testing?
                The advantage of smoke testing is it saves the efforts of a test team considerably. Normally smoke testing should not take more than 20-40 minutes.
What we do in smoke testing?
                In Smoke Testing important or identified test cases are executed and if smoke test fails, build is rejected and a new build is released after the bug is fixed.

Sanity Testing
In Sanity testing a set of important test cases for functionality in test are executed. The test cases selected for sanity testing are the one which are of important for a feature or two in test which is released. Sanity testing is a subset of regression testing. Focuses of Sanity testing are only one or feature in build released where some changes are made.
Why we perform smoke testing?
                In Sanity testing we test only the few features which are released our focus is on the fixed issue and their affected area.
What we do in smoke testing?
                In Sanity testing a set of important test cases for functionality in test are executed. The tester should focus on the fixed issues and the components linked or affected due to the fixes.

Note: There are different process and methodologies followed in various organizations. The above content is as per my experience in industry so far.
 
Please feel free to write comments if you like my post or else if your opinion is different or you may like to add any more points in them.

Monday, January 16, 2012

Software Testing Life Cycle (STLC)

A Software Testing Life Cycle is made up of series of phases.

1.       Requirement Gathering and Analysis
Requirements analysis is critical to the success of any project. The scope and boundary of the proposed software solution is drawn. Identifying stakeholders such as customers, end-users, system administrators etc. is the next step in requirements analysis. This is one of the most important steps in the whole process as proper identification of stakeholders enables the business analyst to draw a road map for gathering requirements. Testing Team identifies the testable requirements. Requirement can be functional or non functional. Scope of Automation (if any) is also considered.
Activities
·         Prepare Requirement Traceability Matrix (RTM).
·         Identifying the approach or setting the priorities module wise.
·         Identification of areas to be tested automatically and those requiring manual testing
Out-Put After This Phase
·         Requirement Traceability Matrix (RTM).
2.       Test Planning
A test plan is a document is created which provides detail of a systematic approach to testing. Testing Effort and Cost Estimation for the project would be calculated.
Activities
·         Project scope and expectations definition
·         Technology and methodology selection
·         Preparation of test plan document for various types of testing to be performed.
·         Testing effort estimation 
·         Definition of QA metrics
·         Resource Planning and identifying the roles and responsibility. 
·         Testing Tool Selection.
Out-Put After This Phase
·         Test Plan
·         Testing Effort Estimation
3.       Test Case Development
After Requirement is freeze followed by initial understanding, testing team starts creating Test Case or Test Scripts along with test data, which are later reviewed followed by rectifying the issues reported by reviewer. Categorization of Test Case as per their priority is also set.
Activities
·         Create test cases or Test scripts (if applicable).
·         Categorization of Test Case.
·         Create Test Data
Out-Put After This Phase
·         Test Cases/Scripts
·         Test Data
4.       Test Environment Setup
A testing environment is a setup of software and hardware on which the testing team is going to perform the testing of the software product. This setup consists of the physical setup of hardware and software setup that includes Server Operating system, client operating system, database server, front end running environment, browser (if web application) and other software components required to run this software product. These setups are done by support staff. Testing team has to ensure the conditions are met before testing is taken off. Followed by Smoke Test which verifies the Test Environment as well as stability of the build delivered to Test Team.
Activities
·         Ensure the required Hardware and Software or different combination of machines are ready
·         Perform a Smoke Test on the build delivered for Testing
Out-Put After This Phase
·         Test Machine or Test Lab
·         Smoke Test Result
5.       Test Case Execution
Test Case execution is a process of executing test cases/scripts in a logical sequence with specific test data (if available). If any Test Case/Script or Test Scenario fails, Testing Team logs the bug in Bug Tracking tool (Bugzilla, Jira, TTPro, etc.). Simultaneously a dedicated team of developers would be fixing the bugs and release the fixes in next build. Testing team shall verify the reported bug and accordingly update the Bugs logged. This cycle continues till all the bugs identified in product are fixed. Finally a Regression or Ad-hoc Testing is performed after which Test Report is prepared if all goes well.
Activities
·         Execution of Test Cases
·         Log bugs in bug tracking tool
·         Create Test Result document
·         Map defects to Test Cases in RTM
·         Verify the bug logged in new build
·         Update the bug status in bug reporting tool as per verification status
Out-Put After This Phase
·         Test Result
·         Defect Report
·         RTM with execution status
6.       Closure - Product Release
Once the test meets the exit criteria, the activities such as capturing the key outputs, lessons learned, results, logs, documents related to the project are noted down and used as a reference for future projects. Later a Causal Analysis and Resolution (CAR) Report is prepared where in best practices and cause of failures occurred are noted down.
 Activities
·         Test Metrics based on Test coverage, Cost, Time, Quality etc is prepared
·         Test Closure Report Preparation
·         Test Result Analysis is performed to calculate the defect distribution by type and severity.
·         Causal Analysis and Resolution (CAR) Report is prepared
Out-Put After This Phase
·         Test Closure Report 
·         Test Metrics
·         Causal Analysis and Resolution (CAR) Report

Note: There are different process and methodologies followed in various organizations. The above content is as per my experience in industry so far.

Please feel free to write comments if you like my post or else if your opinion is different or you may like to add any more points in them.