ABHISHEK SHARMA ARVIND SRINIVASA BABU HEMANT PRASAD 08-OCT-2018

Slides:



Advertisements
Similar presentations
Requirements for a UI Test Framework Stanislaw Wozniak Bernie Miles.
Advertisements

Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Validata TestCloud ™ The end of testing as we know it!
Alternate Software Development Methodologies
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
Introduction to Software Testing
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
Model Bank Testing Accelerators “Ready-to-use” test scenarios to reduce effort, time and money.
Teaching material for a course in Software Project Management & Software Engineering – part II.
& Dev Ops. Sherwin-Williams & DevOps Introduction to Sherwin-Williams.
Testing Workflow In the Unified Process and Agile/Scrum processes.
MERCURY BUSINESS PROCESS TESTING. AGENDA  Objective  What is Business Process Testing  Business Components  Defining Requirements  Creation of Business.
1 Performance Optimization In QTP Execution Over Video Automation Testing Speaker : Krishnesh Sasiyuthaman Nair Date : 10/05/2012.
Software Testing and Quality Assurance Software Quality Assurance 1.
DB2 Universal Database Confidential | July 2012 | India Software Lab Click to add text © 2012 IBM Corporation An End to End Windows Automation Framework.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer, Progress Sonic.
Framework for MDO Studies Amitay Isaacs Center for Aerospace System Design and Engineering IIT Bombay.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
Case Study of Agile Development Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Tools and technology usage in PFMS application lifecycle management process LEPL Financial-Analytical Service, Ministry of Finance October, 2015 Dimitri.
KRISHNACHANDER KALIYAPERUMAL PROJECT MANAGER
CSE 219 Final exam review.
Methodologies and Algorithms
Software Testing.
Continuous Delivery- Complete Guide
Constructing Deploying and Maintaining Enterprise Systems
CIM Modeling for E&U - (Short Version)
N-Tier Architecture.
Infrastructure Orchestration to Optimize Testing
Software Testing.
Self Healing and Dynamic Construction Framework:
Владимир Гусаров Директор R&D, Dell Visual Studio ALM MVP ALM Ranger
aBAP – NextGen QA Delivery Gear
4th Forum How to easily offer your application as a self-service template by using OpenShift and GitLab-CI 4th Forum Alberto.
Configuration Management with Azure Automation DSC
SENIOR MANAGER - SOFTWARE TESTING PRACTICE
Top Reasons to Choose Angular. Angular is well known for developing robust and adaptable Single Page Applications (SPA). The Application structure is.
Continuous Performance Engineering
Quantifying Quality in DevOps
X in [Integration, Delivery, Deployment]
Continuous Automated Chatbot Testing
Introduction to Software Testing
Supporting Continuous Integration in Embedded Software
Model-View-Controller Patterns and Frameworks
Component-Based Software Engineering
Simplified Development Toolkit
Automated Testing and Integration with CI Tool
Software Test Automation and Tools
CS240: Advanced Programming Concepts
Chapter 3 – Agile Software Development
Quality Assurance in an Agile Development Team Michelle Wu 2018 PNSQC
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Practical Software Engineering
JOINED AT THE HIP: DEVSECOPS AND CLOUD-BASED ASSETS
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Applying Use Cases (Chapters 25,26)
Modern data architecture at scale in the cloud : Best practices of Serverless, lambda and microservices architecture Prakriteswar Santikary, PhD Vice President.
Office 365 Development July 2014.
DBOS DecisionBrain Optimization Server
SSDT, Docker, and (Azure) DevOps
Session Abstract This session will provide an overview of the latest improvements and enhancements made to the Ed-Fi ODS/API in 2016, as well as a preview.
Chapter 2: Building a System
ONAP Architecture Principle Review
Software Testing Strategies
SSDT, Docker, and (Azure) DevOps
Samir Behara, Senior Developer, EBSCO
From Single Test to Test Framework With Rapise
Presentation transcript:

ABHISHEK SHARMA ARVIND SRINIVASA BABU HEMANT PRASAD 08-OCT-2018 SOFTWARE QUALITY CONFERENCE PACIFIC NW Structure, Design, Extensibility and User Experience - Foundations for an Automation Framework ABHISHEK SHARMA ARVIND SRINIVASA BABU HEMANT PRASAD 08-OCT-2018 PNSQC ™

Agenda The Challenges of Automating “LEGACY” code. Foundation for an Automation Framework. Design Structure Extensibility User Experience How to apply SDEU

