Behavior Driven Development and Testing of Qt and QML applications

Similar documents
Mobile Test Automation Framework

Adaptive Automated GUI Testing Producing Test Frameworks to Withstand Change

Viewpoint. Choosing the right automation tool and framework is critical to project success. - Harsh Bajaj, Technical Test Lead ECSIVS, Infosys

Case Studies of Free Test Tools Successful Test Tool Use without a Big Budget

Know the Difference. Unified Functional Testing (UFT) and Lean Functional Testing (LeanFT) from HP

Squish 6.0. Test Automation Study. Study. Version: 1.0 Stand vom: :41:00 Status: Erstellt Author: Mohamed Mahmoud

Fully Leverage Agile Test Automation Technical Success and Return on Investment

Agile Testing: The Agile Test Automation Pyramid

Automation using Selenium

Cross Platform Mobile. -Vinod Doshi

Meta-Framework: A New Pattern for Test Automation

Software Automated Testing

Business Assurance & Testing QEx Automation Platform

Testing and Quality in Agile Development Speaker: Allan Watty Company: ABB Inc Website:

SOFTWARE TESTING TRAINING COURSES CONTENTS

Test Automation Tool comparison HP UFT/QTP vs. Selenium - Prashant Malhotra

Overview Company & Product Portfolio

Open Source in Mobile Test Automation. Ru Cindrea - Altom ru@altom.ro

BDD FOR AUTOMATING WEB APPLICATION TESTING. Stephen de Vries

automated acceptance testing of mobile apps

Axe in the Agile World

Software Continuous Integration & Delivery

Enable Your Automated Web App Testing by WebDriver. Yugang Fan Intel

STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES

Agile Web Application Testing

QA Tools (QTP, QC/ALM), Selenium with Java, Mobile with Automation, Unix, SQL, SOAP UI

QEx Whitepaper. Automation Testing Pillar: Selenium. Naveen Saxena. AuthOr:

Agile Test Planning with the Agile Testing Quadrants

SOFTWARE TESTING PROCESSES PRESENTATION

Client Overview. Engagement Situation. Key Requirements

Web UI & Functional Test Automation for Continuous Agile Deliveries

You ll need to have: It d be great if you have:

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Best Practices in Automation Testing of Mobile Applications

Copyrighted , Address :- EH1-Infotech, SCF 69, Top Floor, Phase 3B-2, Sector 60, Mohali (Chandigarh),

Sandesh Prasanna Kumar

Fail early, fail often, succeed sooner!

Continuous Integration

The Agile Movement An introduction to agile software development

Mobile App Testing. Main challenges, different approaches, one solution

Continuous Delivery. Ariel Alonso, IPC

Functional UI testing of Adobe Flex RIA. Viktor Gamov August,

COMPUTER SCIENCE (AS) Associate Degree, Certificate of Achievement & Department Certificate Programs

Skillsoft Course Directory

ASSURING SOFTWARE QUALITY USING VISUAL STUDIO 2010

Making Test Automation Work in Agile Projects

How To Write Unit Tests In A Continuous Integration

DevOps Best Practices for Mobile Apps. Sanjeev Sharma IBM Software Group

Professional Test Automation. The GUI Test Tool for Java and Web

Test Automation -Selenium

Telerik: Develop Experiences

How To Test On An Hp Mobile Device

DELIVERING AGILE QUALITY ASSURANCE THROUGH EXTREME AUTOMATION

What is new for HP LoadRunner and Performance Center 11.52

Testing Python. Applying Unit Testing, TDD, BDD and Acceptance Testing

VERIFICATION AND VALIDATION AUTOMATED TESTING TOOLS CLAUDIU ADAM

LoadRunner and Performance Center v11.52 Technical Awareness Webinar Training

Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard

The Most Popular UI/Apps Framework For IVI on Linux

A Comprehensive Review of Web-based Automation Testing Tools

Functional Testing of Adobe Flex Applications: Four Benefits of Using TestComplete

Mobile Application Testing

Perfect Your Mobile App with Load Testing and Test Automation

UML-based Test Generation and Execution

Aaron Evans Software Quality Assurance, Test Automation, SDET, Web Developer

Automated testing for Mobility New age applications require New age Mobility solutions

Certified Selenium Professional VS-1083

Automating Functional Tests Using Selenium

QA & Test Management. Overview.

"Selecting Mobile Application Automation Tools"

Mobile Testing, Agile Methodologies & You!

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

Mobile Development with Qt

DESIGN OF AUTOMATION SCRIPTS EXECUTION APPLICATION FOR SELENIUM WEBDRIVER AND TestNG FRAMEWORK

WHITE PAPER on Test Automation Framework Using MBT. Dec 2013

AUTOMATING THE WEB APPLICATIONS USING THE SELENIUM RC

Developing Mapping Applications with ArcGIS Runtime SDK for Windows Mobile. Jay Chen Justin Colville

Most of the security testers I know do not have

Speed to Market in Mobile Development

