15
Automation portal for Customer-Partner businesses Sathish Nagarajan, Associate – Projects Vinoth Balasubramanian, Senior Manager – Projects Siddharth Venkatasubramanian, Associate – Projects Cognizant Technology Solutions

qaistc.comqaistc.com/.../2017/09/stc-2017_final_paper_automation…  · Web viewFaster time to market has become critical in this Digital world. ... organizational culture as

Embed Size (px)

Citation preview

Automation portal for Customer-Partner businesses

Sathish Nagarajan, Associate – Projects

Vinoth Balasubramanian, Senior Manager – Projects

Siddharth Venkatasubramanian, Associate – ProjectsCognizant Technology Solutions

AbstractFaster time to market has become critical in this Digital world. Industry is continuously experimenting with newer software delivery models and investing in technology innovations to achieve quality at speed. The success of Agile and DevOps relies on the ability to automate and eliminate manual effort. Automation has become the key success factor in Continuous Integration and Continuous Delivery. Test Automation has evolved from being just regression focused to automation across the life cycle. However, automation skills often become thebottleneck for Agile as business users lack automation knowledge. Additionally, agile requires automation scripts to be run on-demand. There is also a lack of business use-friendly tools or APIs.

The paper discusses a tool where automation scripts can be copied, executed from the UI and reports are generated instantly with a click. This portal or tool can also integrate with commonly used tools such as GIT/SVN, Jenkins/Bamboo, JIRA, etc. This tool also enables customizations such as pushing the code to GIT, scheduled execution using Jenkins, Local execution, grid execution and updating the test results with the test management tool.

Benefits:

Smooth UI with examples for easy handling Uses GIT/SVN to achieve version control and a clear code Updates results to test management tool instantly Integrates with Jenkins/Bamboo to have continuous integration Supports multithreading and integrates with Grid

Automation Portal for Customer-Partner businesses

1. Agility in Modern day business/More DevOps

Agile Development and DevOps have changed how code is built, tested, released, and supported, and changed how teams collaborate to be successful. New suites of tools were also specifically built to transform the SDLC. There is a movement away from waterfall project management — serialized code progression starting with development and then proceeding to testing, integration, quality assurance, and production.

Why business agility is important for organizations?

a) Demanding Customers Getting used to awesome experiences, customers demand convenience at their fingertips and memorable user experience

b) Competition If the organization is not meeting the high demands of modern day customers, customers will move to companies who meet their demands. Business agility is no longer a luxury, it is critical for survival. Speed and cost are now equally important and are now determining the shape of real estate portfolios

c) Benefits of DevOps With a single team composed of cross-functional members working with collaboration, DevOps organizations can deliver with maximum speed, functionality, and innovation. Technical benefits include continuous software delivery, less complexity, faster resolution of problems. Business benefits include faster delivery of features, stable operating environments, improved communication and collaboration.

d) Increased effectiveness Automated deployments and standardized production environments, key aspects of DevOps models of IT operations, make deployments predictable and free people from routine repetitive tasks to go do more creative things

2. What are the challenges QA organizations are facing in Agile/DevOps?

Developers and testers need to keep up with all the automation surrounding them: Builds, integration, and release candidate decisions and deployments are all automated. To keep pace with the rest of the pipeline, firms must automate and optimize functional testing from beginning to end, from the design and automation of test cases to their execution in the overall testing process — all integrated within the broader CI/CD automation process.

a) QA culture 

In the context of DevOps, quality requires a change in how it is being conducted. This

also implies an intense transference in the organizational culture as well. It is very

important and also challenging to think of innovative ways of identifying unique

techniques to test the software quickly and efficiently. This will enable to continuously

ensure quality while also growing and evolving the QA services provided.

b) Facilitation of qualityFrom a DevOps perspective, QA team needs to understand the business for the

system being verified. For this to happen, the QA team should partner with business

experts, including the product owner, to understand how the system being tested

needs to function in order to support the business. QA teams will be disabled if not

involved in those initial discussions. This involvement helps QA to become the

facilitator of quality.

c) CollaborationQA is the binding entity between development and operations. So, the QA team should

be involved right from the early stages of development. This will enable them to

collaborate to have software developed and supported more effectively. Also, QA

should be considered as the responsibility of the entire project team rather than the

responsibility of the dedicated QA team.

d) Early testingOne of the main objectives of testing in DevOps is early detection of defects in the

development cycle. For this to happen testing must begin very early in the cycle. QA

should begin testing with whatever code is available even if the features are not

complete. This requires a lot of maturity in documenting self-sufficient user stories that

do not depend on another for testing.

e) Build verificationAs DevOps encourages frequent builds, there is a higher possibility of code breaking

existing features.  For this reason, it is not practical to have testers do this verification

manually. It is recommended to rely on automated testing for these smoke tests.

f) Test coverageIn DevOps, there is a rush to deliver software quickly with the techniques like

continuous integration and deployment. Also, because of rapidly changing

requirements, there is a possibility to miss testing critical functions.  To overcome this

