In some interviews you’ll be asked what are the different types of software testing. It normally comes up as part of another question.

For example they’ll ask how would you test the chair you’re setting in. Then follow up with what types of testing would you do?

This normally done to gauge how “creative” you are. There’s never a wrong answer to this question. On second thought the wrong answer would basically be not knowing any.

I’ve scoured the internet looking for different types of testing. Some of them I’ve heard about and others I haven’t.

Either way they’ve been complied into a list here. Now you’ll be more then ready for this question if it’s asked in your next interview.

The goal isn’t to memorize everything in this list. Just a few should be enough.

So I’m going to help by listing the first 20 types of software testing in alphabetical order.

What are Different Types of Software Testing?

Ad-hoc Testing

An unstructured from of testing used to help find defects that where not covered by existing test cases. Ad-hoc testing is normally informal and can be performed by anyone on the team, because it’s not connected to any test cases or documents.

Acceptance Testing

This is all the testing done to make sure that the product meets all of the customers requirements.

Accessibility Testing

This is when you check color, contrast, font size, etc. to verify that the product is able to be used regardless of disabilities.

Agile Testing

Similar to agile development, agile testing is any testing done incrementally and iteratively.

API Testing

Any testing done that focuses exclusively on the Software API layer of the application.

Automated Testing

This is a testing approach that makes use of testing tools and/or programming to run the test cases using software or custom developed test utilities.

All Pairs testing

Also known as Pair wise testing, is a testing method where each input is tested by combining pairs, which helps to test fi software works as expected with all possible input combinations.

Alpha testing

One of the first test done by “real” users, used to help simulate how the application will function in a real life environment.

Basis Path Testing

A testing mechanism which derives a logical complexity measure of a procedural design and use this as a guide for defining a basic set of execution paths. It is used by testing teams when defining test cases.

Beta Testing

This is a formal type of software testing that is carried out by end customers before releasing or handing over software to end users.

Benchmark Testing

Testing technique that uses representative sets of programs and data designed to evaluate the performance of computer hardware and software in a given configuration.

Black Box testing

Black box testing is a software testing method where in testers are not required to know coding or internal structure of the software. Black box testing method relies on testing software with various inputs and validating results against expected output.

Backward Compatibility Testing

Type of software testing performed to check newer version of the software can work successfully installed over previous version of the software and newer version of the software works as fine with table structure, data structures, files that were created by previous version of the software.

Binary Portability Testing

Technique that tests an executable application for portability across system platforms and environments, usually for conformation to an ABI specification. It is performed by the testing teams.

Black Box Testing

Testing when you don’t know how the underlying system / code underneath works.

Bottom Up Integration Testing

Bottom up integration testing begins with smaller portion of the software and eventually scale up in terms of size, complexity and completeness until the full application has been tested.

Boundary Value Testing

With this technique, testing is done extensively to check for defects at boundary conditions. If a field accepts value 1 to 100 then testing is done for values 0, 1, 2, 99, 100 and 101.

Branch Testing

Is a white box testing method for designing test cases to test code for every branching condition. Branch testing method is applied during unit testing.

Breadth Testing

A test suite that exercises the full functionality of a product but does not test features in detail.

Browser Compatibility Testing

Browser compatibility testing is performed for web applications with combination of different browsers and operating systems.

The list is getting a little long so let’s split this up into multiple post. Part 2 which will cover the next 20 is coming soon.

Are there any that I’ve missed? Leave a commit below and let me know?