Software QA FYI - SQAFYI

Identifying Test Cases from Bug Patterns

By: Vivek Sharma

Identifying Test Cases from Bug Patterns
Bugs, Errors, Defects, Faults, Failures – All are indicators of customer dissatisfaction, especially when found in the production environment. With the increasing complexity of the software being developed, it is imperative to catch the high priority bugs before the application goes into production.

The purpose of this article is to provide a practical approach of identifying test cases so as to catch maximum bugs before the product goes into production environment.

There are several suggested ways of designing test cases such as Boundary Value Analysis, Equivalence Partitioning, Error guessing (Intuition) etc. However in this article we would learn how test cases can be derived from bugs which have been identified in the existing software.

The article is written in a bug-test-case approach. For every bug, one or more corresponding test cases are defined. The bugs and test cases listed are not specific to any application, but may apply to one or more of the following kinds of applications – Client-Server, Web, Desktop applications and so on. Majority of the bugs mentioned below are relevant to the Microsoft windows operating system, but some of them are generic in nature.

Let us get started. The contents below are in no particular order:
Bug 1 – A field in a dialog displays the time of a particular event. The time shows incorrectly when viewed in a different time-zone For applications in which time is displayed, have a test case to verify the display is correct when the time zone is changed to

* GMT
* GMT + n hours
* GMT – m hours


Bug 2 – The information is not correctly displayed when Windows Operating System is installed in a volume other than C:\Windows (esp. true for dual-boot operating systems)

* Install operating system in a different volume and verify the behavior of your application. If there are any logs, are they generated correctly like installation logs, activity logs, database logs etc.?

* Have operating system installed in one volume and ‘Document and Settings’ folder in another volume. Verify application consistency.

Bug 3* – Open a dialog and click OK button to close the dialog without any changes. When the dialog is reopened, a field in the dialog is now grayed out. *

Test for Zero path – Open and close a dialog without any changes. Reopen the dialog to verify that default values are retained. *

Open a dialog, change the default value to another value and change it back again to default value. Verify the default values are retained *

Open a dialog, enter null values and verify that such scenarios are handled by the application
Bug 4 – Problem with operating system when it has maximum number of volumes like C:,D:…Z:\ on Windows OS containing different file systems – FAT, FAT32, NTFS

* Install your product on different file systems

* Install your product with one component in C:, second in D:, third in E: and so on – all components in separate volumes

Bug 5 – Application crashes when file system is filled to capacity
* File the file system to capacity –disk full condition and force the application to open, close, read/write and modify files and data

Bug 6 – Application fails to install/function or read/write to a mounted volume *

Mount a volume (say E:\) to a folder in an existing volume say C:\. Now try following operations:
a) Install your application in the mounted folder
b) Read from the mounted folder
c) Write data to the mounted folder
d) Backup the mounted folder and so on

Bug 7 – Application fails to validate virus infected files
* Test for application functionality with virus files (can be downloaded from eicar.com)
* Test for application functionality with a combination of virus and clean files, virus files compressed along with clean files.
Bug 8* – Space character causes text truncation after the record is saved and reopened
* Test the fields in your User Interface (UI) for space characters. In many instances, developers leave checks for such exceptions – which leads to bugs.
* Test the field in UI for other characters on the keyboard - ~!@#$%^&*()
* Test with some other special characters using ‘charmap’ Windows utility
Bug 9 – Display is incorrect for records which are purged from the database after a certain time period
* Suppose your database grows in size regularly and you have defined purge policies after every say 30 days. Verify after every 30 days when the older records are purged, how the GUI handles that. So if there is an option to see history of the data – how is the purged data being displayed?
Bug 10* – Application crashes on browsing a blank folder
* Verify accessing/browsing blank folders
* Verify your application functionality with deep folders such as 55 levels deep say C:\1\2\3\4\5\6\7\8…
* Verify your application functionality with long path length folders say C:\This is an article on test case and bugs\This is an article on test case and bugs2\...
Bug 11* – Keyboard keys defined for a particular operation do not work
* Test for hotkeys and shortcut keys
* Test for keys defined for a particular operation say in an application installer screen spacebar key would select a component. Such tests are important for accessibility standards
* Test from Localization perspective with different keyboards
Bug 12 – Application uses only the default Network Interface Card (NIC), when configured to use multiple network cards on server *
Test your application for performance and functionality on a machine with multiple NIC cards (esp. client-server applications) *
Test client can communicate with the server with any of the IP addresses of the server machine and vice-versa

Bug 13 – All services do not start automatically when a single component of the application is installed. The same services start when the entire server component of the application is installed
* Install each component of the application separately and verify services start automatically and operate correctly *
Install combination of components and verify services start automatically *
Install entire application and verify services start automatically *
Upgrade the application and verify services start automatically

Bug 14 – Files cannot be opened from read-only folder over network
* Open files from read only folders over network *
Open and save files to writable folders over network. *
Open files from folders on machines which are in different subnets/domains Note - The folders may contain different kinds of file systems like NTFS, FAT32, NFS, EFS etc

Bug 15 – The application fails to function after the operating system is upgraded *
Suppose your application runs on Windows 2000. Upgrade your Operating System to Windows 2003. Test the consistency of the application. Other scenarios: Windows 2003 – Windows 2008 Server; Windows XP – Windows Vista
v Bug 16 – Unable to retrieve client information after changing its server. Problems with client data migration from one server to another
*
Client A – Server A. Now change the Master Server of client A to Server B. Test for data migration from Server A to Server B is correct. Verify all previous data for the client is correctly displayed when viewed through Server B. Verify Client A can communicate with Server B.

Bug 17* – Typos or missing information in Message box/dialog box/Log files/Installation screens
*
Keep your eyes always open. Read the text in every message, dialog, menu, menu item, log files, Installation screens, Installation summary screen carefully. *
For screens which accept passwords ensure that the password is always in encrypted form. POST method is used while sending data for web applications
Bug 18 – Display in a newly introduced screen is garbled when the product is upgraded from previous version

*
In this scenario, say a new feature is introduced in the current release which gives the user an option to view his data in a more organized manner. Now the records created in the current version are displayed perfectly. Test when you upgrade from a previous version to the current version, how the new feature handles the data from the previous version in terms of display, consistency etc. *
Test when more data is added on top of the older data – how the new feature handles the data from the previous version in terms of display, consistency etc. *
Test that there are no duplicate records after upgrade

Bug 19 – An operation (Installation/Save records) in the application when performed by a user with required privileges (but lower than administrator) fails

*
Test your application functionality by logging in with a user having different privileges – Power User, Backup operator, Standard user etc. *
On Microsoft Windows Vista/2008 – test application functionality keeping User Account Control ( UAC ) on or off *
Test application functionality keeping firewall on or off *
Create different users with required privileges and verify application works correctly.

Bug 20 –An executable file when accessed concurrently fails *
If the executable runs from command-line with some parameters, invoke multiple instances of the executable and try to perform identical/different operations simultaneously. *
If the executable runs as User Interface (UI), try to invoke multiple instances and verify how are the multiple invocations handled *

Once multiple instances are invoked, try to perform the same set of operations from the multiple instances at the same time and verify the results to check for concurrency handling.

Full article...


Other Resource

... to read more articles, visit http://sqa.fyicenter.com/art/

Identifying Test Cases from Bug Patterns