Get started Bring yourself up to speed with our introductory content.

What are the top software testing methodologies?

Some common testing methodologies including unit testing, acceptance testing, functional testing, performance testing and security testing.

I'm a beginner in need of some advice on software testing methodology. What do you consider successful testing...

methodologies? Can you share your definition of the most common methodologies you've encountered during your career, and explain the differences between them?

Testing methodologies are approaches to testing, from unit testing through system testing and beyond. There is no formally recognized body of testing methodologies, and very rarely will you ever find a unified set of definitions. But here are some common methodologies:

  • Unit testing: The act of testing software at the most basic (object) level. Generally performed by developers, run in "friend classes" with code-level access to read and manipulate objects.
  • Acceptance testing: Also known as acceptance tests, build verification tests, basic verification tests, these are rudimentary tests which prove whether or not a given build is worth deeper testing. The term "smoke test" is a colloquial term -- when machines are built, engineers will power them up and just let them run, looking for smoke as a sign of serious problems.
  • Functional testing: Functional testing takes a user story or a product feature and tests all of the functionality contained within that feature. For example, in a photo application like Photoshop, functional testing would cover all the functionality contained within a feature like opening files (resolving file paths, determining appropriate format filters, passing the file path off to the filter) as well as handling errors within that functionality.
  • System testing: Testing the project as a collective system. For the Photoshop application, an example would be to open a file in a given format, manipulate that file in various ways, and then output the file. System testing generally combines multiple features into an end-to-end process or scenario.
  • Performance testing: Tests an application's performance characteristics, be it file size, concurrent users, or mean-time-to-failure.
  • Security testing: A collection of tests focused on probing an application's security, or its ability to protect user assets.

Other people consider approaches to testing to be testing methodologies. For instance, boundary testing (finding the limits of a feature, then testing at that limit, below the limit, and above the limit); pairwise or combinatorial testing, wherein a tester takes a very scientific approach to testing combinations of input variables, etc.

Two fantastic sources for learning more about testing methodologies are Cem Kaner's Testing Computer Software (very formal, organized approach to testing) and Lessons Learned in Software Testing by Kaner, Bach, Pettichord, which is less formal, but full of interesting tips on software testing technique.

Next Steps

Learn more about testing types and strategies

Get the basics of automated software testing

Why do some automated testing tool projects fail

This was last published in March 2009

Dig Deeper on Software Testing Methodologies

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

Are we missing any of the common testing methodologies on this list? Do you agree with these definitions?
If I were to recommend any one item to be added to this list, even though it seems to be fundamental, it's that we emphasize the scientific method and its importance in helping us construct tests. I found several years ago that taking a step backwards and focusing on the scientific method, and keeping it at the forefront of my efforts, genuinely added a lot of focus to my testing. It's the best methodology out there; all others stem from it ;).
The most commonly used test technique seems to be missing from this list. That is domain testing, sometimes called boundary testing or equivalence class testing. 

Cem Kaner wrote a fantastic workbook dedicated to this technique.
You can find that workbook at the following link:
How are testing methodologies the same as testing approaches?
I give up, how?
Hey John, I really enjoyed reading your article. A lot of useful info in there. My company recently published an article focused on "functional testing best practices". Maybe you would like to take a look? - http://howwedostartups.com/articles/functional-testing-best-practices
Tell me what you think pls.
How can we write testcases based on Boundary values Analysis and Equivalence partitioning?
What are performance testing best practices?  Are they any SOP documents to establish processes?