Functional testing of online applications requires precision, great efforts and strong processes to make them work successfully. Though there has been multiple measures to make it successful, lets discuss few of those.
When we are dealing with online application which are public facing, we need to be ready for the people who will be working on different environments. One from those might be using a web application or a desktop application (hybrid) and the third might be interested in using a smartphone. This makes necessary for us to consider testing in all the supported environments and it will also be helpful in bringing up the scenarios based on the usability upon different platforms.
While testing uploads/downloads in the hybrid applications (which used both Internet and OS), some platforms might be unstable as some browser does not supports all the java and flash features for upload/download. In such scenarios, selecting a Beta release of the underlying platform in the beginning of the test cycles will help in catching the defects in the early stages of development and hence will reduce the cost of fixing them in later stages, bringing an overhead of cost
Thorough product knowledge
Requirements gathering plays an important role during testing the online apps. Since this is accessible to people around the globe, it may be accessed from N number of places by multiple peoples. To thoroughly test it, you should first gather the detailed information and perform the scenarios from every possible way to make sure that features are working as expected. Gathering a detailed product knowledge not only enhances the testers thought about the product, it also helps in identifying the latent defects in the application.
A tester with detailed product knowledge will reduce the chances of defects getting missed during the testing cycle. With his understanding he will execute every alternate way of identifying the defects from different features available for same module. In a long run this will again help in building a robust product.
Lets take the example of google docs, it has a feature of sharing the doc, if the document is being shared with let’s say 20 users located on different locations, the functionality should ensure that it is being shared with the respective users only and not with others and if others try to access using the link then restrictions should be applied on the doc, this way it is not breaching the security. Such type of testing will require detailed knowledge of the product.
Cross browser testing
using the application features like upload/download/commenting/sharing, etc might be working well on one browser but other browser might not support these features. So try to consider these issues as well which will be only possible when considering cross browser testing scenarios.
Most of the time it is noticed that the documents uploaded through online applications tends to lose their integrity when accessed after sometime or under different conditions, for such failures consider soak testing of these docs.
Lets take an example of a job portal, here candidates upload their resumes and then these are accessed by different companies, the number of resumes is a hugh data and also related to large number of users, there are many scenarios observed in which the document lost its integrity and the content in the resumes was either missing or lost its format. Scenarios like these can be easily tracked by Soak testing.
Access levels of users over data which is uploaded or edited online, should be verified every time and in every release, this will help in ensuring the security by successful working of the restrictions on accounts.
For a lawfirm, while sharing the documents within the employees os the same firm, the restrictions (read-only/write-only) should be checked on the documents, as this may lead to breach of security on the documents. So focusing on this area is important as failure to test such features will lead to a catastrophe.
Reports are the powerful tools available with online applications as they serve the purpose of detailed logging and records the various actions performed by the user. A better QA team should ensure that reports are logging the appropriate content with the required details.
Take an example of WHMCS, it has very great details in the reports generated for user action and billings. To test such application it is always advisable to replicate the production data on testing environment and get the real scenarios replicated.
Its better to start using the applications across teams within the organization and look for the various usability scenarios, by this the real time failures of features can be caught and fixed. Becoming an end user will also help in understating the usability of various feature in the application.
For products like CRM these applications can be distributed across teams and tested with various customer facing scenarios, which the end user will perform in a day to day activity. By doing this activity not only the endusers perspective is tested infact it will also help in finding defects which might not be caught during regular testing cycles.