SOFTWARE QUALITY CONFERENCE Introduction PACIFIC NW Over several years, automation has taken center stage in the domain of Software Quality as it drives faster delivery with highest quality confidence. Our team works on a native application that is deployed on tens of millions of machines worldwide. Frequent release commitments, new features and the agile process, stresses our need to increasingly speed up our validation process and our use of automation. Over the course of the past decade, we developed couple of frameworks focused on features, services, or just simply automating our test suites. This worked well in the short-term but was unable to scale with our validation processes, which grew with every feature and release. This Presentation will highlight some of our pitfalls and how we overcame them by structuring our automation suite, segregating design, test suites, and considering the user experience in adding new test cases and extending the framework itself. PNSQC ™

SOFTWARE QUALITY CONFERENCE What is automation ? PACIFIC NW Automation[1] is the task of repeatedly performing a set of actions without any manual intervention. Automated testing is the principle in which the validation of software modules is performed automatically as new code changes are introduced in the software. 1. Test Automation : https://en.wikipedia.org/wiki/Test_automation PNSQC ™

The Challenges of Automating “LEGACY” code SOFTWARE QUALITY CONFERENCE The Challenges of Automating “LEGACY” code PACIFIC NW Tools Automation Development Design Code Structure Software Builds Backwards compatibility PNSQC ™

The Challenges of Automating “LEGACY” code SOFTWARE QUALITY CONFERENCE The Challenges of Automating “LEGACY” code PACIFIC NW Tools PNSQC ™

Automation Development Automated test code 5 Automated test code 10 Automated test code 15 Automated test code 20 Automated test code 4 Automated test code 9 Automated test code 14 Automated test code 19 Code Piece 5 Code Piece 10 Code Piece 15 Automated test code 3 Automated test code 8 Automated test code 13 Automated test code 18 Code Piece 4 Code Piece 9 Code Piece 14 Automated test code 2 Automated test code 7 Automated test code 12 Automated test code 17 Automated test code 1 Automated test code 6 Automated test code 11 Automated test code 16 Code Piece 3 Code Piece 8 Code Piece 13 Code Piece 2 Code Piece 7 Code Piece 12 The Challenges of Automating “LEGACY” code SOFTWARE QUALITY CONFERENCE Code Piece 1 Code Piece 6 Code Piece 11 PACIFIC NW Automated test code 25 Automated test code 24 Automation Development Automated test code 23 No proper process and maintenance, Automation code become non-reusable to more modern features and cannot support legacy features Automated test code22 Automated test code 21 Automated test code 30 Automated test code 29 Automated test code 28 Automated test code 27 Automated test code PNSQC ™

The Challenges of Automating “LEGACY” code Design Lack of design in Automation framework and short-term solutions may causes long term problems in maintaining the automation code. Code Structure Never combine framework code with test code.

The Challenges of Automating “LEGACY” code Software Builds Automation requires a formal build to get trigger, because of that automation results takes time. Backward Compatibility The automation framework without versioning results in breaking older version validations due to addition of new code to support new/modified features. For example: Product 4.0.0 should be validated with Automation 4.0.0 : PASS Product code 2.0.0 validation with Automation 4.0.0 : Fail

Foundation for an Automation Framework SOFTWARE QUALITY CONFERENCE Foundation for an Automation Framework PACIFIC NW Design Structure Extensibility User Experience PNSQC ™

Design of an Automation Framework SOFTWARE QUALITY CONFERENCE Design of an Automation Framework PACIFIC NW Modular design Abstraction of test tools Integration with CI tools ex. Teamcity Capability to handle Test cases and Test scenarios Easily expendable Adoptability for new technologies/Languages PNSQC ™

Structure of an Automation Framework (S) SOFTWARE QUALITY CONFERENCE Structure of an Automation Framework (S) PACIFIC NW Never combine product test cases with framework code. Apply versioning to your framework so that users know exactly which version of framework has what capabilities. Define packages (if applicable) to organize your framework code. Monolithic framework requires high maintenance. Maintain separate repository for your product test case automation code, if possible in the same branch as where the product development happens. Identify product features and their interdependencies and model your product test cases to mirror the dependency matrix of the features. PNSQC ™

Extensibility of an Automation Framework (E) SOFTWARE QUALITY CONFERENCE Extensibility of an Automation Framework (E) PACIFIC NW A framework that is designed to be rigid will ultimately solve the short-term problem but will fail on the long-term. Capability to add new features to framework. Capability to add new product test cases. Complex reporting mechanism on success and failures. Adoptable for new tools, technologies and scripting languages. Minimizing the effort of rewriting product test cases. Easy to migrate or upgrade on new tools. PNSQC ™

SOFTWARE QUALITY CONFERENCE User Experience (U) PACIFIC NW User profiles will have different expectation when using the automation framework. Automation Framework Developer Test Case Automation Developer Product Developer PNSQC ™

