Simplifying Development and Testing of GUIs with SAF (JSR 296) and FEST. Michael Hüttermann Training & Consulting Alex Ruiz Oracle Corporation
|
|
- Randolph Evans
- 6 years ago
- Views:
Transcription
1 Simplifying Development and Testing of GUIs with SAF (JSR 296) and FEST Michael Hüttermann Training & Consulting Alex Ruiz Oracle Corporation
2 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing is hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
3 About us Alex Ruiz Senior Engineer at Oracle Founder and major contributor of FEST Father ;-) Michael Hüttermann Self-employed consultant on Java TM /JEE, SCM/ALM, SDLC tooling and agile development Speaker at conferences, author of books and articles Stage producer of Agile 2009's Tools for Agility track
4 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing is hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
5 Why do we need a Swing framework? Swing: powerful but difficult Swing has been available for many years It is very powerful and very complex Too easy to do things wrong and get away with it Too many possible paths: scares beginners Developers should focus on the application domain, not on the architecture Need a standard way to develop Swing UIs All bigger projects do write an own framework
6 Why do we need a Swing framework? Swing is too difficult for beginners Easy to adopt bad practices: application is a JFrame Internationalization Performance Organization of event listeners Much boiler plate code Development is error prone Patterns and architecture do matter!
7 Why do we need a Swing framework? Even experienced developers can get it wrong The most common: violations of Event Dispatch Thread (EDT) access Incorrect division of responsibilities: classes that perform logic are event listeners at the same time Pretty long kick-off time, not "straight ahead" Why only web frameworks? Many more!
8 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing is hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
9 Introducing the Swing Application Framework (SAF) Provides a simple application framework for Swing applications Not intended to cover all needs of applications JSR 296 Reference implementation in java.net To be included in Java 7 (or not?) Not intended to compete with Netbeans RCP or Eclipse RCP Easy to learn: no more than a day
10 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
11 SAF Features Application Lifecycle and common services Defines application lifecycle: startup, shutdown, etc. EDT-safe: o Application constructed in EDT o Application started in EDT Startup progress reported by standard milestones UI component (event) handling Basic session persistance Threading
12 SAF Features Application is not a JFrame anymore Developers only need to extend Application or a subclass, and override appropriate lifecycle methods: class MyApp extends Application { protected void startup(string[] args) { JFrame frame = new JFrame("My App"); frame.add(new JLabel("Hello World!")); frame.pack(); frame.setvisible(true); } public static void main(string[] args) { Application.launch(MyApp.class, args); } }
13 SAF Features Application is not a JFrame anymore Extend SingleFrameApplication for an application with a primary JFrame: class MyApp extends SingleFrameApplication { protected void startup(string[] args) { JPanel panel = new JPanel(new BorderLayout()); panel.add(acomponent, BorderLayout.NORTH); show(panel); } public static void main(string[] args) { Application.launch(MyApp.class, args); } }
14 SAF Features Component Resource Injection Set component properties whose names match a resource name Inject just one component, or all components in a hierarchy Resource names must match: component.getname() +.propertyname Converts Strings to correct type (e.g. icon) Uses good old ResourceBundle (*.properties files)
15 SAF Features Field Resource Injection Icon valued fields initialized from a ResourceMap: public class Form extends JPanel Icon Icon readyicon; void showstatus(boolean busy) { mylabel.seticon(busy? busyicon : readyicon); } Form() { Application app = Application.getInstance(); ResourceMap r = app.getcontext().getresourcemap(form.class); r.injectfields(this); } } ResourceBundle properties File: # resources/form.properties ResourceBundle Form.busyIcon = busy-icon.png Form.readyIcon = ready-icon.png
16 SAF Features Actions Plain old Swing world: o Actions implement Action or extend AbstractAction o Semantics: actionperformed(), enabled, selected o ActionMap maps names to actions
17 SAF Features Actions (II) With SAF: o Actions are simply annotated one per actionperformed o They can also be asynchronous or block facets o One class can define many actions class MyActions void newfile() {... void fileopened(actionevent e) {... } }
18 SAF Features Actions (III) Asynchronous actions return a Task<?,?> savefile() { return new MyTask(); } Task extends SwingWorker Overwrite methods like doinbackground()
19 SAF Features Actions (IV) Blocking actions have five scopes: NONE, ACTION, WINDOW, COMPONENT, Blocks the facet Provides basic functionality like blocking dialogs
20 SAF Features Action Maps Create an Action for ActionMap amap = getcontext().getactionmap() cutbutton.setaction(amap.get("cut")); copybutton.setaction(amap.get("copy")); Action attributes come from a ResourceMap: # resources/myactions.properties ResourceBundle cut.action.text = Cut cut.action.accelerator = control U cut.action.shortdescription = Cut to clipboard copy.action.text = Copy copy.action.acceleratorkey = control C copy.action.shortdescription = Copies to clipboard
21 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing is hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
22 Status of SAF JSR 296 marked as inactive Original project lead left Sun Project revived under new lead: Alexander Potochkin Project resumed activity, call for contribution Further direction not clear in all facets What should be content of SAF? Legacy apps vs. greenfield projects SAF to be included in Java 7 SAF probably not included in Java 7
23 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing is hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
24 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing is hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
25 Testing Swing UIs Why? During development: o Testing GUIs can make the entire system safer and more robust o Tests to specify the functionality o Test early > better design During acceptance testing (specify features) and integration/system testing During maintenance: o Code might be refactored frequently to improve design, and this code often encloses great portions of the user interface. o Having a solid test suite that includes GUI code can give us confidence that we are not inadvertently introducing bugs.
26 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing is hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
27 Why UI testing is hard Conventional unit testing is not suitable for testing UIs: UI components are usually composed of more than one class The room for potential interactions with a UI is huge Conventional test coverage is not enough to cover all user interaction scenarios Addressing and driving the controls Test isolation and reuse of tests CR is not enough
28 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing is hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
29 Writing testable GUIs Separate Model and View Use a unique name for GUI components Do not test default component behavior Concentrate on testing the expected behavior of your GUI Test isolation Mocking Do not only use CR-Tools!
30 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing is hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
31 Introducing FEST Open Source Library for UI Testing Supports functional Swing UI testing Website: Its API provides a fluent interface Open Source project (Apache 2.0 license) Supports both TestNG and JUnit Simplifies troubleshooting UI test failures Hosted at CodeHaus
32 Introducing FEST Robust UI testing Simulates user input using native UI events Provides a reliable mechanism for finding GUI components Tolerates changes in o Component position o Component size o Layout
33 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing is hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
34 FEST Features Fluent Interface Compact, intuitive and readable API Makes it easy to write and maintain UI tests dialog.combobox("domain").select("users"); dialog.textbox("name").entertext("leia"); dialog.button("login").click(); dialog.optionpane().requireerrormessage();
35 FEST Features Reliable Component Lookup By default, uses component names to look up UI components dialog.button("ok").click(); It can also use component types and custom search criteria (e.g. testing legacy applications) GenericTypeMatcher<JButton> textmatcher = new GenericTypeMatcher<JButton>() { protected boolean ismatching(jbutton button) { return "OK".equals(button.getText()); } }; dialog.button(textmatcher).click();
36 FEST Features Test Violations of EDT Access EDT access violation is a common bad practice, even for experienced Swing developers FEST can verify that EDT access is correct Simply install: FailOnThreadViolationRepaintManager.install();
37 FEST Features Troubleshooting UI test failures Failures may be due to: o Environmental conditions o A GUI component could not be found o More than one GUI component satisfied the given search criteria o Programming defect
38 FEST Features Troubleshooting UI test failures (II) Failure due to environmental conditions o Typical example: scheduled anti-virus software scan starts in the middle of our test session o A screenshot of the desktop at the moment of failure can help us determine if an environmental condition was responsible for the failure
39 FEST Features Troubleshooting UI test failures (III) Failure due to environmental conditions o FEST can automatically embed a screenshot of the desktop in a HTML test report (TestNG or JUnit)! o Configuration is easy, short and reuses existing infrastructure
40 FEST Features Troubleshooting UI test failures (IV) Failure due to GUI component not found o For example, looking for a button with name ok in a dialog that does not contain such button! o Having access to the current component hierarchy can help us figure out why a component could not be found o FEST includes the current component hierarchy when throwing a ComponentLookupException
41 FEST Features Troubleshooting UI test failures (V) Failure due to more than one GUI component satisfies a lookup condition o For example, looking up a button with name ok in a dialog o We have accidentally named two buttons with the same name! o Once again, FEST assists us by providing the list of found components in the thrown ComponentLookupException
42 FEST Features JavaFX Support public void shouldupdatetextboxwithpressednumber() { calculator.swingbutton(withtext("8")).click(); calculator.textbox().requiretext("8"); calculator.swingbutton(withtext("6")).click(); calculator.textbox().requiretext("86"); } Work in progress
43 FEST Features Fluent Assertions String[] newhires = employees.newhiresnames(); assertthat(newhires).containsonly("r2-d2"); assertthat(yoda).isinstanceof(jedi.class).isequalto(foundjedi).isnotequalto(foundsith);
44 FEST Features DSL for Java Reflection // Regular Java Reflection: Method method = Names.class.getMethod("get", int.class); AccessController.doPrivileged( new PrivilegedAction<Void>() { public Void run() { method.setaccessible(true); return null; } }); String name = (String) method.invoke(names, 8); // FEST-Reflection: String name = method("get").withreturntype(string.class).withparametertypes(int.class).in(names).invoke(8);
45 FEST Features Template for public void shouldupdateemployee() { new EasyMockTemplate(mockEmployeeDao) { protected void expectations() { mockemployeedao.update(employee); } protected void codetotest() { employeebo.updateemployee(employee); } }.run(); }
46 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing is hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
47 FEST Roadmap Provide support for 3rd party Swing libraries: o Flamingo Component Suite o JIDE o SwingX Groovy-based DSL Support for JavaFX (in the works) Much more!
48 Agenda Why do we need a Swing framework? Introducing the Swing Application Framework (SAF) SAF Features Status of SAF Testing Swing UIs Why UI testing is hard Writing testable UIs Introducing FEST FEST Features FEST Roadmap
49 Summary Swing is a very powerful UI toolkit With power comes complexity SAF can simplify creation of Swing UIs SAF is a lean application framework Creation is only the beginning, we need to test UI testing is necessary for improving the quality of our applications FEST provides a tool that makes creation and maintenance of UI tests a breeze Test your UIs!
50 Michael Hüttermann Alex Ruiz
Using NetBeans IDE for Desktop Development. Geertjan Wielenga
Using NetBeans IDE for Desktop Development Geertjan Wielenga http://blogs.sun.com/geertjan Introduction Standards Resurgence of Swing Performance & look and feel Delivery over the web Layout manager &
More informationJava Swing Introduction
Course Name: Advanced Java Lecture 18 Topics to be covered Java Swing Introduction What is Java Swing? Part of the Java Foundation Classes (JFC) Provides a rich set of GUI components Used to create a Java
More informationJSR 377 Desktop Application Framework September Andres Almiray
JSR 377 Desktop Application Framework September 29 2017 Andres Almiray Agenda Goals Information to be gathered Implementation notes Issues Questions, discussion, next steps 2 Goals 3 Goals Define APIs
More informationGraphical User Interfaces (GUIs)
CMSC 132: Object-Oriented Programming II Graphical User Interfaces (GUIs) Department of Computer Science University of Maryland, College Park Model-View-Controller (MVC) Model for GUI programming (Xerox
More informationUnit testing basics & more...
Unit testing basics & more... by Papapetrou P.Patroklos Twitter hashtag : Thessaloniki Java Meetup - December 2014 Agenda Unit testing introduction Differences with other types of tests Key concepts Rules
More informationOracle Fusion Middleware 11g: Build Applications with ADF I
Oracle University Contact Us: +966 1 1 2739 894 Oracle Fusion Middleware 11g: Build Applications with ADF I Duration: 5 Days What you will learn This course is aimed at developers who want to build Java
More informationJSR377 What's up and what's next. Andres Almiray Canoo Engineering AG
JSR377 What's up and what's next Andres Almiray - @aalmiray Canoo Engineering AG PREVIOUS ATTEMPTS JSR 193 Client Side Container JSR 296 Swing Application Framework JSR 295 Beans Binding JSR 296 had the
More informationImprove and Expand JavaServer Faces Technology with JBoss Seam
Improve and Expand JavaServer Faces Technology with JBoss Seam Michael Yuan Kito D. Mann Product Manager, Red Hat Author, JSF in Action http://www.michaelyuan.com/seam/ Principal Consultant Virtua, Inc.
More informationEPITA Première Année Cycle Ingénieur. Atelier Java - J5
EPITA Première Année Cycle Ingénieur marwan.burelle@lse.epita.fr http://www.lse.epita.fr Overview 1 2 Different toolkits AWT: the good-old one, lakes some features and has a plateform specific look n
More informationIntroduction to GUIs. Principles of Software Construction: Objects, Design, and Concurrency. Jonathan Aldrich and Charlie Garrod Fall 2014
Introduction to GUIs Principles of Software Construction: Objects, Design, and Concurrency Jonathan Aldrich and Charlie Garrod Fall 2014 Slides copyright 2014 by Jonathan Aldrich, Charlie Garrod, Christian
More informationSwinging from the Outside
Swinging from the Outside A guide to navigating Swing from the outside of Sun Brian Mason, Dir Software of Engineering, Teseda S295599 Space is big, really big. You might think it is a long way down to
More informationJava: Graphical User Interfaces (GUI)
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, and Bertrand Meyer Java: Graphical User Interfaces (GUI) With material from Christoph Angerer The essence of the Java Graphics API Application
More informationHeavyweight with platform-specific widgets. AWT applications were limited to commonfunctionality that existed on all platforms.
Java GUI Windows Events Drawing 1 Java GUI Toolkits Toolkit AWT Description Heavyweight with platform-specific widgets. AWT applications were limited to commonfunctionality that existed on all platforms.
More informationOracle Fusion Middleware 11g: Build Applications with ADF I
Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 4108 4709 Oracle Fusion Middleware 11g: Build Applications with ADF I Duration: 5 Days What you will learn Java EE is a standard, robust,
More informationActive Endpoints. ActiveVOS Platform Architecture Active Endpoints
Active Endpoints ActiveVOS Platform Architecture ActiveVOS Unique process automation platforms to develop, integrate, and deploy business process applications quickly User Experience Easy to learn, use
More informationIntroduction to Graphical Interface Programming in Java. Introduction to AWT and Swing
Introduction to Graphical Interface Programming in Java Introduction to AWT and Swing GUI versus Graphics Programming Graphical User Interface (GUI) Graphics Programming Purpose is to display info and
More informationJonathan Aldrich Charlie Garrod
Principles of Software Construction: Objects, Design, and Concurrency (Part 3: Design Case Studies) Introduction to GUIs Jonathan Aldrich Charlie Garrod School of Computer Science 1 Administrivia Homework
More informationOSGi on the Server. Martin Lippert (it-agile GmbH)
OSGi on the Server Martin Lippert (it-agile GmbH) lippert@acm.org 2009 by Martin Lippert; made available under the EPL v1.0 October 6 th, 2009 Overview OSGi in 5 minutes Apps on the server (today and tomorrow)
More informationCHAPTER 1: A GENERAL INTRODUCTION TO PROGRAMMING 1
INTRODUCTION xxii CHAPTER 1: A GENERAL INTRODUCTION TO PROGRAMMING 1 The Programming Process 2 Object-Oriented Programming: A Sneak Preview 5 Programming Errors 6 Syntax/Compilation Errors 6 Runtime Errors
More informationProperties of High Quality Software. CSE219, Computer Science III Stony Brook University
Properties of High Quality Software CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Software Engineering Basics Important Principles for creating a Software Solution:
More informationCSE wi Final Exam 3/12/18 Sample Solution
Question 1. (8 points, 2 each) Equality. Recall that there are several different notions of object equality that we ve encountered this quarter. In particular, we have the following three: Reference equality:
More informationJAVA SYLLABUS FOR 6 MONTHS
JAVA SYLLABUS FOR 6 MONTHS Java 6-Months INTRODUCTION TO JAVA Features of Java Java Virtual Machine Comparison of C, C++, and Java Java Versions and its domain areas Life cycle of Java program Writing
More informationJunit Overview. By Ana I. Duncan
Junit Overview By Ana I. Duncan 1 What Is Junit Why Junit, Why test? Junit Lifecycle Junit Examples from CM Other Testing frameworks Resources Before After Agenda 2 JUnit is a member of the xunit testing
More informationOracle Fusion Middleware 11g: Build Applications with ADF Accel
Oracle University Contact Us: +352.4911.3329 Oracle Fusion Middleware 11g: Build Applications with ADF Accel Duration: 5 Days What you will learn This is a bundled course comprising of Oracle Fusion Middleware
More informationMobile Development Workshop DAY 2: INTRODUCTION TO JAVA
Mobile Development Workshop DAY 2: INTRODUCTION TO JAVA Overview Morning session For loops Strings and collections Graphical User Interfaces Recap Last time we covered Java the programming language and
More informationTesting with Soap UI. Tomaš Maconko
Testing with Soap UI Tomaš Maconko 1 Content What is Soap UI? What features does the Soap UI have? Usage in project context Pros and cons Soap UI alternatives 2 What is Soap UI? Open Source Testing Tool
More informationAgenda Time (PT) 8:45 a.m. Event Platform Opening 9:00 a.m. Keynote - Java: Present and Future Java EE 7 Java SE 8 Java Embedded
Virtual Developer Day: Java 2014 May 6 th 9:00 a.m. - 1:00 p.m. PDT / 12:00 p.m. - 4:00 p.m. EDT / 1:00 p.m. 5:00 p.m. BRT Agenda Time (PT) 8:45 a.m. Event Platform Opening 9:00 a.m. Keynote - Java: Present
More informationCSE wi Final Exam 3/12/18. Name UW ID#
Name UW ID# There are 13 questions worth a total of 100 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. The exam is closed book, closed notes,
More informationAll the Swing components start with J. The hierarchy diagram is shown below. JComponent is the base class.
Q1. If you add a component to the CENTER of a border layout, which directions will the component stretch? A1. The component will stretch both horizontally and vertically. It will occupy the whole space
More informationNetbeans Platform For Beginners
Netbeans Platform For Beginners Free PDF ebook Download: Netbeans Platform For Beginners Download or Read Online ebook netbeans platform for beginners in PDF Format From The Best User Guide Database Platform
More informationIntroduction to the JAVA UI classes Advanced HCI IAT351
Introduction to the JAVA UI classes Advanced HCI IAT351 Week 3 Lecture 1 17.09.2012 Lyn Bartram lyn@sfu.ca About JFC and Swing JFC Java TM Foundation Classes Encompass a group of features for constructing
More informationIn this lab we will practice creating, throwing and handling exceptions.
Lab 5 Exceptions Exceptions indicate that a program has encountered an unforeseen problem. While some problems place programmers at fault (for example, using an index that is outside the boundaries of
More informationTurning a Marathon Runner into a Sprinter: Adopting Agile Testing Strategies and Practices at Microsoft
Turning a Marathon Runner into a Sprinter: Adopting Agile Testing Strategies and Practices at Microsoft Jean Hartmann Test Architect jeanhar@microsoft.com Overview Embracing Change Quality-related themes
More informationJ2EE Application Development : Conversion and Beyond Osmond Ng
IBM Software Group J2EE Application Development : Conversion and Beyond Osmond Ng IBM Software Group Practitioner View Point IBM Rational Application Developer J2EE/EJB Tooling J2EE construction tools
More informationEnterprise Java TM Web Apps with Google Open Source Technology
Enterprise Java TM Web Apps with Google Open Source Technology Dhanji R. Prasanna Google, Inc. Dhanji R. Prasanna Software Engineer at Google > Co-author JAX-RS: Java API for RESTful Web Services JSR-303:
More information1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.
1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. ORACLE PRODUCT LOGO Oracle ADF Programming Best Practices Frank Nimphius Oracle Application Development Tools Product Management 2 Copyright
More information(Incomplete) History of GUIs
CMSC 433 Programming Language Technologies and Paradigms Spring 2004 Graphical User Interfaces April 20, 2004 (Incomplete) History of GUIs 1973: Xerox Alto 3-button mouse, bit-mapped display, windows 1981:
More informationTooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.
Tooling for Ajax-Based Development Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc. 1 Agenda In The Beginning Frameworks Tooling Architectural Approaches Resources 2 In The Beginning 3
More informationMEAP Edition Manning Early Access Program Get Programming with Java Version 1
MEAP Edition Manning Early Access Program Get Programming with Java Version 1 Copyright 2018 Manning Publications For more information on this and other Manning titles go to www.manning.com welcome First,
More informationTHIS IS ONLY SAMPLE RESUME - DO NOT COPY AND PASTE INTO YOUR RESUME. WE ARE NOT RESPONSIBLE Name: xxxxxx
Name: xxxxxx Email ID: xxxxxx Ph: xxxxxx Summary: Over 7 years of experience in object oriented programming, design and development of Multi-Tier distributed, Enterprise applications using Java and J2EE
More informationEnterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009
Enterprise Java Development using JPA, Hibernate and Spring Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ)
More informationThe Eclipse Rich Ajax Platform
The Eclipse Rich Ajax Platform Frank Appel RAP Tech Lead fappel@innoopract.com Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 1 The Innoopract pitch Integration & delivery
More informationRational Functional Tester - Tips and Tricks
IBM Rational Software Development Conference 2006 Rational Functional Tester - Tips and Tricks Suma Byrappa IBM Rational Swathi Rao 2006 IBM Corporation Agenda IBM Rational Software Development Conference
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 3 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Recap Requirements Engineering functional / non-functional requirements Elicitation,
More informationJVA-117A. Spring-MVC Web Applications
JVA-117A. Spring-MVC Web Applications Version 4.2 This course enables the experienced Java developer to use the Spring application framework to manage objects in a lightweight, inversion-of-control container,
More informationCS Exam 1 Review Suggestions
CS 235 - Fall 2015 - Exam 1 Review Suggestions p. 1 last modified: 2015-09-30 CS 235 - Exam 1 Review Suggestions You are responsible for material covered in class sessions, lab exercises, and homeworks;
More informationTopic 9: Swing. Swing is a BIG library Goal: cover basics give you concepts & tools for learning more
Swing = Java's GUI library Topic 9: Swing Swing is a BIG library Goal: cover basics give you concepts & tools for learning more Assignment 5: Will be an open-ended Swing project. "Programming Contest"
More informationTopic 9: Swing. Why are we studying Swing? GUIs Up to now: line-by-line programs: computer displays text user types text. Outline. 1. Useful & fun!
Swing = Java's GUI library Topic 9: Swing Swing is a BIG library Goal: cover basics give you concepts & tools for learning more Why are we studying Swing? 1. Useful & fun! 2. Good application of OOP techniques
More informationGraphical User Interface (GUI)
Graphical User Interface (GUI) Layout Managment 1 Hello World Often have a static method: createandshowgui() Invoked by main calling invokelater private static void createandshowgui() { } JFrame frame
More informationWeb Application Development Using Spring, Hibernate and JPA
Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: 1,995 + VAT Course Description: This course provides a comprehensive introduction to JPA (the Java Persistence API),
More informationJava. GUI building with the AWT
Java GUI building with the AWT AWT (Abstract Window Toolkit) Present in all Java implementations Described in most Java textbooks Adequate for many applications Uses the controls defined by your OS therefore
More informationAutomated GUI testing. How to test an interactive application automatically?
Automated GUI testing How to test an interactive application automatically? Some GUI facts Software testing accounts for 50-60% of total software development costs GUIs can constitute as much as 60% of
More informationAN ISO 9001:2008 CERTIFIED COMPANY. Software Testing TRAINING.
AN ISO 9001:2008 CERTIFIED COMPANY Software Testing TRAINING www.webliquids.com ABOUT US Who we are: WebLiquids is an ISO (9001:2008), Google, Microsoft Certified Advanced Web Educational Training Organisation.
More informationThe Power of Unit Testing and it s impact on your business. Ashish Kumar Vice President, Engineering
The Power of Unit Testing and it s impact on your business Ashish Kumar Vice President, Engineering Agitar Software, 2006 1 The Power of Unit Testing Why Unit Test? The Practical Reality Where do we go
More informationPetr Suchomel Architect, NetBeans Mobility
NetBeans 6.0 A Fresh Look into Java Development Petr Suchomel Architect, NetBeans Mobility Sun Microsystems Agenda The NetBeans IDE, Platform, Community What's new in NetBeans 6.0 Quick look over NetBeans
More informationGradle Leveraging Groovy for Building Java Applications. Hans Dockter Gradle Project Lead
Gradle Leveraging Groovy for Building Java Applications Hans Dockter Gradle Project Lead mail@dockter.biz About Me Founder and Project Lead of Gradle Independent Consultant Trainer for Skills Matter (TTD,
More informationOracle Developer Day
Oracle Developer Day Sponsored by: J2EE Track: Session #3 Developing JavaServer Faces Applications Name Title Agenda Introduction to JavaServer Faces What is JavaServer Faces Goals Architecture Request
More informationThis exam is closed textbook(s) and closed notes. Use of any electronic device (e.g., for computing and/or communicating) is NOT permitted.
York University AS/AK/ITEC 2610 3.0 All Sections OBJECT-ORIENTED PROGRAMMING Midterm Test Duration: 90 Minutes This exam is closed textbook(s) and closed notes. Use of any electronic device (e.g., for
More informationMobile Application Development. Introduction. Dr. Christelle Scharff Pace University, USA
Mobile Application Development Introduction Dr. Christelle Scharff cscharff@pace.edu Pace University, USA Objectives Getting an overview of the mobile phone market, its possibilities and weaknesses Providing
More information<Insert Picture Here> JavaFX 2.0
1 JavaFX 2.0 Dr. Stefan Schneider Chief Technologist ISV Engineering The following is intended to outline our general product direction. It is intended for information purposes only,
More informationHow we reached 0 technical debt in our Eclipse project
How we reached 0 technical debt in our Eclipse project Lorenzo Bettini Dip. DISIA, University of Firenze, Italy Vincenzo Caselli, Francesco Guidieri RCP-Vision, Firenze, Italy EclipseCon Europe, 2016 Our
More informationBuilding Web Applications With The Struts Framework
Building Web Applications With The Struts Framework ApacheCon 2003 Session TU23 11/18 17:00-18:00 Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc. Slides: http://www.apache.org/~craigmcc/
More informationIntroduction to concurrency and GUIs
Principles of Software Construction: Objects, Design, and Concurrency Part 2: Designing (Sub)systems Introduction to concurrency and GUIs Charlie Garrod Bogdan Vasilescu School of Computer Science 1 Administrivia
More informationException Handling Introduction. Error-Prevention Tip 13.1 OBJECTIVES
1 2 13 Exception Handling It is common sense to take a method and try it. If it fails, admit it frankly and try another. But above all, try something. Franklin Delano Roosevelt O throw away the worser
More information[module lab 2.2] GUI FRAMEWORKS & CONCURRENCY
v1.0 BETA Sistemi Concorrenti e di Rete LS II Facoltà di Ingegneria - Cesena a.a 2008/2009 [module lab 2.2] GUI FRAMEWORKS & CONCURRENCY 1 GUI FRAMEWORKS & CONCURRENCY Once upon a time GUI applications
More informationOracle Developer Day
Oracle Developer Day Sponsored by: Session5 Focusing on the UI Speaker Speaker Title Page 1 1 Agenda Building the User Interface UI Development Page Flow A Focus on Faces Introducing Java Server Faces
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationContinuous Testing in Eclipse. David Saff, Michael D. Ernst MIT CSAIL etx 2004, Barcelona, Spain
Continuous Testing in Eclipse David Saff, Michael D. Ernst MIT CSAIL etx 2004, Barcelona, Spain Continuous testing: inspired by continuous compilation Continuous compilation, as in Eclipse, notifies the
More informationCS 201 Advanced Object-Oriented Programming Lab 6 - Sudoku, Part 2 Due: March 10/11, 11:30 PM
CS 201 Advanced Object-Oriented Programming Lab 6 - Sudoku, Part 2 Due: March 10/11, 11:30 PM Introduction to the Assignment In this lab, you will finish the program to allow a user to solve Sudoku puzzles.
More informationCS 209 Programming in Java #10 Exception Handling
CS 209 Programming in Java #10 Exception Handling Textbook Chapter 15 Spring, 2006 Instructor: J.G. Neal 1 Topics What is an Exception? Exception Handling Fundamentals Errors and Exceptions The try-catch-finally
More informationOracle Middleware 12c: Build Rich Client Applications with ADF Ed 1 LVC
Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Oracle Middleware 12c: Build Rich Client Applications with ADF Ed 1 LVC Duration: 5 Days What you will learn This Oracle Middleware
More informationGUI Output. Adapted from slides by Michelle Strout with some slides from Rick Mercer. CSc 210
GUI Output Adapted from slides by Michelle Strout with some slides from Rick Mercer CSc 210 GUI (Graphical User Interface) We all use GUI s every day Text interfaces great for testing and debugging Infants
More informationGUI Testing to the edge. Quality is not a given and testing is fun
GUI Testing to the edge Quality is not a given and testing is fun Your challenge: Software quality You develop / maintain complex GUI applications in Java Swing, SWT/RCP, FX and/or Web face the risk/costs
More informationEclipse + Html: A Journey
Eclipse + Html: A Journey Kris De Volder , Pivotal Software Martin Lippert , Pivotal Software 1 Outline Goal Motivation Case Studies The Journey API Comparison
More information1. What is Jav a? simple
1. What is Jav a? Thanks to Java is a new programming language developed at Sun under the direction of James Gosling. As far as possible it is based on concepts from C, Objective C and C++. Java is interpreted
More informationKF5008 Program Design & Development. Lecture 1 Usability GUI Design and Implementation
KF5008 Program Design & Development Lecture 1 Usability GUI Design and Implementation Types of Requirements Functional Requirements What the system does or is expected to do Non-functional Requirements
More informationMore on Design. CSCI 5828: Foundations of Software Engineering Lecture 23 Kenneth M. Anderson
More on Design CSCI 5828: Foundations of Software Engineering Lecture 23 Kenneth M. Anderson Outline Additional Design-Related Topics Design Patterns Singleton Strategy Model View Controller Design by
More informationGroovy & Grails Scripting for Modern Web Applications. Rohit Nayak Talentica Software
Groovy & Grails Scripting for Modern Web Applications Rohit Nayak Talentica Software Agenda Demo: Quick intro to Grails Scripting, Web Applications and Grails/Groovy REST service in Grails Demo Internals
More informationWednesday, January 25, 12
Java EE on Google App Engine: CDI to the rescue! Aleš Justin JBoss by Red Hat Agenda What is GAE and CDI? Why GAE and CDI? Running JavaEE on GAE Other JavaEE technologies Development vs. Production Problems
More informationWeb Application Development Using Spring, Hibernate and JPA
Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options:
More informationPrinciples of Software Construction: Testing: One, Two, Three
Principles of Software Construction: Testing: One, Two, Three Josh Bloch Charlie Garrod School of Computer Science 1 Administrivia Homework 4a due today, 11:59 p.m. Design review meeting is mandatory But
More informationPatterns and Best Practices for dynamic OSGi Applications
Patterns and Best Practices for dynamic OSGi Applications Kai Tödter, Siemens Corporate Technology Gerd Wütherich, Freelancer Martin Lippert, akquinet it-agile GmbH Agenda» Dynamic OSGi applications» Basics»
More informationGraphic User Interfaces. - GUI concepts - Swing - AWT
Graphic User Interfaces - GUI concepts - Swing - AWT 1 What is GUI Graphic User Interfaces are used in programs to communicate more efficiently with computer users MacOS MS Windows X Windows etc 2 Considerations
More informationIntroduction to Java
Introduction to Java Module 1: Getting started, Java Basics 22/01/2010 Prepared by Chris Panayiotou for EPL 233 1 Lab Objectives o Objective: Learn how to write, compile and execute HelloWorld.java Learn
More informationWHITESTEIN. Agents in a J2EE World. Technologies. Stefan Brantschen. All rights reserved.
WHITESTEIN Technologies 1 Agents in a J2EE World Stefan Brantschen ttt.info.j2ee v1.6 2002-02-10 SBR Copyright 2002 by Whitestein Technologies AG, Switzerland Goal and Outline Goal Present how J2EE EJB
More informationSYLLABUS JAVA COURSE DETAILS. DURATION: 60 Hours. With Live Hands-on Sessions J P I N F O T E C H
JAVA COURSE DETAILS DURATION: 60 Hours With Live Hands-on Sessions J P I N F O T E C H P U D U C H E R R Y O F F I C E : # 4 5, K a m a r a j S a l a i, T h a t t a n c h a v a d y, P u d u c h e r r y
More informationVizzAnalyzer goes Eclipse!
School of Mathematics and Systems Engineering Reports from MSI - Rapporter från MSI VizzAnalyzer goes Eclipse! David Ruiz De Azua Jun 2007 MSI Report 07064 Växjö University ISSN 1650-2647 SE-351 95 VÄXJÖ
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More informationAutomated Acceptance Testing
Automated Acceptance Testing Björn Beskow Callista Enterprise AB bjorn.beskow@callista.se http://www.callista.se/enterprise CADEC 2004-01-28, Automated Acceptance Testing, Slide 1 Target audience and Objectives
More informationG51PGP Programming Paradigms. Lecture 008 Inner classes, anonymous classes, Swing worker thread
G51PGP Programming Paradigms Lecture 008 Inner classes, anonymous classes, Swing worker thread 1 Reminder subtype polymorphism public class TestAnimals public static void main(string[] args) Animal[] animals
More informationStrategies for Loose Coupling in Large Java Desktop Applications
Strategies for Loose Coupling in Large Java Desktop Applications Geertjan Wielenga geertjan.wielenga@oracle.com blogs.oracle.com/geertjan @geertjanw Zoran Sevarac Marjan Šterk Sadi El Assadi Boris Pran
More informationCS11 Advanced Java. Winter Lecture 2
CS11 Advanced Java Winter 2011-2012 Lecture 2 Today s Topics n Assertions n Java 1.5 Annotations n Classpaths n Unit Testing! n Lab 2 hints J Assertions! n Assertions are a very useful language feature
More informationJBuilder 2007 Product Tour November 2006
JBuilder 2007 Product Tour November 2006 Introduction... 3 Eclipse Overview... 4 JBuilder 2007 Overview... 4 ProjectAssist. 5 Graphical EJB Workbench... 6 TeamInsight..7 Conclusion... 10 2 Introduction
More informationJava FX. Threads, Workers and Tasks
Java FX Threads, Workers and Tasks Threads and related topics Lecture Overview...but first lets take a look at a good example of Model - View - Controler set up This and most of the lecture is taken from
More informationEclipse Lyo Overview. Michael Fiedler, Eclipse Lyo committer IBM Corporation
Eclipse Lyo Overview http://eclipse.org/lyo Michael Fiedler, Eclipse Lyo committer 1 Agenda Eclipse Lyo background Content and Plans Test Suites OSLC4J Samples Next Steps 2 OSLC Specifications OSLC Core
More informationFor detailed technical instructions refer to the documentation provided inside the SDK and updated samples.
The vsphere HTML Client SDK Fling provides libraries, sample plug-ins, documentation and various SDK tools to help you develop and build user interface extensions which are compatible with both vsphere
More informationJava EE 6: Develop Web Applications with JSF
Oracle University Contact Us: +966 1 1 2739 894 Java EE 6: Develop Web Applications with JSF Duration: 4 Days What you will learn JavaServer Faces technology, the server-side component framework designed
More informationMarthon User Guide. Page 1 Copyright The Marathon developers. All rights reserved.
1. Overview Marathon is a general purpose tool for both running and authoring acceptance tests geared at the applications developed using Java and Swing. Included with marathon is a rich suite of components
More informationQMS ISO 9001:2015 CERTIFIED COMPANY Software Testing TRAINING.
QMS ISO 9001:2015 CERTIFIED COMPANY Software Testing TRAINING www.webliquidinfotech.com What you Learn: What is Software Testing? Why Testing is Important? Scope of Software Testing Objectives of Software
More informationSoftware Engineering Design & Construction
Winter Semester 17/18 Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt A Critical View on Inheritance 2 A Critical View On Inheritance
More information