This finds out the defects pertaining to un-installation of software. This testing involves invoking the software installer for un-installing the software on different types of OS and different environments like Virtual machines. This also involves removal of the software configuration files, registry entries (for windows), installed patches like bug fix, security patch etc.
Also, if any folders created that are not removed during un-installation should be notified to the user upon completion of uninstallation and informed to delete the same. Also check whether a reboot of the machine is required for a complete removal; if necessary, prompt the user on the same. See Installation Testing also.
From usability perspective, can check with the user whether the configuration files need to be retained for future installation or remove completely, and perform based on the response.
Also try the exceptional case by deleting all the installed files from the computer and try un-installing the software. Any exceptions thrown should be handled appropriately giving the installer a robust behavior.
This type of testing is performed by the developers before the setup is handed over to the testing team to formally execute the test cases. Unit testing is performed by the respective developers on the individual units of source code assigned areas. The developers use test data that is separate from the test data of the quality assurance team.
The goal of unit testing is to isolate each part of the program and show that individual parts are correct in terms of requirements and functionality.
Limitations Of Unit Testing
Testing cannot catch each and every bug in an application. It is impossible to evaluate every execution path in every software application. The same is the case with unit testing.
There is a limit to the number of scenarios and test data that the developer can use to verify the source code. So after he has exhausted all options there is no choice but to stop unit testing and merge the code segment with other units.
This test is carried out after a hardware upgrade or OS upgrade or Software upgrade. Upgrade testing is a type of testing that is carried out to ensure application features are not broken due to the upgrade. See Installation Testing also.
Upward Compatibility Testing:
This refers to Forward Compatibility Testing.
Testing the ease with which users can learn and use a product.
This section includes different concepts and definitions of Usability testing from Software point of view. It is a black box technique and is used to identify any error(s) and improvements in the Software by observing the users through their usage and operation.
According to Nielsen, Usability can be defined in terms of five factors i.e. Efficiency of use, Learn-ability, Memor-ability, Errors/safety, satisfaction. According to him the usability of the product will be good and the system is usable if it possesses the above factors.
Nigel Bevan and Macleod considered that Usability is the quality requirement which can be measured as the outcome of interactions with a computer system. This requirement can be fulfilled and the end user will be satisfied if the intended goals are achieved effectively with the use of proper resources.
In 2000, Molich stated that user friendly system should fulfill the following five goals i.e. Easy to Learn, Easy to Remember, Efficient to Use, Satisfactory to Use and Easy to Understand.
In addition to different definitions of usability, there are some standards and quality models and methods which define the usability in the form of attributes and sub attributes such as ISO-9126, ISO-9241-11, ISO-13407 and IEEE std.610.12 etc.
Usability testing is a type of software testing that is performed to understand how user friendly the software is. Objective of usability testing is to allow end users to use the software, observe their behavior, their emotional response (whether users liked it or not, were they stressed using it, etc.) and collect their feedback on how the software can be made more useable or user friendly and incorporate the changes that make the software easier to use.
UI VS Usability Testing
UI testing involves the testing of Graphical User Interface of the Software. This testing ensures that the GUI should be according to requirements in terms of color, alignment, size and other properties.
On the other hand Usability testing ensures that a good and user friendly GUI is designed and is easy to use for the end user. UI testing can be considered as a sub part of Usability testing.
Accessibility or 508 Compliance Testing
This is a subset of usability testing, verifying the software product is accessible to the users under consideration having disabilities (deaf, blind, mentally disabled etc.). Accessibility evaluation is more formalized than usability testing generally. The end goal, in both usability and accessibility, is to discover how easily people can use a web site and feed that information back into improving future designs and implementations.
Myths, Misconceptions, & Confusion:
Does 508 compliance is the same as accessibility?
‘No’ is the answer. 508 compliance is the law that federal judiciary wrote up to try and begin to set some standards for all electronic and information technology products. It provides the minimum standards for what is deemed acceptable, and ‘minimum’ really does not make a web-site fully accessible. Sure, you can make the effort to be 508 compliant, but it is very broad in meaning. Make the effort to be accessible, not just 508 compliant.
Does Accessible means the design isn’t as pretty?
This is a serious misconception. There isn’t anything about being accessible that necessarily makes a design look ugly. Anything that you can do with web standards and other best practices can be done accessibly, and that makes for a lot of great design potential.
Providing Alt Tags is all you really need to do be accessible?
Adding descriptive alt text is the very least of what you can do to improve accessibility. There are numerous simple things one can implement in the design.
1) If your main navigation page is long and spanned across pages, “skip navigation” proves to be very useful for those who are using the assistance of a screenreader. What is skip navigation? It allows the user to not to have to hear the same navigation over and over every time they navigate to other pages on the same site.
2) Provide true semantic headers ( h1, h2, h3) and determine clear labels on forms to help those using screenreaders. This will help improve the user’s expereince when navigating through a site.
3) When marking up your content or provide additional options in a layout, consider font sizing (which is built into most modern browsers now), for those who may need to see text at a larger size.
4) Be mindful of color contrast for those who are colorblind or have a hard time determining different colors.
User Acceptance Testing:
A formal product evaluation performed by a customer as a condition of purchase. User Acceptance testing is performed by clients/end users of the software. User Acceptance testing allows Subject matter experts (SMEs) from client side to test the software with their actual business or real-world scenarios and to check if the software meets their business requirements.