In today’s blog post , I am going to tell you about software testing basics.
What is software testing?
Primary goal of software testing is to find out defects in the context of requirements.
Software testing is a broad spectrum planned activity conducted by Quality Analysis team which includes quality assurance and quality control.
Quality assurance activities seek to prevent buggy code and Quality Control implements actual testing to find out defect.
Software testing is fundamentally using software as end user and finding deviations from what is expected , keeping in mind human perspective of software applications. Finding a bug in an application needs good analytical abilities, observation, patience and of course a lot of questioning attitude. 😊
What is Defect ?
Defect is error state of software application that results in deviation from expected behaviour.
For example :
A login page has two fields Email and password and login button.
If user is able to login by entering wrong password, then this is a defect .
Objectives of software testing :
1.Uncover defects in software product
2.Verify conformance of product features to functional and non functional requirements
3.Undestand risks involved and implement steps to minimize risks
Different test techniques are used to derive feasible number of tests to be conducted as number of possible input and output combinations can be enormous for even simple piece of code
Software Testing Life Cycle
Software testing life cycle has phases phases :
Requirement Analysis − In this phase requirements to de developed are examined in detail.
Discussions and clarifications are conducted with respective stakeholders to analyse and document requirements.
Output of this phase can be requirement clarification document.
Test Planning – In this phase, Test Team plans approach of testing , scope of test effort , cost and resource estimates.
Scope of testing identifies implicit and explicit test items with respect to requirement clarification document.
Out of scope test items are also mentioned with respect to requirement being developed. Approach of testing identifies different test techniques to be used.
Test Case Designing – In this phase test scenarios and test cases are derived based on requirement. Test data is also identified for test cases.
Test cases are mapped to use cases or user stories in Requirement Traceblity Matrix to ensure optimum test coverage.
Output of this phase is Test case document
Test Environment Setup – This phase involves setting up a test environment as per hardware and software configurations required to test.
For Ex : Setting up local QA server or preproduction instance depending on phase of testing
Test Execution − During this phase, actual testing is carried out as per test cases prepared.
Test results are documented.
Defects are reported using Defect Tracking Tools.
Any fixed defects are also retested.
Test Closure – A consolidated test report is prepared depending on scope of testing effort.
Different test metrics are prepared to evaluate test effort conducted.
For Ex : defect density, number of test cases executed, number of test cases passed.
Hope today’s post helped you understand basics of software testing.
Keep watching this space for more as we dive deep in an ocean of “software testing”.