Who am I? ● Catalin Comanici ● QA for 10 years, doing test automation for about 6 years ● fun guy and rock star wannabe.

Slides:



Advertisements
Similar presentations
3 Copyright © 2005, Oracle. All rights reserved. Designing J2EE Applications.
Advertisements

Designing Reusable Frameworks for Test Automation
PREDICT Model for Test Automation. Does it sound familiar to you? Organization has procured test automation tools Management expectations are high Multiple.
Apache Struts Technology
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
There is an A for everything Theoretical side of things Definitions Vocab ISTQB Good practices Things to remember Lessons to learn Practical (realistic.
SWE 316: Software Design and Architecture
Apache Struts Technology A MVC Framework for Java Web Applications.
TimeTracker 2, Take 1  Servlets Web Interface (jsp) Servlet (business logic and processing) App Engine Datastore Form Submit R/W.
Session-01. Layers Struts 2 Framework The struts 2 framework is used to develop MVC-based web application. Struts 1.0 was released in June The.
Business Process Management: The Third Wave The Next 50 Years of IT.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
Cognizant Reusable Automation Framework for Testing C.R.A.F.T.
Oakkar Fall The Need for Decision Engine Automate business processes Implement complex business decision logic Separation of rules and process Business.
N-Tier Architecture.
Software Development Architectures Ankur K. Rajopadhye Louisiana Tech University.
UNIT-V The MVC architecture and Struts Framework.
Business Flow Modeller (BFM) Simplify and standardize your business processes across the project lifecycle.
MVC pattern and implementation in java
Joel Bapaga on Web Design Strategies Technologies Commercial Value.
Christopher Jeffers August 2012
5/5/2005Toni Räikkönen Internet based data collection from enterprises using XML questionnaires and XCola engine CoRD Meeting May 11th 2005.
MVC and MVP. References enter.html enter.html
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
Thank You ©2012, Cognizant. Rapido has been created by the Research and Development team from QE&A Technology CoE Rapido is continuously enhanced and.
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
1 Another group of Patterns Architectural Patterns.
CSE 219 Computer Science III Program Design Principles.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
MVC Design Pattern Web Developer at Crimshield, Inc Application Developer at IBM Present - Delta Developer at Tides.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
MVC Greg Phelps Trent Spangler. AGENDA  What is MVC  Web Forms vs MVC  Example  Learn More!
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Model View Controller Architecture of Java Web Applications Dr. M V S Peri Sastry, Ph.D.[BITS-Pilani]
Model View Controller MVC Web Software Architecture.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
ANDROID AND MODEL / VIEW / CONTROLLER. Slide 2 Design Patters Common solutions to programming problems are called design patterns Design patterns are.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Chapter 1 Revealed Distributed Objects Design Concepts CSLA.
SEA Side – Extreme Programming 1 SEA Side Software Engineering Annotations Architectural Patterns Professor Sara Stoecklin Director of Software Engineering-
CSC 2720 Building Web Applications Basic Frameworks for Building Dynamic Web Sites / Web Applications.
Lecture Model View Controller s/w architecture AND general tips on structuring classes.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
ASP.NET MVC An Introduction. What is MVC The Model-View-Controller (MVC) is an architectural pattern separates an application into three main components:
New Automation Strategy for Verizon Kushan Athukorala.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
SDJ INFOSOFT PVT. LTD. 2 BROWSERBROWSER JSP JavaBean DB Req Res Application Layer Enterprise server/Data Sources.
Apache Struts Technology A MVC Framework for Java Web Applications.
High degree of user interaction Interactive Systems: Model View Controller Presentation-abstraction-control.
Presented by Alexey Vedishchev Developing Web-applications with Grails framework American University of Nigeria, 2016 Intro To MVC Architecture.
PHP + Framework + MVC. What is Framework? Common code - Generic functionality Extensible - Specific functionality Unlike library – Flow Dictated.
Imposing MVC design sample in.NET. Design patterns are very useful to solve complex design issues if used well. The primary concept of the Model View.
J2EE Platform Overview (Application Architecture)
N-Tier Architecture.
Understanding SOAP and REST calls The types of web service requests
Stable and reliable Web Automation
Software Design and Architecture
Haritha Dasari Josue Balandrano Coronel -
Advantages OF BDD Testing
Design and Maintenance of Web Applications in J2EE
Model-View-Controller Patterns and Frameworks
Lecture 1: Multi-tier Architecture Overview
Designing For Testability
Presentation transcript:

Who am I? ● Catalin Comanici ● QA for 10 years, doing test automation for about 6 years ● fun guy and rock star wannabe

Agenda ●What is Model View Controller (MVC)? ●Common approaches and frameworks ●How can we use it? 3

What this is not ●this is not a silver bullet ●this might not work for all projects ●I have not built a complete framework around this approach YET 4

What is MVC Design pattern separating: ●logic ●data ●view into different components 6

View Submits user actions and user data to Controller Controller Submits data to Model Returns data from Model to View Model Persists data in databases Returns data to Controller

Model ●provides business objects to controller ●data access is uniform regardless of the data source ●if data source or the way data is stored changes, it requires changing only this layer 8

View ●submits actions to Controller ●presents the model in a user friendly way ●usually called UI, GUI … 9

Controler ●links User, View and Model ●responds to user input ●has no implication in business logic but mostly handles application flow 10

Benefits ●clear separation of layers ●code reusability ●enables parallel development and developer specialization 11

Disadvantages ●increased complexity ●not suitable for small applications 12

Record and playback

Pros: ●easy setup ●rapid development Cons: ●not easy to customize ●not easy maintain ●some workflows cannot be automated 15

Script Modularity Framework

Pros: ●cost efficient maintenance ●scalable ●changes easily integrated Cons: ●sharing data between scripts is challenging ●test data duplicated 17

Test Library Architecture

Pros: ●low cost efficient maintenance and scalability ●great degree of reusability Cons: ●data lives in the test scripts ●library can grow to be complicated 19

Keyword-Driven

Pros: ●reduced number of test scripts ●keywords are highly reusable ●Increases flexibility and maintainability Cons: ●high degree of programming knowledge ●becomes complicated gradually ●process is complex 21

Why change? Because: ●we write rigid tests ●tests depend on lengthy setup ●maintenance costs can be high 22

How can we use it? Implement the best bits: ●clear separation of concerns ●one layer to share data across our tests ●create reusable components 24

Data layer (MODEL) ●one layer to store data and share across all tests ●uniform structure for simple reuse ●aggregate data from setup methods and other tests 25

User interaction layer (View) ●simulates users interaction ●also contains page objects ●submits actions to controller 26

Test layer (Controller) ●contains all test assertion ●decides assertions based on context and data ●is called by the user interaction layer 27

28

Test commenting form

30 function testCommentingForm (languageCode){ page.open(languageCode); controller.isPageLoaded(); page.clickAddComment(); controller.isCommentFormOpen(languageCode); page.addComment(”Test”); controller.isSuccessMessVisible(); }

31 function isCommentFormOpen(languageCode){ if(languageCode == ‘us’){ assertEquals( page.getNameFieldText(), data.getNameFieldTextValue(‘us’)); … } else{ assertEquals( page.getNameFieldText(), data.getNameFieldTextValue(‘ro’)); … }

Benefits ●clear separation of layers ●enables parallel development ●multiple asserts on each step 32

Disadvantages ●if one assert fails, all the tests in that script fail ●requires coding discipline ●coding knowledge above average 33

Solutions Design patterns: ●MVC ●Observer pattern Frameworks: ●Spring ●Google Guice 34