GUI-based testing involves exercising a program's graphical user interface to detect errors. There are several approaches to GUI-based testing, including model-based testing using event-flow or state models, capture and replay of user sessions, and manual testing. Choosing a testing approach depends on factors like the GUI technology. Tools like Marathon and Abbot can automate capturing, replaying, and checking GUI test cases to make the process more efficient.
Event and signal driven programming techniquesElizabeth Smith
Given at Zendcon 2011 this is a computer theory heavy, code absent look at event driven programming design patterns and techniques in the programming community
The presentation focuses on Rails scaffolding as a good starting point for playing with Ext. The biggest integration task from a Rails point of view is providing the correct JSON data structures that Ext can process - a task that can be solved in a re-usable way. Passing data around between Rails controllers and views and the actual JavaScript code is another focal point.
The presentation features a preview version of Martin Rehfeld's Ext Scaffold Generator, soon to be announced as a official Rails plugin.
by Martin Rehfeld
Event and signal driven programming techniquesElizabeth Smith
Given at Zendcon 2011 this is a computer theory heavy, code absent look at event driven programming design patterns and techniques in the programming community
The presentation focuses on Rails scaffolding as a good starting point for playing with Ext. The biggest integration task from a Rails point of view is providing the correct JSON data structures that Ext can process - a task that can be solved in a re-usable way. Passing data around between Rails controllers and views and the actual JavaScript code is another focal point.
The presentation features a preview version of Martin Rehfeld's Ext Scaffold Generator, soon to be announced as a official Rails plugin.
by Martin Rehfeld
The fundamental problems of GUI applications and why people choose ReactOliver N
Instead of asking people which JavaScript framework to learn, let's look back into GUI application architecture (which Web Front-end is a case). Then you will understand why people created those library & frameworks and why React became so popular.
This course will give you an overview of the general development of an application with an UI in Symbian OS. It contains explanations of the concepts and the framework that is built directly into Symbian OS as well as into the UI-frameworks. The various concepts for S60 UI-apps are explained in greater detail. In the challenge you will develop a simple control and use the new Component Array introduced in Symbian OS 9.
Contents:
* GUI Frameworks
* Structure of a GUI application
* Architectures
* Views, Controls, Dialogs
* Seperating UI and engine
o MVC
o ECom
Download Complete Material - https://www.instamojo.com/prashanth_ns/
This VB.Net 4.0 with ADO.NET Programming contains 15 Units and each unit contains 40 to 60 slides in it.
Contents…
• Appreciate the Graphical User Interface (GUI)
• Identify the controls of GUI
• Identify the features of .NET Framework
• Use Windows project by using Visual Studio .NET integrated development environment
• Work with Windows Forms and Controls
• Perform drag-and-drop operations using clipboard
• Validate user input using controls and events
• Work with the CommonDialog class
• Create a custom dialog box
• Work with menus and MDI applications
• Work with ToolStrip control
• Identify the functionality of print components
• Identify the functionality of Crystal Reports
• Implement accessibility features in a .NET application
• Identify features of international applications
• Implement globalization and localization in a .NET application
• Create a help system using HTML Workshop
• Implement help system in .NET applications
• Work with built-in components in the .NET applications
• Work with user-defined components in the .NET applications
• Implement asynchronous programming
• Use the BackgroundWorker component
• Implement assemblies
• Implement various deployment strategies
• Use various editors in a deployment project
• Implement ClickOnce
• Configure and Secure a Windows application
ADO.NET 4.0 Architecture
• Work with XML
• Work with SQL queries
• Implement data binding to display values on the controls of a Windows form
• Filter the data to display the selected records
• Identify the connected and disconnected environment in ADO.NET
• Working in a connected environment
• Working in a disconnected environment
GUI Programming in JAVA (Using Netbeans) - A ReviewFernando Torres
The powerpoint provides the user with a review of various concepts of GUI programming in JAVA. It covers various concepts like :
1. What is IDE ?
2. Various Methods and Properties of Components
3. Variable declaration
4. Data types
Etc
Java GUI PART II is the continues of JAVA GUI PART I covering and discussing the GUI components as well as the different available Layout Managers which is available in JAVA and you can find dedicated example for each Layout Managers …
What is a Design Guide? (design spec)
It's a better way for designers to co-work with developers.
Assistor official site - http://www.assistor.net/en/assistor
Facebook - https://www.facebook.com/assistorAPPitnl
Twitter - https://twitter.com/Assistor_PS
IJRET : International Journal of Research in Engineering and Technology is an international peer reviewed, online journal published by eSAT Publishing House for the enhancement of research in various disciplines of Engineering and Technology. The aim and scope of the journal is to provide an academic medium and an important reference for the advancement and dissemination of research results that support high-level learning, teaching and research in the fields of Engineering and Technology. We bring together Scientists, Academician, Field Engineers, Scholars and Students of related fields of Engineering and Technology
The fundamental problems of GUI applications and why people choose ReactOliver N
Instead of asking people which JavaScript framework to learn, let's look back into GUI application architecture (which Web Front-end is a case). Then you will understand why people created those library & frameworks and why React became so popular.
This course will give you an overview of the general development of an application with an UI in Symbian OS. It contains explanations of the concepts and the framework that is built directly into Symbian OS as well as into the UI-frameworks. The various concepts for S60 UI-apps are explained in greater detail. In the challenge you will develop a simple control and use the new Component Array introduced in Symbian OS 9.
Contents:
* GUI Frameworks
* Structure of a GUI application
* Architectures
* Views, Controls, Dialogs
* Seperating UI and engine
o MVC
o ECom
Download Complete Material - https://www.instamojo.com/prashanth_ns/
This VB.Net 4.0 with ADO.NET Programming contains 15 Units and each unit contains 40 to 60 slides in it.
Contents…
• Appreciate the Graphical User Interface (GUI)
• Identify the controls of GUI
• Identify the features of .NET Framework
• Use Windows project by using Visual Studio .NET integrated development environment
• Work with Windows Forms and Controls
• Perform drag-and-drop operations using clipboard
• Validate user input using controls and events
• Work with the CommonDialog class
• Create a custom dialog box
• Work with menus and MDI applications
• Work with ToolStrip control
• Identify the functionality of print components
• Identify the functionality of Crystal Reports
• Implement accessibility features in a .NET application
• Identify features of international applications
• Implement globalization and localization in a .NET application
• Create a help system using HTML Workshop
• Implement help system in .NET applications
• Work with built-in components in the .NET applications
• Work with user-defined components in the .NET applications
• Implement asynchronous programming
• Use the BackgroundWorker component
• Implement assemblies
• Implement various deployment strategies
• Use various editors in a deployment project
• Implement ClickOnce
• Configure and Secure a Windows application
ADO.NET 4.0 Architecture
• Work with XML
• Work with SQL queries
• Implement data binding to display values on the controls of a Windows form
• Filter the data to display the selected records
• Identify the connected and disconnected environment in ADO.NET
• Working in a connected environment
• Working in a disconnected environment
GUI Programming in JAVA (Using Netbeans) - A ReviewFernando Torres
The powerpoint provides the user with a review of various concepts of GUI programming in JAVA. It covers various concepts like :
1. What is IDE ?
2. Various Methods and Properties of Components
3. Variable declaration
4. Data types
Etc
Java GUI PART II is the continues of JAVA GUI PART I covering and discussing the GUI components as well as the different available Layout Managers which is available in JAVA and you can find dedicated example for each Layout Managers …
What is a Design Guide? (design spec)
It's a better way for designers to co-work with developers.
Assistor official site - http://www.assistor.net/en/assistor
Facebook - https://www.facebook.com/assistorAPPitnl
Twitter - https://twitter.com/Assistor_PS
IJRET : International Journal of Research in Engineering and Technology is an international peer reviewed, online journal published by eSAT Publishing House for the enhancement of research in various disciplines of Engineering and Technology. The aim and scope of the journal is to provide an academic medium and an important reference for the advancement and dissemination of research results that support high-level learning, teaching and research in the fields of Engineering and Technology. We bring together Scientists, Academician, Field Engineers, Scholars and Students of related fields of Engineering and Technology
Training in Bangalore is one of the best Selenium Testing Training Institute in bangalore. We offer Online Training and Classroom Training. Our Trainers are very professional and more than 8 years of experience.
6months industrial training in software testing, ludhianadeepikakaler1
E2matrix offer our assistance, writing and consulting services with your research assignments particularly in the areas of thesis, dissertations, journals, online forum discussions, FYP, and so on.
We also provide training for the different technologies and are involved in a wide diversity of subject areas ranging from management,engineering up to programming and designs; and our team of research experts and professional consultants are readily available to help you towards your successful completion of your assignments.
Engage us today at our e2matrixphagwara@gmail.com
jalandhare2matrix@gmail.com
and can visit our web site-www.e2matrix.com
contact us-7508509709
07508509730
6months industrial training in software testing, jalandhardeepikakaler1
E2marix is leading Training & Certification Company offering Corporate Training Programs, IT Education Courses in diversified areas.Since its inception, E2matrix educational Services have trained and certified many students and professionals.
TECHNOLOGIES PROVIDED -
MATLAB
NS2
IMAGE PROCESSING
.NET
SOFTWARE TESTING
DATA MINING
NEURAL networks
HFSS
WEKA
ANDROID
CLOUD computing
COMPUTER NETWORKS
FUZZY LOGIC
ARTIFICIAL INTELLIGENCE
LABVIEW
EMBEDDED
VLSI
Address
Opp. Phagwara Bus Stand, Above Bella
Pizza, Handa City Center, Phagwara
email-e2matrixphagwara@gmail.com
jalandhare2matrix@gmail.com
Web site-www.e2matrix.com
CONTACT NUMBER --
07508509730
09041262727
7508509709
6 weeks summer training in software testing,ludhianadeepikakaler1
E2matrix offer our assistance, writing and consulting services with your research assignments particularly in the areas of thesis, dissertations, journals, online forum discussions, FYP, and so on.
We also provide training for the different technologies and are involved in a wide diversity of subject areas ranging from management,engineering up to programming and designs; and our team of research experts and professional consultants are readily available to help you towards your successful completion of your assignments.
Engage us today at our e2matrixphagwara@gmail.com
jalandhare2matrix@gmail.com
and can visit our web site-www.e2matrix.com
contact us-7508509709
07508509730
6 weeks summer training in software testing,jalandhardeepikakaler1
E2marix is leading Training & Certification Company offering Corporate Training Programs, IT Education Courses in diversified areas.Since its inception, E2matrix educational Services have trained and certified many students and professionals.
TECHNOLOGIES PROVIDED -
MATLAB
NS2
IMAGE PROCESSING
.NET
SOFTWARE TESTING
DATA MINING
NEURAL networks
HFSS
WEKA
ANDROID
CLOUD computing
COMPUTER NETWORKS
FUZZY LOGIC
ARTIFICIAL INTELLIGENCE
LABVIEW
EMBEDDED
VLSI
Address
Opp. Phagwara Bus Stand, Above Bella
Pizza, Handa City Center, Phagwara
email-e2matrixphagwara@gmail.com
jalandhare2matrix@gmail.com
Web site-www.e2matrix.com
CONTACT NUMBER --
07508509730
09041262727
7508509709
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
2. 2
GUI-based Testing
• One of the practical methods commonly used to detect the
presence of errors (failures) in a computer program is to
exercise it by using its Graphical User Interface.
Our program
The output
is correct?
I1, I2, I3,
…, In, …
Expected results
= ?
Obtained results
“Inputs”
GUI
3. GUI-based Testing: again four main questions
At which level conducting the testing?
3
Unit
Integration
System
Regression
How to choose inputs?
using the specifications/use cases/requirements
using the code
only considering the GUI (functionality, structure)
How to identify the expected output?
test oracles
How good test cases are?
when we can stop the testing activity
4. 4
GUI …. what?
GUI as a means to use/interact with the software
systems
GUI are nowadays almost ubiquitous, even in safety
critical systems
Different types of device (web, pc, tablet, palm, mobile)
GUI interacts with the underlying code by method calls
or messages
GUI can exercise remote code
GUI responds to user events (e.g., mouse clicks)
GUIs are event-driven systems
Testing GUI correctness is critical for system usability,
robustness and safety
The whole system can be executed by means of the
GUI
5. GUI …. more formally
A GUI (Graphical User Interface) is a hierarchical,
5
graphical front end to a software system
A GUI contains graphical objects w, called widgets, each
with a set of properties p, which have discrete values
v at run-time.
At any time during the execution, the values of the
properties of each widget of a GUI define the GUI
state: {… (w, p, v), …}
A graphical event e is a state transducer, which yields the
GUI from a state S to the next state S’.
6. 6
GUI-based Testing
Testing GUI software systems is different
from testing non-GUI software
Non-GUI testing: suites are composed of test cases
that invoke methods of the system and catch the
return value/s;
GUI-based testing: suites are composed of test
cases that are:
able to recognize/identify the components of a GUI;
able to exercise GUI events (e.g., mouse clicks);
able to provide inputs to the GUI components (e.g., filling text
fields);
able to test the functionality underlying a GUI set of components;
able to check the GUI representations to see if they are
consistent with the expected ones;
often, strongly dependent on the used technology;
7. 7
GUI testing difficulties
GUI test automation is difficult
Often GUI test automation is technology-dependent
Observing and trace GUI states is difficult
UI state explosion problem
A lot of possible states of the GUI
Controlling GUI events is difficult
Explosion of the possible combinations of events to do
the same thing
GUI test maintenance is hard and costly
……
8. 8
GUI testing advantages
Automation is feasible
Several frameworks and tools support it
Easy to conduct for non-expert people
It is funny to do
……
9. Which type of GUI-based testing?
9
System testing
Test the whole system
Acceptance testing
Accept the system
Regression testing
Test the system w.r.t. changes
10. 10
GUI-based Acceptance Testing
Acceptance Tests are specified by the customer and analyst to test that the
overall system is functioning as required (Do developers build the right
system?).
How?
Manual Acceptance testing. User exercises the system
manually using his creativity.
Acceptance testing with “GUI Test Drivers” (at the GUI level).
These tools help the developer do functional/acceptance testing
through a user interface such as a native GUI or web interface.
Table-based acceptance testing. Starting from a user story (or
use case or textual requirement), the customer enters in a table
the expectations of the program’s behavior.
Black-Box (aka functional) approaches can be used to define
test specification then executed manually, by means of the GUI or
by table-based testing.
11. Approaches for GUI-based testing
11
Manual based
Based on the domain and application knowledge of the tester
Capture and Replay
Based on capture and replay of user sessions
Model-based testing
Based on the execution of user sessions selected from a
model of the GUI
Which type of model to use?
Event-based model
State-based model
Domain model
How do obtain the model to be used?
Specification-based model
Model recovered from existing software systems
Log-based model
12. Coverage criteria for GUI-based testing
Conventional code-based coverage cannot be
12
adequate;
GUIs are implemented in terms of event-based
system, hence, the abstraction level is different w.r.t.
the conventional system code. So mapping between
GUI events and system code can not be so easy.
Possible coverage criteria:
Event-coverage: all events of the GUI need to be executed at
least once
State-coverage: “all states” of the GUI need to be exercised
at least once
Functionality-coverage: .. using a functional point of view
13. Event-based Model
Model the space of GUI event interactions as a graph
Given a GUI:
1. create a graph model of all the possible sequences
that a user can execute
2. use the model to generate event sequences
13
14. 14
Event-based Model
“Event-flow graph”
File
New Open Save …
Edit
Cut Copy Paste Replace Undo …
Editbox0 Editbox1 Match case
Find next Replace Replace all Cancel
Top level
TC: <S0, event1, event2, …>
Oracle: <State1, State2, …> & !CRASH
15. 15
Event-based Model
Model Type:
Complete event-model
Partial event-model
Event types:
Structural events (Edit, Replace)
Termination events (Ok, cancel)
System interaction events (Editbox0, Find next)
Coverage criteria
Event coverage
Event coverage according the exercised functionality
Coverage of semantically interactive events
2-way, 3-way coverage
….
16. 16
State-based Model
Model the space of GUI event interactions as a state
model, e.g., by using a finite state machine (FSM):
• States are screenshot/representation of the GUI
• Transitions are GUI events that change the GUI state
Given a GUI:
1. create a FSM of the possible sequences that a user
can execute, considering the GUI state
2. use the FSM to generate event sequences
e1
e2
e3
e4 e5
17. 17
State-based Model
<ok>
FSM:
- State: GUI
screenshot
-Transition: event
that changes the GUI
state
<fill + ok>
<click>
<click>
<click>
<fill>
<fill>
<ok>
<fill + ok>
18. 18
..example
Problem: state explosion!
Use of a state abstraction function
It maps concrete states into abstract states
(i.e., sets of concrete states)
19. 19
Log-based Recovered Model
How do obtain the model?
starting from system specification or
requirements
starting from the system (i.e., reverse
engineering)
1. trace some system executions (at method calls
level)
2. infer a model
3. refine it manually, if needed
20. Test oracles for GUI-based testing
It could be difficult to detect faults looking the GUI
20
Crash testing is often used;
In a GUI test case, an incorrect GUI states can take the
user to an unexpected/wrong interface screen or it
can make the user unable to do a specific action;
e.g., after the click of a button, we try to click the button again
but we fail since the button no longer exists, after the first click.
A GUI state can be “represented” by the components
expected to be part of the GUI in a give time and their
state/value
e.g., window position, GUI objects, GUI title, GUI content, GUI
screenshots,
21. 21
GUI errors: examples
Incorrect functioning
Missing commands (e.g., GUI events)
Incorrect GUI screenshots/states
The absence of mandatory UI components (e.g., text
fields and buttons)
Incorrect default values for fields or UI objects
Data validation errors
Incorrect messages to the user, after errors
Wrong UI construction
….
22. 22
GUI-based Testing: process
1. Identify the testing objective by defining a coverage
criteria
2. Generate test cases from GUI structure, specification,
model
Generate sequences of GUI events
Complete them with inputs and expected oracles
3. Define executable test cases
4. Run them and check the results
23. 23
GUI-based Regression Testing
GUI-based testing means to execute the GUI of a
system exercising its GUI components;
A small changes in the GUI layout can make the GUI
test cases old and useless;
Hence, GUI-based test suite need to be maintained
and often chagned
supporting tools are welcomed
Often, GUIs are realized by means of rapid prototyping
or automatic framework. This requires an efficient
approach to generate and maintain GUI test suite
supporting tools are welcomed
24. Capture and Replay
A capture and replay testing tool captures user
sessions (user inputs and events) and store
them in scripts (one per session) suitable
to be used to replay the user session.
An ad-hoc infrastructure is needed to intercept GUI events,
GUI states, thus storing user sessions and also to be
able to replay them.
- they can work at application or VM level
24
25. 25
Recorded information
Inputs, outputs, and other information needed
to replay a user session need to be recorded
during the capture process.
Examples:
General information: date/time of recording, etc.
System start-up information
Events from test tool to system
Point of control, event
Events from system to test tool
Checkpoints / expected outputs
Time stamps
26. 26
Capture and Replay: the process
1. The tester interacts with the system GUI to run the
system, thus generating sessions of sequence of
mouse clicks, UI and keyboard events;
2. The tool captures and stores the user events and the
GUI screenshots;
a script is produced per each user session
3. The tester can automatically replay the execution by
running the script
the script can be also changed by the tester
the script can be enriched with expected output,
checkpoints
the script can be replicated to generate many variants (e.g.,
changing the input values)
4. In case of GUI changes, the script must be updated
28. 28
Running Example: Calculator
Calc_1 :
Logic mixed to GUI
GUI realized by using
Swing
Calc_2 :
Logic mixed to GUI
GUI realized by using AWT
Calc_3 :
Logic separated from the
GUI
GUI realized by using AWT
+Swing
These apps are from the net hence please refer to the author’s copyright
29. Marathon
Is a tool that helps writing System/GUI tests
29
for Java/Swing applications
Consists of a recorder, player, and an editor
Records tests script in Python
It is possible to use it without knowing Python …
Allows to insert assertions in the script easily
Using a specific GUI
Shows testing results using JUnit’s control bar
Red/green
http://www.marathontesting.com
download Marathon and its user manual
30. 30
Marathon example (1)
A calculator application
was developed (Swing)
We want to write tests
for the calculator
Ex. add two values
Steps:
1. create a new Marathon
project
2. create a new empty test
(a test is a Python script
file)
3. build the test (recording)
31. 31
Marathon example (2)
Record the script
• click on the record button in
the toolbar
– the red circle
• enter “12 + 4 =”, the result is
displayed (16)
• press control + right-click in
the text area, to open the
contextual menu
• select Assert Text
• stop recording (the button
with a red square), the script
now looks like:
• save the script
32. 32
Marathon example (3)
Run the script
• Select the “JUnit” tab
• Click the test view, you should
see your new created test
• Click on the “Run all tests”
button, in the JUnit’s control
bar
• and …
• get the green bar …
33. 33
Abbot
Is a tool that helps writing System/GUI tests for Java
AWT/Swing applications
Consists of a recorder, player, and an editor (via Costello, built
on top of Abbot)
Records tests script in Java
Allows to write test cases directly from Java code (named
programmatic GUI testing)
Allows to insert assertions in the script easily
Shows testing results using JUnit’s control bar
Red/green
Two main building blocks:
ComponentReferences to get a handle on a GUI component
Robot: to perform user-level actions on various GUI
components
http://abbot.sourceforge.net
download Marathon and its user manual
34. 34
Abbot example (1)
A calculator application
was developed
(AWT/Swing)
We want to write tests
for the calculator
Ex. add two values
Steps:
1. create a new empty
Abbot test
2. Initialize the test with the
application under test
information
3. build the test (recording)
35. 35
Abbot example (2)
Recording
1. Start recording of all
actions
2. Execute the software
3. Add assertions
1. select the GUI element
with SHIFT+F1
2. select the property (e.g.,
(“Text”)
3. set the expected value
4. Stop recording
36. 36
Guitar
A testing framework implementing the “Event-flow
graph” approach
Four main components:
The GUIRipper: extract GUI information from a program
The GUIStructure2Graph: build a traversable graph
representation of the GUI elements
The TestCaseGenerator: create an extensive set of test
cases based on the graph
The GUIReplayer: run the program as instructed by these
tests
It is a research tool…
http://guitar.cs.umd.edu
It requires ANT to be executed
37. 37
Guitar (1)
Four main components:
(1) GUIRipper: GUI information extraction
>ant -Dproperties=jfcripper.properties -f jfcripper.xml
(2) GUIStructure2Graph: Event-flow graph inference
>ant -v -f GUIStructure2GraphConvert.xml
38. Guitar (2)
(3) TestCaseGenerator: Test cases generation traversing the graph
38
>ant -v -f TestCaseGenerator.xml
(4) GUIReplayer: Run the program GUI
according to the generated test cases
>ant -Dproperties=jfcreplayer.properties -f jfcreplayer.xml
39. Tools for other GUI-based testing of Java
HtmlUnit, HttpUnit, JWebUnit
HtmlFixture
Selenium
….
39
40. 40
XUnit Web tools
HtmlUnit, HTTPUnit, JWebUnit, etc.
- They are inspired by JUnit
- They let us to verify the functionalities of Web sites
- They emulate the relevant portions of browser behavior
form submission, JavaScript, http authentication, cookies, automatic page
redirection, etc.
- They allow Java test code to examine returned pages
in terms of text, DOM, or containers of forms, tables, and links
- They make it easy to write Junit tests that verify HTTP requests
and responses
41. Send the request
41
… HttpUnit example
import junit.framework.TestCase;
import com.meterware.httpunit.WebResponse;
import com.meterware.httpunit.WebConversation;
import com.meterware.httpunit.WebForm;
import com.meterware.httpunit.WebRequest;
public class SearchExample extends TestCase {
public void testSearch() throws Exception {
WebConversation wc = new WebConversation();
WebResponse resp = wc.getResponse("http://www.google.com");
WebForm form = resp.getForms()[0];
form.setParameter("q", "HttpUnit");
WebRequest req = form.getRequest("btnG");
resp = wc.getResponse(req);
assertNotNull(resp.getLinkWith("HttpUnit"));
resp = resp.getLinkWith("HttpUnit").click();
assertEquals(resp.getTitle(), "HttpUnit");
assertNotNull(resp.getLinkWith("User's Manual"));
}
}
Set the google page
Fill the google form
get the google response
verify the response
42. HtmlFixture
http://fitnesse.org/FitNesse.HtmlFixture
- It is used to exercise and test web pages.
- It allows us make assertions about the structure of a page and to
navigate between pages.
- We can also fire java script, submit forms, "click" links, etc.
- It is based on a fixture that lets us navigate to any element of
the
page DOM.
To use this we need some knowledge about the DOM (Document
Object Model).
42
44. 44
Capture and Replay for Web
Selenium
http://seleniumhq.org/
Selenium IDE: a Firefox add-on
that will do simple record-and-
playback of interactions
with the browser
Selenium WebDriver: a
collection of language specific
bindings to drive a browser --
the way it is meant to be
driven.
45. Additional references
-Atif M. Memon. An event-flow model of GUI-based applications for testing.
Software Testing, Verification and Reliability, 2007, John Wiley & Sons
http://www.cs.umd.edu/~atif/papers/MemonSTVR2007-abstract.html
-Atif M. Memon, M.E. Pollack, Mary Lou Soffa. A planning-based Approach to GUI
testing. International Software/Internet Quality Week, May 2000
http://www.cs.umd.edu/~atif/papers/MemonSQW2000-abstract.html
-Marlon Vieira, Johanne Leduc, Bill Hasling, Rajesh Subramanyan, Juergen
Kazmeier. Automation of GUI Testing Using a Model-driven Approach AST’06
http://www.irisa.fr/lande/lande/icse-proceedings/ast/p9.pdf
-Jessica Chen and Suganthan Subramaniam. A GUI Environment to Manipulate
FSMs for Testing GUI-based Applications in Java. International Conference on
System Sciences, 2001
http://wenku.baidu.com/view/5f544c5377232f60ddcca145.html?from=related
-Alessandro Marchetto, Paolo Tonella and Filippo Ricca. State-based testing of
Ajax Applications. In Proceedings of the International Conference on Software
Testing, 2008 http://selab.fbk.eu/tonella/papers/icst2008.pdf
45