Sunday, November 27, 2011

How to approach functional test automation?

Functional Test Automation: While testing, when a certain functionality is tested repeatedly, it is advisable to automate the test so that it can be tested efficiently, providing more test coverage. This is with respect to functional testing. But when we talk about other kinds of testing like performance testing and security testing, testing goals and mechanism to test will defer. Since I have not worked in those areas, I will not able to talk much about those in detail and would focus only on functional test automation in the below article. Along with the technical parameters, I have also incorporated few operational parameters which I thought are important for the success of the project.

But directly attacking any application would cause more harm than profit, and an structured approach towards automation will help to get a positive ROI faster. Following are the main phases which should be worked upon without diving into automation of the application directly.

- Feasibility Analysis: This is the most important phase where automatibility of the application is evaluated. There are multiple things which should be taken care of in this phase. Firstly the technology of the application must be taken into consideration. It would affect a lot on the choice of the tool taken for automation. Also  you need to see, which phase the application is currently in, and is it the time to go for automation or not. At many time you might opt for automating the application assuming the fact that it will solve your testing problems and increase testing coverage. But application might be in its development phase and might not be stable enough to be automated. So evaluating all the factors which are important before diving into automation is critical. Here are few points which can be checked in this phase:
       - Stability of the application
       - Sufficient regression cycles to get the positive ROI
       - Availability of the resources

- Tool for automation: This phase can be taken as a subordinate phase of the Feasibility Analysis phase. Based on the technology of the application different tools available for automation in the market and available skill set can be taken as a option. Then based on the budget and coverage of tool, few tools can be selected. After selection of the tool, a proof of concept exercise must be perform to conclude the feasibility study and to find out the best suited tool for automation. Following factors may be considered while talking a decision on the tool:
        - Budget of the project to choose between open source and commercial tool
        - Compatibility of the tool with the application
        - Integration with existing test management tool

- Decision on Automation Framework: After doing the feasibility analysis when the technical picture is clear about the kind of application, which needs to be automated and the tool, which would be used for its automation. It is a good idea to discuss now about the framework which can be used for automation. The selection of framework may be decided on the following factors:
        - Tools being used for automation and test management
        - Organisational policy in terms of usage of the tool
        - Available frameworks in place(in case of reuse of existing stuff)
        - Skill set of available automation engineers

- Make a plan: In this phase you need to deal with the technical as well as the tactical aspects of the project. It is the most important part of the project as it acts as the backbone of the project and all the deliverables are dependent on this. One important thing, which needs to be taken care of, is that the plan should be made in such a way that it can be referred throughout the project execution and should not be just a ritual. This would involve planning for resources, deciding on timeline, reporting mechanism, defining stakeholders etc. Following factors may be considered while making a plan for automation:
        - Framework for automation
        - Timeline of delivery
        - Resourcing
        - Reporting structure
        - Metrics for tracking progress
        - Probable risks and mitigation plan for those

- Tracking and coordination: Though I have already mentioned about tracking in the above point, I want to talk a bit more about this as I feel it is one of the most important part in success of the project, as the success of the project depends upon the coordinated team effort towards completion of the goal. A tracking mechanism ensures proper division of work among the team members, and reduces the chance of duplication of the effort. Also this would help the project managers and leads to track the progress of the project against the plan, to identify and issues, and to find a solution for the smooth delivery of the project.

- Environment management: Having a proper test environment is critical for the success of the automation. It is suggested that the team is provided with an environment, which can be used for the automation. The data required for environment to work properly should be available and properly be maintained in the environment. This data maintenance is critical with respect to automation because in its absence the tests would fail.

Though there might be more things to be considered for automating which can be added as per project requirements. Comments and suggestions are welcome :-)) 

Friday, November 4, 2011

Automating SAP portal based application


Since long time I wanted to write about the things which I have learned during my professional career. So here is it with which I start. As I work in QA area I would like to share my learning from the automation and the process front. First blog is about  few points to be considered about automating the SAP portal applications.

Along with windows based GUI interfaces SAP is now moving to the web based interfaces for its modules. When we talk about automation of these applications the most compatible tool which comes in the mind is HP-QTP. Following are some of the best practices which I feel are important before going for automation of the web base sap applications:

           1.    Stability of the application: The application should be stable before you take up any portal based           application for automation. As a matter of fact portal based applications are comparatively difficult to automate then the ECC as it is more stable.

2.     Return of Investment: Return of investment must be calculated before taking up the automation.

3.      Unique identification properties: Identify the list of properties which the automation team is going to use for the automation and standardize it across the QTP’s used.

4.      Subject matter expert (SME) support: This is one of the important aspects of this kind of automation where continuous support from the SME is required for the automation engineers to understand the functionality of the application and to work on test data required to execute the test cases.

5.     Training of the automation engineers on the functionality: It is important to train the automation engineers on the basic business scenarios which they are taking up for automation as it would help them to understand and automate the application.

6.      Communication between development team and testing team: This is very important where automation team is informed about the changes happening in the application. This helps the automation team to plan their activities properly.

7.      Framework for automation: Framework for automation needs to be thought of. QC-BPT approach is one of the most suited approaches if QC is used as a centralized place in the testing organization. Templates for the automation scripts and coding standards must be decided beforehand to avoid any discrepancies in the automation effort by the team. Along with QC-BPT SAP-TAO may be used for the consolidation of the test scripts to make the execution of the tests faster.

Here is a link to another blog post where I have posted challenges faced while automating portal based applications: http://mytechnicalperspective.blogspot.in/2013/10/automating-sap-portal-based-application.html

and you have also have a look at some generic functions which you might use while automation here: http://mytechnicalperspective.blogspot.in/search/label/Programming%20Help

Comments and feedback on the post are welcome :-))

Test Center of Excellence


"Test Center of Excellence" or TCoE is the buzzword out in the market. If we try to define it in simple terms, it a centralized group responsible for the testing operations in different projects in the organization. This group has the central pool of resources which have specialized skills(Functional testing, performance testing, test management, processes etc). In other words it is a shared testing services model for the organization's testing requirements.

For example if we think about an organization's IT department which deals with applications supporting the business. In the complete life cycle of the applications there may be frequent changes coming up, or new deployments due to changes in the existing functionality or some sort of technology upgrade which required a thorough testing of the applications before they go live. If we talk about these changes there may be situations where you do not need some dedicated team to work on a single request which may be vary small or you might need multiple skills ( functional, performance or security) at the same time to test those applications. In such kind of dynamic environments it should be good idea to have a shared pool of testing resources which can cater to such kind of requests as and when they come forward. This shared pool also decreases the problem of holding resources for longer time for a particular project even if they are not used for a long time and hence improving the utilization of the resources using a centralized testing services model.

The functions in a TCoE may be different as per the needs of the organization but the underlying principle of shared testing services across the organization remains same. Following may be the main functions in a TCoE:

1. Demand Management: This is one of the central functions of TCoE since it caters to demand from different projects for the testing services. The requirements or testing requests can be divided into different categories and then can be handled accordingly. This would handle the approval, resource identification, resource allocation and closing activities.

2. Resource Management: In this section all the resource in the TCoE who are going to work for different projects. This would be handling activities like their skills and availability related issues.

3. Knowledge Management: In this section all the deliverable, assets etc which are created during the fulfillment of the demand or project are kept for the future reference.

4. Test Processes: In this section processes in testing are maintained like test planning, test estimations, metrics to be followed etc.

5. Reporting: This is one of the most important parts of the TCoE. Since it is helpful to those who are running the TCoE at the operational level as well as to the management.

Above post is as per my understanding of TCoE, comments and feedback are welcome from the readers.