challenge, a thorough and detailed traceability of requirements to test functions should

be maintained.

3. Testing tools Adopt Open source, Adapt to Agile/DevOps And consolidate

The increase in the business agility urged the need of quick solutions in the vast technical areas. Commercial products generally limit their capabilities to a specific solution and also

have limited extendibility and connectivity to other tools/API whereas open source offers are quickly eroding the main stream. Open source software has matured to such an extent that it now influences everything from innovation to collaboration.

According to Forrester analyst, Jeffrey Hammond, 76% of developers have used some form of open-source technology. Open source enables “Putting all of the brain power together” to solve the issue which is lot more efficient than one lone programmer trying to come up with a solution on his own. It brings people together to share creative ideas and collaborate, experiment with your practical ideas, and create a global community for everyone to work together.

Why Selenium???

As the most “talk of the town” tool in open source test automation space, Selenium has an edge and at present the most powerful Open Source Automation tool available. Based on java scripting to a large extent, it is more suited for the agile methodology of coding and testing.

a) Selenium supports many languages such as Java, C#, ruby, python and even pure JavaScript

b) Best Tool for web-based automation and supports all browsers such as IE, FF, Chrome, Safari etc

c) Selenium can integrate with just about anything to give you a robust framework such as Maven or Ant for source code compilation, Test NG to drive tests (unit or functional or integration), Jenkins or Hudson or Cruise Control to integrate into a Continuous Integration and different reports or dashboards out of Jenkins.

d) Selenium also helps you enter bugs or issues into JIRA (Bug management tool) through Jenkins

e) With the help of Jenkins or Grid, testers can connect multiple nodes to run different tests in parallel

f) Cost is the biggest advantage as it is a freeware and is integrated with other open source tools

There is no one-size-fits-all tool for automated testing. It is highly recommended that testers evaluate various tools in order to select what would best meet their automated testing needs. Programming languages and technologies used to develop software continue to evolve, as do the automated testing tools, making cost a significant factor in tool selection.

Features Selenium UFT (QTP) TestComplete

Test development platform Cross-platform Windows Windows

Application under test Web apps Windows desktop, Web, mobile

appsWindows desktop, Web, mobile

apps

Scripting languages Java, C#, Perl, Python, JavaScript, Ruby, PHP VBScript JavaScript, Python, VBScript,

JScript, Delphi, C++ and C#

Programming skills Advanced skills needed to integrate various tools

Not required. Recommended for advanced test scripts

Not required. Recommended for advanced test scripts

Learning curves High Medium Medium

Ease of installation and use

Require installing and integrating various tools Easy to setup and run Easy to setup and run

Script creation time Slow Quick Quick

Object storage and maintenance XPath, UI Maps Built-in object repository, smart

object detection and correctionBuilt-in object repository,

detecting common objects

Image-based testing Require installing additional libraries

Built-in support, image-based object recognition Built-in support

Continuous integrations

Various CI tools (e.g. Jenkins, Cruise Control)

Various CI tools (e.g. Jenkins, HP Quality Center)

Various CI tools (e.g. Jenkins, HP Quality Center)

Product support Open source community Dedicated staff, community Dedicated staff, community

License type Open source (Apache 2.0) Proprietary Proprietary

Cost Free License and maintenance fees License and maintenance fees

4. What is the need for this portal?

Five Years back most of the customers widely used Quality Center as the Test Management tool. However, as we see the trend of industry moving more towards open source there is need of moving to selenium web driver. Since selenium is API it doesn’t come with any UI and integrated with any execution module where the business stake holders, product managers widely look at the status. Idea of building such execution portal trigger as the business owners have such requirement.

Test Automation is the key to improve test effectiveness and ROI. Test Automation execution is usually done only by skilled professionals since

1. All stakeholders (Product Owner, Business Analyst, Contractors, Manual testing team) do not have adequate knowledge on the IDE used for test automation script creation

2. Automation scripts are created or updated based on requirement changes and number of test automation scripts may increase release on release hence stakeholders need to pull the latest scripts from GIT repository for test execution

3. Batch file execution can be done only for stagnant application where requirement changes are infrequent or minimal, batch file needs to be created or updated periodically based on changes made in test automation scripts which is not suitable for projects operating in Agile model

How to overcome it?

Test automation execution should be accessible amongst the broadest possible user-base. Any project stakeholder should be able to check the application health status, conduct comprehensive testing within stipulated time frame. Execution portal development will be the solution to this.

A portal where latest automation scripts will be loaded from GIT repository and stakeholder can select the test scripts to be executed in an interactive GUI, is developed which helps in:

1. Verifying application functionalities without dependency on automation team2. Selecting test environment and browser in which application needs to be tested3. Enabling cross browser testing4. Leveraging this portal with distributed agile teams when teams are located at different

geographies, working on different time zones5. Reporting the test results after test execution gets completed

Reporting mechanism

Most reports today use some form of data visualization because it is often too difficult to understand tabular data after you reach a certain number of rows and columns. In the context of reports, the main goal of data visualization is to use charts and graphs to explain the test execution status.

