Continuing on our previous articles – Comprehensive list of Software Testing Types | Agile is NOT a ‘Testing Type’ and Understanding different Types of QA Testing (part I), let’s look at some other important Testing types. Before we proceed, reiterating the fact that please go through the basics “Attention! Get your facts clear before facing an interview!” to clarify most of the doubts about different Test terminologies.
GUI (Graphical User Interface) testing
As the name suggests – the objective is to test the software’s GUI (Graphical User Interface), to ensure it meets the requirements as per design. E.g. Layout, Colors, Font, Links, type & length of form input fields, etc. The GUI is not only checked for proper functionality but also for its adherence to the defined quality standards.
Note: Most of the functional test automation tools work on GUI capture and playback capabilities.
Compatibility as in your software is well-suited for both males & females J haha…Just kidding J Taking a cue from human relationships (ppl need to be compatible with each-other to make a cohesive society), what is it that Software interacts with? Yeah! The hardware resources like memory, disk drives & CPU, the Operating system, databases, web servers, application servers, different browsers, etc. that a customer may use. What if it fails in some interaction?
The objective of compatibility testing is to ensure that the software (or its latest version) is well-suited for its surroundings – hardware, servers, OS, CPU, etc. It determines the minimal and optimal configuration of hardware and software for the application under test to perform perfectly. The most popular form of compatibility is – Browser compatibility (application works fine in all in-scope browsers) and versions’ compatibility (newer version if backward compatible or not). Compatibility testing can be performed manually or can be driven by an automated functional or regression test suite.
In simple terms – testing the ‘ease of use’. Why do you think some websites are more user-friendly? It involves checking if a new user can understand, learn & use the application easily, help contents, system navigation, pleasing design, etc.
Note: Usability testing is from client or end-user’s perspective, i.e. it’s subjective and depends on the targeted end-user or customer. User interviews, surveys, video recording of user sessions, and other techniques can be used.
Access as in the ‘right to use’, i.e. is your software accessible by ALL? Say, what if a blind person wants to access your software. Did you ensure that the software is accessible by the disabled? E.g. Audio support for blind users, color and contrast for the color blind, font size for visually impaired, speech recognition, etc. Testing objective is to ensure the ‘application accessibility by ALL’!
Note: About 20% of population has disability issues. A software product can cater to this big market, if it’s made disable friendly. Accessibility issues in software can be resolved if Accessibility Testing is made part of normal testing life cycle.
Portability, or in other words movability or transferability of a software or application. Movability as in the changes to the environment such as hardware, operating system or browser. The software may be installed in more than one environment or its executables may be created and run on different platforms. This form of testing is important if the customer intends to use the software application on more than one platform.
The objective is to test software’s ‘Scalability’ – the ability of the software to scale up with increased users, increased transactions, increase in database size etc., i.e. how much more workload the software can support with expanding user base, transactions, data storage etc.
Stability testing focuses on testing how stable software is when it is subject to loads at acceptable levels, peak loads, loads generated in spikes, with more volumes of data to be processed, etc.
Fault Tolerance, Error handling & Fail-over Testing
In today’s online payments era, occasionally we encounter a situation where the amount is debited but the transaction fails. Now how would you feel if the software company didn’t do anything about that? Will you go back to using the same software or application again? Obviously No!
This is where Fault Tolerance, Error handling & Failover Testing comes into picture. What if some error or fault occurs in the application? Does the software display a proper error message? Does the system properly process the erroneous transactions? Can it be reversed? Testing is carried out to check how an application would react if any fault occurs in real time scenario, e.g. connection error with network, connection problem with application server, not being able to connect to a database etc. And to test the ability of software to recover from unexpected severe problems such as hardware failure or a crash. This form of testing explains how well the system will restore to its original state in case of any kind of failure.
Internationalization / Localization Testing
To go international, the software must support localization. Confused? It’s simple!
Say the Software under test will be used across geographies – what is the first hindrance to its usage? Yeah! The language J the objective of this test type is to ensure that the software can support usage of different languages (display & accepting input), different character sets, data & time settings, local currency, etc. with respect to a particular locale (like French, German or Spanish). Once the configuration is set for a particular locale, the software is expected to adapt & work as expected (no functional impact due to locale change).
Conformance & Compliance Testing
Conformance testing verify the implementation conformance to industry standards, i.e. producing tests that verify that the software implementation conforms to industry standards with respect to different aspects like portability, inter-operability, and/or compatibility.
Compliance Testing checks whether the system was developed in accordance with standards, procedures, and guidelines. E.g. regulatory-compliance testing facilitate resolution of compliance issues and submission of necessary documentation to meet regulatory guidelines and mandates.