Best Practices for Improving the Quality and Speed of Your Agile Testing

Tech Radar - May 2015

How To Be Successful At An Agile Software Engineering

Making Test Automation Work in Agile Projects

Transcription:

Behavior Driven Development and Testing of Qt and QML applications Qt Developer Days 2014 by Reginald Stadlbauer

About me Name: Reginald Stadlbauer Company: froglogic GmbH Position: co-founder and CEO Worked as Software Engineer at Trolltech and the KDE project

About froglogic HQ: Hamburg Founded: 2003 US presence since 2008 Product focus on Squish - Squish GUI Tester (Cross-Platform/Cross-Technology GUI Test Automation) - Squish Coco (C, C++ and C# Code Coverage) More than 3.000 customers world-wide

Overview What is BDD and TDD Automating a Behavior Driven Test Live Demo & Conclusion

What is BDD / BDT? BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters. - Dan North http://en.wikipedia.org/wiki/behavior-driven_development OR...

What is BDD / BDT? Based on Test Driven Development - Write (failing) test - Implement feature until test passes - Unit-Test level granularity (inside-out) But - Focus on application's behavior and specification - Description in a human-readable DSL (e.g. Gherkin) - Less focus on implementation details

Versatile usage of Feature Files User story / feature specification Communicate with customer / users Documentation of acceptance test Sequence to walk through for manual tests Storyboard for automation of tests

Why BDD/BDT Test first development on a higher level Clearly separate test logic from implementation Allow non-programmers to define features & tests Have a common, single language two communicate

What is BDD / BDT Unit Conversion

What is BDD / BDT Unit Conversion Feature: Valid conversion Scenario: Convert meter in centimeter Given the Unit Converter is running When I enter 378.9 And choose to convert from "m" And choose to convert to "cm" And click Convert Then 37890 should be displayed in the result field Feature File (Gherkin)

What is BDD / BDT Unit Conversion Feature: Invalid conversion Scenario: Mix units Given the Unit Converter is running When I enter 378.9 And choose to convert from "m" And choose to convert to "kg" And click Convert Then ERROR should be displayed in the result field And "Unit type mismatch: Length vs. Weight." should be displayed in red Feature File (Gherkin)

What is BDD / BDT The Process Write a failing Feature Test Implement/ Refactor Code Make Feature Test pass Test Manually Automated

Automating a Behavior Driven Test Requirements - BDT framework - testing framework (unit, GUI,...) - Glue between both

BDT Framework Generate Skeletons Parse feature files Generate step definition skeletons (functions and annotations) in preferred language Test.py Test.feature Feature: Valid conversion Scenario: Convert meter in centimeter @Step("Given the Unit Converter is running") def step(context): test.warning("implement me ) Given the Unit Converter is running @Step("When I enter 378.9") When I enter 378.9 def step(context):... test.warning("implement me )

BDT Framework Run Feature Files Parse feature files Execute feature files by mapping to steps to step definitions (functions) Reporting Test.feature Test.py @Step("Given the Unit Converter is running") Feature: Valid conversion def step(context): [...] @Step("When I enter 378.9") def step(context): [...] Scenario: Convert meter in centimeter Given the Unit Converter is running When I enter 378.9...

Testing framework Support the specific programming language Support the specific UI technology of AUT Scripting support / integration options Tooling for convenient test creation, maintenance and debugging Test.py @Step("Given the Unit Converter is running") def step(context): startapplication("unitconverter ) @Step("When I enter 378.9") def step(context): click("fromfield ) typetext("378.9 )

Integrating BDT and test frameworks Need to talk the same language Reporting Debugging

BDT Frameworks Cucumber JBehave Behave SpecFlow RSpec Lettuce Squish GUI Tester...

Unit Testing Frameworks QtTestLib Qt Quick Test CppUnit GoogleTest xunit NUnit JUnit...

GUI Testing Frameworks Squish GUI Tester HP QTP Rational Functional Tester Selenium...

Live Demos QML Unit Converter - Non-GUI test (backend) - GUI test (frontend)

Q&A Questions? Visit our booth or email sales@froglogic.com Free and supported trial of Squish at http://www.froglogic.com/evaluate

About Squish GUI Tester Cross-Platform / Cross-GUI-Technology Test Automation - Windows, Linux, Mac OS X, Unix, RTOSes, Mobile - Java (Swing/AWT, SWT/RCP, JavaFx), Qt/QML/QtQuick, Web, MFC, WinForms, WPF, ios, Cocoa, Carbon, Android, Tk, Flex, Object-based GUI object identification Record & replay Powerful scripting (JavaScript, Python, Ruby, Tcl, Perl) Eclipse-based IDE Built-in BDD framework and support Batch-testing via command-line tools Remote/distributed testing architecture Integrations: Microsoft ALM, HP QC/ALM, Rational RQM, Seapine TCM, SpiraTest, MKS, XStudio, Jenkins, Hudson, TeamCity, Bamboo, Robot Framework, JUnit, Maven,