Skip links

Try QA

Main navigation

Study material for ISTQB Exam Certification Foundation level, Premium & Free for ISTQB and ASTQB Exam, Certification questions, answers, software testing tutorials and more

What is Software Testing? Basics, Tutorial, Importance, Interview Questions

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.

Software Testing 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.

  1. Why do you want to become a software tester?
  2. What do you think, are good qualities that a software tester must have?
  3. What is software testing?
  4. Why is software testing important?
  5. When should you do software testing?
  6. How much testing is enough?
  7. Why does software have defects?
  8. Why can’t we remove all defects?
  9. Who is responsible for the quality of the software, developers or testers?
  10. Wouldn’t it be easier if developers wrote proper code so that we don’t have defects at all?
  11. What should be the right process to test a software?
  12. When can we stop testing?
  13. 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:

(追記) (追記ここまで)

Reader Interactions

Comments

  1. 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.

  2. 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!!!

  3. 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

  4. Hey, this is very helpful; it provides me the knowledge on content. Look forward more articles like this.

  5. 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 .

    • 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.

  6. 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.

    • 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!

  7. 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?

    • RTM is requriment tracibility matrix. It ensures that each ans every requriment has atleast one testcase.

      • 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..

  8. 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

  9. Am into phone acessorice nd phone repair and system backup nd phones restoration.i need a suport to lead my level high pls.

    • 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

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

All content is copyright of tryqa.com, tryqa.com was earlier called ISTQBExamCertification.com
Web Analytics

AltStyle によって変換されたページ (->オリジナル) /