Customized reports are generated similar to Ext JS report which gives a bird’s eye view of overall application health status. Both grids and charts displayed in the portal are updated automatically based on the test results.

5. Automation Portal - Solution Architecture

Solution is implemented focused on easy and simple UI so that stake holders without much technical knowledge can also execute automation test scripts.

Technology used to build the execution Portal:

Technology

UI Design JSP, HTML, Boot Strap, CSSVersioning GIT

We have used Java and JSP extensively for back end operations of the portal, while HTML, CSS and Bootstrap were used for the Front-end. When user clicks any button corresponding JSP will be called. We have written some java methods too to read from excel, read the

property values as configurations. Whole execution is based on the configuration values which is given in the text file.

Work flow of execution portal

UI Page Key Actions Screen shots/Demo

Home Page

User either should upload property files or they can proceed without uploading property file.

User will land on Home page after property file upload page.

In Home page, User will have two option GitHub Repository and Local Repository

GitHub Repository

In GitHub Repository Page, User have three options Git Clone, Git Push and Git Pull.

Git Clone – User have the ability to clone directly from GitHub repository by providing the URL.

Git Push – User have can push the updated code to GitHub

Git Pull – User can pull the existing code from GitHub repository

Once the user has performed above operation it will get navigate to the Local Repository page.

Local Repository

User either can upload excel sheet which has list of test scripts details or manually provide the local folder path where scripts are presents.

User can select the option whether need to execute on multiple browser (Chrome, Firefox, IE) or default browser (browser defined in script)

User will land on Test Execution selection page with or without browser selection page.

Execution User need to select the required scripts for execution and need to provide the below details

1. Project Path2. Project_Lib_Path3. Java_Bin_Path

User can select Git Execution or Local execution option based on the project type.

Execution will begin successfully

Report Once after execution was complete it will get automatically navigate to the Default TestNG report page. (Will have the option to display customized report too like Extent, ReportNG)

6. Possible expansion of this solution

1. Portal will be enhanced to capture the objects of the AUT2. Scriptless Automation can be achieved so that the Non-Automation engineers will be

able to script the functional flow and push that in GIT3. Can include the option to execute Performance, Security and Accessibility related

script4. Portal should have the option to trigger the mail and send the execution report status

to the appropriate stake holders.

Conclusion

In today’s scenario where duration of release cycles have shrunk exponentially, the need of the hour is continuous testing which aids in continuous integration and deployment. Automation has a larger role to play viz. reducing the test cycle time, enabling early defect detection and ensuring that the product meets required quality standards. One of the challenges that development and product teams face today is to get an automation suite that is robust, low on maintenance and truly enables continuous integration with a single click. This paper presents an Automation portal that helps everyone to execute scripts with a single click, hence minimising manual intervention and technical dependency. Upon full scale implementation, such an automation portal will accomplish the above mentioned objectives of automation.

References & Appendix http://www.gartner.com/smarterwithgartner/gartners-top-10-technology-trends-2017/ https://go.forrester.com/blogs/16-11-01-2017_predictions_mobile_is_the_face_of_digital/ https://www.forbes.com/sites/gilpress/2015/12/06/6-predictions-about-the-future-of-digital-

transformation/#45903bc31102 Industry 4.0: Building the digital enterprise – PwC 2017 Predictions: Dynamics That Will Shape The Future In The Age Of The Customer World Economic Forum White Paper Digital Transformation of Industries IDC FutureScape: Worldwide IT Industry 2017 Predictions

Author Biography

Vinoth Balasubramanian - Vinoth has 15 years of experience with Software Testing and Quality Assurance and has played roles such as Test Program Manager, Quality Consultant, and Transformation Consultant. Vinoth has a strong expertise in Test Automation, Test Delivery, Test Process Maturity consulting, defining and delivering Quality Transformation programs and enabling enterprises to improve quality, optimize cost and time to market. Vinoth has extensive work experience on agile projects and expert in especially SCRUM & Kanban models; He has planned and executed large scale Agile Transformation for strategic customers. Vinoth holds a Master’s Degree in Computer Applications.

Sathish Nagarajan - Sathish has 8.5 years of experience with Software Testing and Quality Assurance and has played roles such as Test Lead, and Transformation Consultant. Satish has a strong expertise in Test Automation, Test Delivery, defining and delivering Quality Transformation programs and enabling enterprises to improve quality, optimize cost and time to market. Sathish has extensive work experience on agile projects and expert in especially SCRUM model. Sathish holds a Master’s Degree in Software Systems.

Siddharth Venkatasubramanian - Siddharth has 7.5 years of experience with Software Testing and Quality Assurance and has played roles such as Test Lead and Transformation Consultant. Siddharth has a strong expertise in Test Automation and Test Delivery defining and delivering Quality Transformation programs and enabling enterprises optimize cost and time to market. Siddharth has extensive work experience on agile and waterfall projects and expert in especially SCRUM & Kanban models. Siddharth holds a Master’s Degree in Information Technology.

THANK YOU!