Software testing is a process of executing a program or application with the intent of finding the software bugs.
- It can also be stated as the process of validating and verifying that a software program or application or product:
- Meets the business and technical requirements that guided it’s design and development
- Works as expected
- Can be implemented with the same characteristic.
Software Testing Tutorial – Basics
Let’s break down the basic definition of Software testing into the following parts:
1) Process: Testing is a process rather than a single activity.
2) All Life Cycle Activities: Testing is a process that’s take place throughout the Software Development Life Cycle (SDLC).
- The process of designing tests early in the life cycle can help to prevent defects from being introduced in the code. Sometimes it’s referred as “verifying the test basis via the test design”.
- The test basis includes documents such as the requirements and design specifications.
3) Static Testing: It can test and find defects without executing code. Static Testing is done during verification process. This testing includes reviewing of the documents (including source code) and static analysis. This is useful and cost effective way of testing. For example: reviewing, walkthrough, inspection, etc.
4) Dynamic Testing: In dynamic testing the software code is executed to demonstrate the result of running tests. It’s done during validation process. For example: unit testing, integration testing, system testing, etc.
5) Planning: We need to plan as what we want to do. We control the test activities, we report on testing progress and the status of the software under test.
6) Preparation: We need to choose what testing we will do, by selecting test conditions and designing test cases.
7) Evaluation: During evaluation we must check the results and evaluate the software under test and the completion criteria, which helps us to decide whether we have finished testing and whether the software product has passed the tests.
8) Software products and related work products: Along with the testing of code the testing of requirement and design specifications and also the related documents like operation, user and training material is equally important.
Why is Software Testing needed?
At a high level, software testing is needed in order to detect the bugs in the software and to test if the software meets the customers requirements. This helps the development team to fix the bugs and deliver a good quality product.
There are several points in the software development process where human error can lead to software that does not meet customers requirements. Some of them are listed below.
- Customer / person providing the requirements on behalf of the customer organization may not know what exactly is required or may forget to provide some details, which may lead to missing features
- The person who is gathering the requirements may misinterpret or completely miss a requirement when document them
- During the design phase, if there are issues in design, it may lead to bugs in future
- Bugs may be introduced during development phase during to human error, lack of expertise etc
- Testers can miss bugs during testing phase due to human error, lack of time, insufficient experience etc
- Customers may not have the bandwidth to test every feature of the product and may release the product to their end users which can lead to end users finding errors in the application
An organizations business and reputation depends on the quality of its products and in some cases even the revenue may be dependent on the sales of software product.
Users may prefer to buy a competing product over a product that has poor quality and this can result in loss of revenue for the organization. In today’s world, quality is one of the top priorities for any organization.
Importance of Software Testing in Software Engineering
Software testing is an important part of software development. If software testing is not performed properly, applications can have errors which may lead to rework, costly failure or worse, loss of life.
There are many examples where software bugs have led to loss of life or millions of dollars in losses. Some of them are listed below.
- Knights Capital Group lost 440 million dollars in 30 minutes due to an error in their trading algorithm on 1 Aug 2012. The company’s share dropped 75% in two days after the software pushed faulty trades for over 150 different stocks.
- Mt. Gox Bitcoin Hack – Mt. Gox which was the largest bitcoin exchange in the world at the time, was hacked in June 2011 and lost approximately 850,000 bitcoins, valued at over half a billion dollars.
- The $18 million Mariner 1 Spacecraft was destroyed once it was certain to crash after take off. The failure was traced back to a missing hyphen that let wrong guidance signals to be sent to the rocket.
Growth in Software testing Career Path
Career path in Software testing can be challenging but fulfilling to those who have a keen interest in it.
Testing requires a bit of creativity from the tester in order to find bugs in the software which the developers may have missed.
This requires you to think of ways in which the software can be used, other than the obvious ones that may be listed in the requirements.
Software testers climb higher up the career ladder as they gain experience and expertise, taking up larger responsibilities. Testers can go from junior roles to senior software tester, QA / Test Lead, QA / Test Manager roles and higher.
The roles and responsibilities, expectations at each level is described in detail in our article on the career path in software testing.
Software testing jobs and salary
Entry level salary for software testers in India varies between Rs 1,40,000 to Rs 6,70,000. This depends on several factors like educational background, experience, location etc. An graduate who gets hired from an IIT will most likely be paid more than someone from a regular college.
The average salary of a software tester in India is approximately Rs. 3,20,000
The software tester salary in US varies between $37,000 to $88,000 depending on factors like educational background, hiring organization, location etc. The national average salary for software testers is around $55,000
As with any field of employment, salaries in software testing increase with the level of experience and expertise.
Software testing jobs are almost as common as development jobs. With the exponential increase in the number of mobile apps and other technologies, there is an increasing requirement for testers to test them.
While the demand for manual testers is decreasing, organizations are increasing the focus on ensuring that their candidates have strong knowledge of software testing fundamentals.
People with knowledge of automation testing command higher pay compared to manual testers and it would be prudent to have a specialized set of skills in order to differentiate oneself from the rest of the candidates.
Apart from specializing in automation, testers also have the option of specializing in other areas such as performance testing, API testing, database testing, security testing etc.
Software testing jobs can also be performed remotely and some organizations may provide work from home options to software testers.
With the rise in the adoption of crowdsourced testing / crowdtesting, individuals also have an opportunity to freelance as a software tester and earn a side income.
Software Testing Interview Questions
Some of the common software testing interview questions for freshers and those who are new to software testing are given below.
- Why do you want to become a software tester?
- What do you think, are good qualities that a software tester must have?
- What is software testing?
- Why is software testing important?
- When should you do software testing?
- How much testing is enough?
- Why does software have defects?
- Why can’t we remove all defects?
- Who is responsible for the quality of the software, developers or testers?
- Wouldn’t it be easier if developers wrote proper code so that we don’t have defects at all?
- What should be the right process to test a software?
- When can we stop testing?
- When should we start testing?
Some of the answers to the above questions are covered in this topic, while the answers to others can be found in upcoming topics.
Other popular articles:
- What is a Failure in software testing?
- Interview Question: Should Testers be paid same salary as Developers?
- What are the Software Development Life Cycle (SDLC) phases?
- From where do defects and failures in software testing arise?
- Why is software testing necessary?
ahamed says
And indeed, Iam just always astounded concerning the remarkable things served by you. Some four facts on this page are undeniably the most effective I have had.
vijay says
Provide me some previous model papers for my preparation. I have my exam on this DEC 29, 2018.
ISTQB Guide says
You can download the ISTQB Question Paper Dumps here
shivansh says
An excellent blog on software testing ..!!!.I read a lot of interesting posts here. I really felt a lot learned about the article that you have posted. Thanks, Buddy for such write-up!!!
Pranita says
On site you provided dump and mock questions Papers with answer but I wanted know this answers are right so we can refer this papers for study
Yuvaraj says
Hey, this is very helpful; it provides me the knowledge on content. Look forward more articles like this.
Hannah Kim says
Can anyone explain difference between test and testing?
I’m translating software testing related document and I’m very curious whether these 2 words have different definitions apparently .
Rudi says
theres no difference
Manish Sharma says
Which certification is best for Selenium Automation Engineer having experience of 5 years.
Bonnie says
How long does one typically need to study before attempting the exam?
ISTQB Guide says
This usually depends on many factors like your existing knowledge of software testing, how much time you can spend studying everyday, your ability to grasp the subject etc.
Typically for working professionals, who can dedicate upto 2 hours everyday to study the material, we recommend a minimum of 12 weeks of preparation. Some students are able to prepare for the exam in 8 weeks.
While many students/professionals pass the exams in the first attempt, you should not underestimate the effort required or the difficulty level of the exam. You need to allocate time to study the material at least twice and test your knowledge using sample papers.
Keyur Patel says
HI!
How is software testing about?
please reply me
asif says
the ability of your thing of working the different word and Technics is testing.
SURAJ BHARDWAJ says
i wana apply for software engineer currently I am doing mca from Uttarakhand open university . so tell me the whole process how to become software engineer.
Rohit Savale says
First you need to learn the all basic things about testing like what is s/w testing , why we need to do , how to do like all those process you need to understand first then after that you go further for all aspects and types of testings. And most important you need to know about SDLC and STLC process how those are applying for the testing process like that.
Thanks!
Nanthakumar says
what is evaluvation
Bhavin says
Nice and helpful article
jitu maurya says
What is walkthrough and inspection in static software testing more than one results software testing
vishnu kumar s r says
i want to know what is the software test
Rohit Savale says
S/w testing is an a activity to detect and identify the defects of the software!
Muzzamil says
How to test AirConditioner or UPS on the basis of Load,Performance and Stress testing?
Can anyone help me with the ONE-LINER test cases?
sisay says
software testing is the process of ecutine the program /system
with intet of test run of quality software.
Prasannakumar says
What is RTM?
Harish goud talla says
RTM is requriment tracibility matrix. It ensures that each ans every requriment has atleast one testcase.
Ganesh_Kul says
RTM is Requirement Tracibility matrix in that we ensure every requirement has at least one test case.
prasad says
RTM is a REQUIREMENT TRACIBILITY MATRIX it is a document where the test cases and use cases are mapped to the requirements.it is used to review the each and every requirement with corresponding test cases prepared or executed to it..
M DASARADHA says
i want to join in testing but i compleate bsc computers ddedree so what can i9 do next process so please inform or how to gety yha testing process datails so i mention my personal id in your site so send me total information of the testing
sravani says
thanks
meghana says
What is sanity testing
shaila says
Sanity Testing is Release level testing,where we did not go deeper checking of functionality of the product.
It mostly perform by QA Team
ISTQB Guide says
You will get to know about this by reading – http://tryqa.com/what-is-sanity-testing/
Ifra Sheikh says
In Sanity Testing, simply we test the Core functionalities of the application/Software.
tapan says
how to test mobile application ?
ISTQB Guide says
To begin with you can go through our mobile app testing checklist
Sunday donald says
Am into phone acessorice nd phone repair and system backup nd phones restoration.i need a suport to lead my level high pls.
Rohit says
What is a positive and negative test cases of pen?
priya says
Positive Test case : write/draw with pen on paper ( any kind rough surface also)
checking the refil/ ink level, able to close and open the top of the pen, able to hold properly with that pen.
negative Test case: draw/write with pen on other than paper, drop it down and check if able to write, write with empty refil