Software testing is an activity that evaluates an attribute or capability of a programme or system and determines whether it meets expectations and delivers the required results.
Testing is no longer considered to be just another stage in the development lifecycle, but runs parallel to the software development life cycle (SDLC) as a full-fledged software testing life cycle (STLC).
Testing activities start early on during the requirements’ gathering and analysis phase of SDLC. Business analysts in testing play the role of Subject Matter Experts (SMEs) and help convert the business requirements to use cases that can be understood by testing professionals.
Use cases translate into test scenarios and test cases. These test cases are executed in a controlled environment and the results are compared. A good methodology should ensure that all business requirements are captured and mapped to ensure end-to-end traceability.
With comprehensive business knowledge and technical competency, testers play an important role in acting as a bridge between the development and business teams. The metrics to be captured and reported should revolve around test design coverage and effectiveness.
Types of Testing
The key types of testing include:
•Functional Testing: Testing applications for their functionality requires a good understanding of the business domain and organisations today expect testers to continuously enrich their domain knowledge. Sound business knowledge, coupled with a well-defined methodology, enables testing teams to validate applications’ suitability to business.
•Performance Testing: Business users are increasingly impatient to an application that does not respond as expected. Applications are therefore tested for performance in extreme conditions before their release to production.
Capturing the right performance statistics, both at the client side and the server side, is critical in identifying and understanding performance bottlenecks.
•Specialised Testing: Testing services providers have been able to cater to specific quality needs of their clients by offering specialised services, such as test automation, non-functional testing, agile testing, SOA testing, compliance testing, product testing, business process testing, etc. Increasingly, mobile testing is becoming popular with a host of applications being released on mobile devices.
With every feature loaded to an application, it becomes imperative to run the entire gamut of tests again. Executing these manually could be time-consuming. Organisations look at test automation as a way to optimize testing cost and effort. The availability of tools and frameworks for automation helps testing teams construct and maintain reusable automation scripts, enabling teams to test faster. The testing function is driving innovation.