Automation Framework Developer SOFTWARE QUALITY CONFERENCE Automation Framework Developer PACIFIC NW Primarily responsible to add or maintain the framework and provide integration and reporting mechanism for other types of users. Ease of maintainability of framework codebase. Ease of addition or removal of feature support. Ease of addition or removal of external tools. Abstraction of product test cases from framework codebase. Versioned framework releases to track and maintain framework capabilities. PNSQC ™

Test Case Automation Developer SOFTWARE QUALITY CONFERENCE Test Case Automation Developer PACIFIC NW The predominant user of an Automation Framework would be the product’s test case automation developer. Ease of integrating test cases into automation framework. Platform agnostic way to acquire infrastructure resources to perform validation. Ability to write automation code that is coherent with the manual test case execution workflow. Framework that allows multiple technologies or architectures when automating different features. PNSQC ™

Faster results of unit tests. SOFTWARE QUALITY CONFERENCE Product Developer PACIFIC NW A good automation framework experience for a product developer would be Faster results of unit tests. Faster results of product feature validation. Faster results of end-to-end testing. PNSQC ™

Faster results of unit tests. SOFTWARE QUALITY CONFERENCE Product Developer PACIFIC NW The product developer is primarily the initiator of new product features and their inputs might be essential in adding new framework features to support automation of test cases. Faster results of unit tests. Faster results of product feature validation. Faster results of end-to-end testing. PNSQC ™

How to apply SDEU philosophy to non-server technologies ? SOFTWARE QUALITY CONFERENCE PACIFIC NW How to apply SDEU philosophy to non-server technologies ? SDEU stands for Structure, Design Extensibility and User experience PNSQC ™

Identify the structure of the framework SOFTWARE QUALITY CONFERENCE PACIFIC NW Identify the structure of the framework Gather the infrastructure requirements to perform validation of your product. Design the framework for reusability. Make components for your framework that can be re-used everywhere. Identify your Continuous Integration (CI) pipeline and how to fit your automation to make Continuous Delivery (CD) of your product. Define an integration mechanism to allow automation engineers to seamlessly automate their product. PNSQC ™

Differentiate test cases from the framework itself SOFTWARE QUALITY CONFERENCE PACIFIC NW Differentiate test cases from the framework itself Never combine the automation framework with product test cases. The framework needs to be agnostic of the product to maximize reusability. A product test case will entirely focus on the product, whereas the framework would abstract the complexity of management of underlying tools. Maintain versioning of the framework to facilitate addition of features and updating of tools as and when necessary. PNSQC ™

Optimizing build process SOFTWARE QUALITY CONFERENCE PACIFIC NW Optimizing build process Sequential building process debug and release. Resolve dependency on different components. PNSQC ™

Segregating white box, grey box and black box testable code base

The business logic should be gray box tested. SOFTWARE QUALITY CONFERENCE PACIFIC NW Identify areas of code like utilities or helper modules that can be unit tested independently of the product’s core business logic. The business logic should be gray box tested. The end-to-end system verifications tests, or integration tests of our product from deployment to uninstallation falls under black box testing. PNSQC ™

SOFTWARE QUALITY CONFERENCE Keep Unit Tests simple PACIFIC NW PNSQC ™

Identify tools for grey box and black box testing SOFTWARE QUALITY CONFERENCE PACIFIC NW Identify tools for grey box and black box testing A single tool or script might never solve automation efforts for all features. The design of our automation framework should be accommodating in including different tools and provide a seamless switch between different tools and help in configuring them. PNSQC ™

Defining pipelines for components and features of the product SOFTWARE QUALITY CONFERENCE PACIFIC NW Defining pipelines for components and features of the product PNSQC ™

Defining end-to-end automation pipeline SOFTWARE QUALITY CONFERENCE Defining end-to-end automation pipeline PACIFIC NW PNSQC ™

SDEU in non-server technologies SOFTWARE QUALITY CONFERENCE SDEU in non-server technologies PACIFIC NW Identify the structure of the framework Differentiate test cases from the framework itself Optimizing build process Segregating white box, grey box and black box testable code base Keep Unit Tests simple Identify tools for grey box and black box testing Defining pipelines for components and features of the product Defining end-to-end automation pipeline PNSQC ™

Reference Arvind Srinivasa Babu Abhishek Sharma SOFTWARE QUALITY CONFERENCE PACIFIC NW Arvind Srinivasa Babu linkedin.com/in/arvindsbabu Abhishek Sharma linkedin.com/in/abhishek-sharma-b2082711 PNSQC ™