Software Testing Is An Investigation Conducted To Provide Stakeholders With Information About The Quality Of The Software Product Or Service Under Test.
1.What is Software Testing? What is the need of Software Testing?
Software testing is a process of executing a program or application with the intent of finding the software bugs.It can alsobe stated as the process of validating and verifying that a software program or application or product:
Also Software Testing is an investigation conducted to provide stakeholders with information about the quality of theproduct or service under test. Software testing can also provide an objective, independent view of the software to allowthe business to appreciate and understand the risks of software implementation. Test techniques include the process ofexecuting a program or application with the intent of finding software bugs(errors or other defects).
Software testing involves the execution of a software component or system component to evaluate one or more propertiesof interest. In general, these properties indicate the extent to which the component or system under test:
As the number of possible tests for even simple software components is practically infinite, all software testing uses somestrategy to select tests that are feasible for the available time and resources. As a result, software testing typically (but notexclusively) attempts to execute a program or application with the intent of finding software bugs(errors or other defects).The job of testing is an iterative process as when one bug is fixed, it can illuminate other, deeper bugs, or can even createnew ones.
Software testing can provide objective, independent information about the quality of software and risk of its failure to usersand/or sponsors.
Software testing can be conducted as soon as executable software (even if partially complete) exists. The overall approach tosoftware development often determines when and how testing is conducted. For example, in a phased process, most testingoccurs after system requirements have been defined and then implemented in testable programs. In contrast, under an Agileapproach, requirements, programming, and testing are often done concurrently.
2.Software Testing LifeCycle (STLC). Explain
Software Testing Life Cycle refers to a testing process which has specific steps to be executed in a definite sequence toensure that the quality goals have been met. In STLC process, each activity is carried out in a planned and systematicway. Each phase has different goals and deliverables. Different organizations have different phases in STLC; however thebasis remains the same.
Below are the phases of STLC:
Requirement Phase
During this phase of STLC, analyze and study the requirements. Have brainstorming sessions with other teams and try tofind out whether the requirements are testable or not. This phase helps to identify the scope of the testing. If any feature isnot testable, communicate it during this phase so that the mitigation strategy can be planned.
Planning Phase
In practical scenarios, Test planning is the first step of the testing process. In this phase we identify the activities andresources which would help to meet the testing objectives. During planning we also try to identify the metrics, the methodof gathering and tracking those metrics.
On what basis the planning is done? Only requirements?
The answer is NO. Requirements do form one of the bases but there are 2 other very important factors which influencetest planning. These are:
– Test strategy of the organization.
– Risk analysis / Risk Management and mitigation.
Analysis Phase
This STLC phase defines “WHAT” to be tested. We basically identify the test conditions through the requirementsdocument, product risks and other test basis. The test condition should be traceable back to the requirement. There arevarious factors which effect the identification of test conditions:
– Levels and depth of testing
– Complexity of the product
– Product and project risks
– Software development life cycle involved.
– Test management
– Skills and knowledge of the team.
– Availability of the stakeholders.
We should try to write down the test conditions in a detailed way. For example, for an e-commerce web application, youcan have a test condition as “User should be able to make a payment”. Or you can detail it out by saying “User should beable to make payment through NEFT, debit card and credit card”. The most important advantage of writing the detailedtest condition is that it increases the test coverage, since the test cases will be written on the basis of the test condition,these details will trigger to write more detailed test cases which will eventually increase the coverage.
Also identify the exit criteria of the testing, i.e determine some conditions when you will stop the testing.
Design Phase
This phase defines “HOW” to test. This phase involves the following tasks:
– Detail the test condition. Break down the test conditions into multiple sub conditions to increase coverage.
– Identify and get the test data
– Identify and set up the test environment.
– Create the requirement traceability metrics
– Create the test coverage metrics.
Implementation Phase:
The major task in this STLC phase is of creation of the detailed test cases. Prioritize the test cases also identify which testcase will become part of the regression suite. Before finalizing the test case, It is important to carry out the review toensure the correctness of the test cases. Also don’t forget to take the sign off of the test cases before actual executionstarts. If your project involves automation, identify the candidate test cases for automation and proceed for scripting thetest cases. Don’t forget to review them!
Execution Phase
As the name suggests, this is the Software Testing Life Cycle phase where the actual execution takes place. But beforeyou start your execution, make sure that your entry criterion is met. Execute the test cases, log defects in case of anydiscrepancy. Simultaneously fill your traceability metrics to track your progress.
Conclusion Phase
This STLC phase concentrates on the exit criteria and reporting. Depending on your project and stakeholders choice, youcan decide on reporting whether you want to send out a daily report of weekly report etc. There are different types ofreports ( DSR – Daily status report, WSR – Weekly status reports) which you can send, but the important point is, thecontent of the report changes and depends upon whom you are sending your reports. If Project managers belong to testingbackground then they are more interested in the technical aspect of the project, so include the technical things in yourreport ( number of test cases passed, failed, defects raised, severity 1 defects etc.). But if you are reporting to upperstakeholders, they might not be interested in the technical things so report them about the risks that have been mitigatedthrough the testing.
Closure Phase
Tasks for the closure activities include the following:
are no severity 1 defects opened.
improvements and what can be improved)