There are two type of software

  1. System Software (e.g. operating systems, firmware on devices, etc.)
  2. Application Software (e.g. desktop applications, web applications, web sites etc.)

Both types of software have different objectives and run-time environments, such as application software needing to work on system software. This means there is a possibility that a system software vulnerability can affect application software. That suggests that different types of software should have different types of testing approaches and concepts.

What are the major differences in test approach and concepts/planning between testing system software and application software?

  • Could you provide links detailing theses concepts? I don't think this difference is fairly common. Commented Jan 20, 2018 at 16:14

3 Answers 3


In layman’s terms, application software testing is much complex as compared to system software testing. This is because system software testing is all about attaining functionalities within a confined environment. On the other hand, application software testing needs you to check your software for compatibility across different operating systems, devices, browsers, etc.

Besides, if you need to have more clarity on the terms, I would like to know more detail on the question. For instance, the type of system software, the requirements, the configurations, etc. Or if it is about application software testing, what type of application is it, is it a web application? etc.

  1. System software consist of operating systems on which generally we runs our various applications. They are very well documented and tested in much early phase of products life cycles(System software i.e. windows, android, iOS).

  2. Applications uses memory, network system & other basic components from System software and they use system resource based on their types, which are native apps and web apps( So your testing approach is based on which type application you are testing).

As we are generally approach components based development for systems as well as application software we tend to test in very same approached. The applications are created were developed on exposed APIs for respective systems, So as we are approaching their functional testing in very same manner.

Web applications need more thorough testing on server performance and user interface side while native apps needs more thorough testing on resource management of respective systems software they have been developed.

That's why if we see any bugs in system software, company usually provide security or bug patch to mitigate risks.


I'd disagree with the premise, or at least, disagree with breaking things into those two pieces. Because there are at least three types of software, if you want to look at a business software stack.

  • Presentation Layer
  • Middleware
  • Operating System

And if you really want to get complicated, the Operating System isn't at the bottom. There's the hardware, which probably has several layers to it (BIOS, millicode, etc). And everything might be virtualized.

So, with that said, testing any of those isn't too different. At a base level, software is expected to take some input, and return some output. What's different is the thing that they're expected to take input from, and return output to.

Operating Systems exist to make life easier for other software running on the computer, by providing an interface between the hardware and programs running on top. So when testing OSes, you focus on the APIs that the OS provides, and the interface with the hardware.

Middleware, similarly, exists to make things easier for the display layer. It could be a database, a queue manager, or a host of other things. So, again, you focus on the APIs it provides, and the service it's supposed to provide.

And the presentation layer exists to present data to the end user, so you focus on the UI and data entry/retrieval. That's assuming that there is a UI; some business software talks only to other business software, in which case you focus on the data transformation that's happening.

The only thing that may be different is system testing; with Middleware and the Presentation Layer, you're probably also going to do some testing with a specific software stack, to in addition to testing the interfaces the software provides. But doing Operating System testing, you're probably going to have a suite of software you've got installed to make sure that real software doesn't break somehow.

Things like security flaws, run conditions, and so on can exist at any layer of software; all that really matters is how the flaw is exposed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.