What is Software Testing | Types of Software Testing

We are going to answer some of the basic questions like – What is Software Testing and what are the types of software testing in here. I plan on including everything there is to know and learn about software testing on this page and the following ones, so as to help fellow software testers in grabbing a proper hold of the concept.

It will also be useful to people who are trying to crack interviews because “what is software testing?” and “what are the types of software testing?” are some of those initial questions that every interview starts with.

Apart from that, we will also see some of those other important questions that an interviewer always begins with to see how much you understand about software testing. It might also assist you in clearing ISTQB Exam which is nothing but a standard software testing certification qualification test for software testers.

Software Testing meme

If you are associated with software testing in any way, it is always a good idea to start with the basics of everything.

Without wasting much time, I will get straight to it. The first question we are going to see is:

What is Software Testing?

Software Testing is a process to evaluate the functionality of a software application in order to find out whether the software developed is according to the requirements specified.

That being said, it ensures the proper functioning of the software and its components by identifying defects, bugs, gaps and errors that help in complying to those actual requirements.

Why do we do Software Testing?

As a client or an end-user, the expectation is that a said software application should work properly and seamlessly without any issues. That implies there should be no errors whatsoever to ensure that the said system works without any hiccups.

However, it is a rare case where such a condition is reached without the help of any testing. Primarily because there is always a chance of human error. That’s where a software tester walks in.

It is the job of a software tester to ensure that all those errors are identified and sent across to the developer to fix. That means a software tester and a software developer are supposed to work hand in hand for the benefit of the software application in question.

We test software to ensure that it works properly. That is the main goal. That is what we are trying to achieve. At the end of the day, we are trying to make the client or the end-user happy.

Types of Software Testing

Moving on to the next topic on our agenda, we come to yet another salient question – What are the types of software testing?

Based on the testing methodologies, one could divide the types of software testing into the following:

  • Manual Testing
  • Automation Testing

While manual testing is focused on testing the ins and outs of a system in question using manual methods, automation eases that process using scripts that run automatically. The latter reduces both time and effort in software testing.

I have made plenty of tutorials on one of those widely popular automation testing suites called Selenium. You can check them out as well if you wish to learn about automation.

Other Testing Types

Based on the testing categories, software testing has been primarily divided into two main types:

  1. Functional Testing
  2. Non-Functional Testing

We are going to see both of them one by one.

Functional Testing

Functional testing primarily focuses on each function of the application in question and sees to it that the software is working in accordance with the requirements, that whether the software application is working as per the functional requirements or not.

It is basically a type of black-box testing, that is, it is not concerned about the source code detailing or the processing but the overall functionality of the application. It is concerned with the final result.

The following are the types of functional testing:

  • Unit Testing
  • Component Testing
  • Smoke Testing
  • Sanity Testing
  • Interface Testing
  • User Acceptance Testing
  • Integration Testing
  • Regression Testing
  • System Testing

Tools to Perform Functional Testing

There are various tools available that you can use in order to perform functional testing. Some of these have been mentioned below:

Non-Functional Testing

Non-functional testing comes after functional testing. It entails testing to check non-functional aspects like performance, usability, and reliability of a software application. Basically, you are testing the readiness of a system, something you don’t cover in functional.

Here are some of the non-functional testing types:

  • Performance Testing
  • Load Testing
  • Stress Testing
  • Failover Testing
  • Volume Testing
  • Compatibility Testing
  • Usability Testing
  • Maintainability Testing
  • Scalability Testing
  • Security Testing
  • Compliance Testing
  • Disaster Recovery Testing
  • Efficiency Testing
  • Portability Testing
  • Baseline Testing
  • Reliability Testing
  • Endurance Testing
  • Recovery Testing
  • Documentation Testing
  • Localization Testing
  • Globalization Testing
  • Accessibility Testing

The following tools can be used to perform non-functional testing:

  • JMeter
  • Loadster
  • Loadrunner
  • NeoLoad
  • Forecast
  • Load Complete
  • Webserver Stress Tool
  • Loadtracer
  • vPerformer
  • WebLoad Professional
  • LoadStorm

Many times you might be required to perform non-functional testing too. As a functional tester, you might not realize it, but if you are basically testing the accessibility, the usability or the maintainability of the system, it will all come under non-functional testing only.

Quality Assurance

Popularly known as QA, Quality Assurance focuses on basically providing confidence to the client that the quality requirements will be met. It tries to meet the expectations in terms of functionality, design, standards, durability, and price.

Its prime focus is on the process and its implementation, then to identify the weakness in that process and then rectifying those weaknesses. In short, focuses on defect prevention.

So if you are a QA Tester, your job is to ensure that the expected quality of the software application is reached, while doing so improvement in the process.

QA defines the standards and procedures to be followed to meet customer requirements.

All the team members in a team are responsible for QA. Here code execution or execution of the program is not involved.

Also, it is a QA’s job to ensure that the whole SDLC cycle is taken care of.

The activities involved in QA would be:

  • Walkthrough
  • Testing
  • Inspection
  • Checkpoint Review

An example of QA is – Verification which is nothing but a form of static testing. You check documents, designs, codes and programs.

Quality Control

QC, on the other hand, does not focus on the process rather on the product or service that is being imparted. The focus here is on defect identification.

Before Quality Control is followed, Quality Assurance has to be completed.

QC ensures standards are followed while working on the service or product. It makes sure all the techniques, approaches and methods are being followed correctly.

QC Tester’s job is to constantly monitor and verify whether the project is meeting the expected quality standards.

Only the testing team is responsible for QC. It involves code execution or execution of the program.

It is a QC Software tester’s job to ensure the Software Testing Life Cycle is addressed.

An example of QC is – Validation which is nothing but a type of dynamic testing. You test and validate the actual product here.

Scottshak

Poet. Author. Blogger. Screenwriter. Director. Editor. Software Engineer. Author of "Songs of a Ruin" and proud owner of four websites and two production houses. Also, one of the geekiest Test Automation Engineers based in Ahmedabad.

You may also like...

Leave a Reply