Software Testing: The critical pass-through stage in SDLC
We have discussed basics of Big Data and Cloud earlier. When someone looked at a career in IT in the initial days of IT and to an extent even now, lack of the right perspective made him or her believe that Software Testing is a secondary priority activity.
It is increasingly and rightly being recognized as a very critical aspect of the Software Development Life Cycle. Do you know that the need is directly driven by business necessity than anything else!
Today, IT is involved in every phase of the operations and functioning of an organisation. IT drives, triggers, manages and runs critical decisions, systems and processes. This is why an error in an IT system can potentially cause a massive impact, not only on that organization’s operations, reputation, revenue and compliance, but also on externally interfaced systems. For e.g. the interconnected global financial systems like cards and fund transfers. Imagine deposits missing from your bank account, cards failing while on an overseas trip!
Irrespective of all the massive time, mental and physical effort spent on designing and building a system, Testing is THE phase that helps decide whether to release the application for usage or hold it in the shelves.
In fact, about 30-40% of the budget for the development of a mission critical application is earmarked for Testing!
What is Software Testing
For an onlooker, software testing appears to be just running an application, entering values and checking output. But thats a leaf in the landscape. Testing is a science altogether.
Software Testing broadly checks some or all of the below aspects of an application depending on the domain, function and usage:
- Conformance to functional requirements or specifications
- Explicitly stated, and
- Not explicitly mentioned but obvious or common sense.
- Compliance to legal regulations and standards where applicable
- Ability to withstand invalid inputs and usage
- Intentional: Malicious attempts to impact the business, reputation, compliance etc of an organisation
- General: Such as due to ignorance or lack of knowledge or skills
- Ability to withstand intentional malicious usage for business applications
- Performance i.e. Speed, response, concurrent loads
- Access and Security
- Ability to work in different stated hardware and software environments
- Ensure meaningful error messages and indications are provided to the user
To achieve these goals there are very many ways and routes. Key among them are listed below:
- Phases: Planning, Test Design, Test Case preparation, Execution, Measurement, Reporting, Defect Prevention
- Stages: Unit, Integration, System, Acceptance, Pre-production Testing. These are sometimes further broken down.
- Other forms of Testing: Smoke, Sanity, Verification, Validation, Regression, Static, Dynamic, Positive, Negative, Compliance, Black Box, Penetration, Performance Testing etc.
- Methods: Manual, Automated (using tools).
For those who have the aptitude and attitude for Software Testing, it provides an exciting career. You don’t miss out on programming as Automated Testing also involves complex scripting.
ISTQB (International Software Testing Qualifications Board) administers globally accepted certification exams in Testing at Foundation, Advanced and Expert levels in Core(valid for any technology/ methodology/ application domain), Agile (for Agile projects) and Specialist (specialization in specific quality parameter, test approach, test activity or business domain) streams.
Opportunities in Software Testing
A Software Testing career is really worth pursuing!
There are now companies entirely focused on Software Testing and this industry quietly generates a huge number of jobs while many people look aside towards limited programming jobs and miss the opportunity.