Thursday, May 30, 2013

About Writing Test Cases



This time I'll share my experience about Test Cases. What are the motivation factors when creating TCs and how we need to write TC in long team projects.  As far as I can see our motivation is to create TCs depend on several aspects and those are as follows:

1. If we are working in a product based company we have to work with one product or related products within a long period of time. Then we are mastering that domain. Hence we try to create TCs with only the essentials and basically those are very similar to the check lists or light test cases. 

2. Process we are following in our companies is another point. If we are following waterfall method then we have lot of time to write lengthy TCs and execute. But in an Agile environment, the approach is bit differ since we have limited time space within a sprint. And also QA members are often tackle with POs, PPOs and Dev members and know all the details in and out so the motivation behind writing lengthy TCs is very low. I think we should follow linear way and do more exploratory testing.

3. Another vital thing would be the TC maintenance. Say if we have several related products and you have thousands of lengthy TCs. If there is a change in the feature etc, again all the related TCs should be updated. But it is not an easy task as you have lengthy and thorough TCs. So you need more main power and money (this is one of the main motivations behind writing linear type TCs in our customer).

4. And one of the most important factors is the project criticality. If the cost of failure in the particular project is very high (Mission critical project) you should have rigorous test cases with all the necessary details. And when there is a requirement change, there should be a very good mechanism to update those test cases though it is expensive. 

But whatever the motivation behind writing TCs I have following suggestions when writing TCs for long term projects. In this approach (filtering mechanism), we have divided our TCs to 3 categories and create separate TCs for each. So the details is as follows:

1. According to the new user story or spec, we can create TCs with all the adequate details. This is the initial TCs we are going to use. So we can say we should write a test case with 100% test coverage. Using these TCs, we can do a thorough feature test after complete the development. Furthermore, this is utmost important when testing critical applications as I said earlier.

2. Then we can write TCs for extended smoke test (So this is more filtered and light version than the first one). So in this case we can do an exploratory testing  as well while executing the TCs to fulfill the major requirement of agile. Furthermore, this category is more related to mind mapping technique (In our company, we have created a model called 'sModel' for this). 

3. And finally, we can create TCs for ready to release test (or light smoke test). So this should be a check list kind of test cases (Very simple). So final result will be test cases with major functionalities. As an example, 'Add / Edit / Delete Contact', 'Document download and read' etc. By using these, we can make sure that the application main functionalities are working as expected within a very short period of time.

Hope this will help you to create TCs for different testing stages.

Wednesday, March 6, 2013

Usability Testing Basics - Part 2



Here are some more information regarding the usability testing and tools behind the process.

In my previous post (Part 1), I have covered 'What is Usability Testing', 'Some Usability Testing Aspects' and 'Usability Testing Categories' which we are normally used when doing a usability test. So finally, I came up with three categories and now I am going to describe those categories bit:

1. Testing based on the results which generated by tools - Colour tools, content tools and browser tools, etc can be used to correct the issues regarding the application features (Mainly UI) which needs to be represent in order to cater all the user groups.

 












2. Testing based on the anonymous user data which collected by tools - These tools and techniques can be used mainly for sites such as e-commerce web sites, company sites, personal blogs, etc to capture the anonymous user data. These tools collect data from the website visitors and help mainly to understand the user interactions. User clicks, mouse movements, key strokes, form filed information,  geographic locations, different browser types, number of visits, session information, content information are the data which will be collected using these tools. These information are very vital for web applications to fine tune the application in order to give a better service to its customers and visitors.












3. Testing based on the real user participation –  This is another technique which can be used to accomplish different set of usability requirements. This technique can be categorized as moderated and  unmoderated. In moderated testing, the participant can be closely monitored and observed, and can gather vital information regarding participant’s emotional response, user satisfaction etc.
But unmoderated testing technique is used for remote users. They cannot be observed while the test is in progress. Once the usability test is created by the testers, a link is generated and the link (URL) is sent to the participant in a remote location. The participant use this link to access the test and finally get the test data.












Some usability testing tools as follows:


1. ClickTale (http://www.clicktale.com/default.aspx) - 
ClickTale is a tracking usability testing tool which captures user mouse moves, user clicks and scrolls  around a web page.

2. Google analytics (http://www.google.com/analytics/) - 
Google Analytics is an easy to use, free, and very handy usability testing tool that provides a comprehensive set of web site data tracking and analysis tools. 

3. Usabilla  (http://www.usabilla.com/) - 
Usabilla is an unmoderated remote usability testing tool that enables to collect valuable user feedback about the web site by testing new features in an early stage of development.

4. Loop 11 (http://www.loop11.com/) - 
Loop11 is also a remote usability and user experience testing tool, allowing individuals and companies to conduct unmoderated user experience testing on websites.

5. Morae (http://www.techsmith.com/morae.html) - 
Morae is a fully moderated usability testing tool that consist some features such as Record user interactions, efficiently analyze results, and instantly share your findings with anyone, anywhere.


I want to thank Tharinda Liyanage who helped me lot to write this post.


Next post (in Part 3), I’ll explain what is the process we need to have in order to carry out a successful moderated usability testing assignment.