<img alt="" src="https://secure.wauk1care.com/164394.png" style="display:none;">

Types of Software Testing - a Glossary

Posted by Jane Kelly on 29/06/2021
Jane Kelly
Find me on:

Types of Software Testing - a Glossary

It's amusing that software testing is a conversation starter or stopper at a party when you exchange details on what you do for a living during first greetings, depending upon whether you meet a fellow ‘techie’ or not! Software testing doesn't have to be daunting; it can be fun and interesting!

Software Testing

Here are the most popular types of software testing, let us look at what they are and why we do them: 

Accessibility Testing

Accessibility Testing - this is important to ensure your software is usable by as many people as possible. It can include people who are deaf, colour-blind, partially blind, mentally disabled, physically disabled or due to old age. 

Alpha Testing

Loosely refers to the first round of testing. The main aim is to find the main types of activities the users would do and run the tests to see if there are issues.

Automation Testing

Testing automation by programming software tools to perform rapid tests. This replaces much of the manual effort and time involved from human writing, amending and executing tests. These can even run by overnight unaided.

Back-End Testing

This is database testing where data is stored - new or existing migrated records such as Oracle and SQL Server. We do this to enquire on record, check for data loss and data corruption.

Beta Testing

Loosely refers to the second round of testing at a prominent level. It's type of user acceptance testing, used to find bugs in the software.

Black Box Testing

Black Box Testing - this is a type of functional testing commonly performed in systems testing and can apply to most levels of testing but considers functionality without looking at code structure or internal workings.

Compatibility Testing

This testing looks at different environment configurations, typically web services, hardware, networks etc. Common ones are different browsers and versions, mobile vs. tablet vs. desktops, internal vs. external networks etc.

Component Testing

This is done after unit testing that tests multiple functionalities such as single code, to see if there are any issues when connected.

End-to-End Testing

Also, often called downstream testing. This looks at compete transactional flows and connectivity from start to finish, concluding with the destinations. It also shows successful inter-system handshake, data transformation and receipting exchanges of data acknowledgement triggers and responses.

Exploratory Testing

This is a fun one as it allows artistic license where the tester intuitively navigates exploring areas of the software with no pre-set script or rigid parameters.

Final Acceptance Testing

After successful installation, the final acceptance testing is run to confirm if it's fit for intended purpose – often referred to as commission testing.

Functional Testing

This is feature testing in short, like the above. Functional testing is concerned with a single feature as opposed to a complete set of features, products and processes.

Interrupt Testing

Testing application behaviour to see if interruptions disrupt the transactional flow and are managed in accordance with business expectations

Non-Functional Testing

This looks at performance, accessibility, reliability, response times, fail over, security to name a few. These help to support the framework of operational systems.

Negative Testing

This is checking to see if the software and error handing can manage invalid or unexpected inputs etc. We check to see a useful meaningful and user-friendly error message is displayed.

Performance Testing

Looks at the speed, scalability and durability of a system in diverse ways.

Types of performance testing include:

Load Testing

Finding pressure thresholds and bottlenecks under predicted peak user loads.

Stress Testing

To understand system behaviour under extreme workloads. Finding the break point.

Spike Testing

Testing to understand system behaviour when sudden extreme increases in user activity e.g, ticket sales launch for music concerts.

Scalability Testing

To show understanding to aid capacity planning and look at future potential ability to significantly increase capabilities, users, products, customers etc.

Endurance Testing

Testing to understand the system tolerance in terms of system stamina under sustained pressure.

Volume Testing

To understand system behaviour under extreme volume. Finding the tolerance and behaviour of systems at various levels.

Regression Testing

This testing is to look at unchanged functionality after code change to find if there have been any adverse effects.

Sanity Testing

A subset of regression and acceptance testing, this testing happens after an environment refresh or bug fix deployment to detect bugs.

Security Testing

This looks at how well the system is under threat from malicious attack, internal and external threats such as virus malware, data security, authorisation, authentication etc.

SoapUI Testing

SoapUI is a free open-source tool which enables applications to communicate and exchange data. We use the tool sometimes for testing where the originating system is not available, to simulate web services as an example.

Site Acceptance Testing

Put simply, this evaluates the functionality and access at the user site before it’s installation to ensure there are no site-specific issues that would affect operational use.

Smoke Testing

This describes high level testing to check important level basic and common functions are working before a detailed testing phase starts.

Static Testing

This is reviewing documentation before testing execution to find conflict, omissions, anomalies, inaccuracies, contradictions in design which can save huge amounts of money and time when identified and resolved early.

Systems Integration Testing

This done primarily to show that data passes successfully and correctly, from one system to another and considers the movement and transition of data from end to end. The focus here is co-existence and interaction between modules, systems and connected areas or sub / downstream systems. Examples may include marketing/customer emails, financial collections/refunds, print, overnight batch data transit, interaction between mobile & tablet devices, management information and so on.

UI Testing

This has some degree of overlap with UX testing in that it's concerned with the design of the user interface, which directly affects the user experience. It can include how the software behaves with mouse, keyboard or other input peripheral devices attached and whether the visual elements presented are working as expected.

Unit Testing

This is the checking that developers/programmers do in isolation on one or more units of code. Their machines reviews their own code. The purpose is to look for inaccuracies, check for consistency/standards in formatting and data integrity.

User Acceptance Testing

Also known as change acceptance testing and business acceptance testing. Mostly owned led and performed by business users. It used to show if the changes in a system behave in an acceptable way to support live business operations and that existing business can be transacted as usual without adverse effect.

UX Testing

This, in simple terms looks at the holistic user experiences in testing - how it looks, feels and how your system users or target audience expect the system to behave. Retail online shopping experience would be a good example for this. The focus is optimising the user experience. Research shows that the user experience drives growth.  

White Box Testing

This is testing oriented around the technical structure design and coding, looking at inputs/outputs flow to improve security and usability.

Read on...

Hope you've found this useful. For more helpful content, read our 'Modern Development' white paper below or alternatively check out our knowledge centre for more useful articles. 

Modern Development QA & QC

Topics: Software Testing, Software Testing Techniques, Software Test Process

nFocus Blog

Welcome to the nFocus software testing blog. As thought leaders and technical innovators, we created this blog to distil our thoughts, ideas and musings on improving software quality.

Fill out the form below to receive future communications from nFocus including our latest:

  • Blog articles
  • White Papers
  • and plenty more!

Follow us

Follow us on LinkedIn to see our latest content!

Subscribe Here!

Recent Posts

Posts by Topic

see all