The client is one of the world’s largest scientific society and one of the world’s leading sources of authoritative scientific information. As a non-profit organisation, they are a leading STM publisher catering to chemists, chemical engineers and related professions around the globe.
The application under Test consisted of a configurable personal dashboard for the user of a global website supporting scientists to publish their journals and access various other documents. This website also supports the RSS feed widget, publication search, sciFinder, published articles, access to manuscripts, video player, JACS Image challenge, molecule of the week, event calendar and membership functionalities. This dashboard is an interface to the website subscribers from all over the world as well as internal departments to have a common screen to share the journals and other latest information. The application functionality allows the user to create the personal dashboard from a set of pre-defined widgets. These widgets can be re-sized and dragged, dropped and placed at desired locations. There was a business rule specifying the drag and drop within the 2-column container or 1-column container. Additionally, widgets in the 2-column container may not be moved to 1-column container and viceversa. The application operating environment used Red Hat 4.1.2-51 with JBoss enterprise platform 5.1.0 and Oracle 11gR2 RAC.
Testing Challenges & Solution
Having understood the context of the requirement and the functionality in detail, a test strategy document was prepared to define the testing approach. Functional testing was a huge challenge, because of several permutation combinations amongst the various elements of the dashboard. The key challenge of combination testing is finding a sensible test selection approach that limits the number of tests but can be reasonably expected to expose most of the available bugs. We selected combinations of the commonly used key widgets used by each of the stakeholder category. Functional test cases were formulated and executed around this premise. Similar strategy was used for non-functional cross browser testing, where combination of most commonly used browsers operating system combination was used. Performance testing was conducted using LoadRunner.
• The widgets on the dashboard posed a major scripting challenge. Because of the asynchronous nature of application, widgets were getting refreshed after a certain interval; also it was essential to verify the browser rendering time. Two different scripts were created for same business process, both for the transport layer and for the GUI. Scenarios were designed to generate required load with minimum resource, measuring the browser response times.
• High memory usage of the RSS widget was identified during the testing. Eclipse MAT and JProfiler tools were used to analyse the memory heaps. RSS widgets were consuming more memory, as parsed RSS feed details were being maintained in session.
• After optimising the RSS widget to share the RSS feed objects, the test showed reduction in memory utilisation from 15 GB to 5 GB per node with the average response within the 5 second limit for 625 simultaneous users per node. Hence, with four nodes in the production environment, the application could support 2,500 simultaneous users as required.