SlideShare a Scribd company logo
1 of 29
Download to read offline
Quality assurance of FME
scripts
FME
User
Conference
20
22
Gitter is a Swedish IT consulting
company focused on providing GIS
solutions mainly in the areas of energy,
infrastructure, public environments and
forestry.
20
22
FME
User
Conference
Feel Safe
How to test your models and
Changing a model or updating software?
20
22
FME
User
Conference
Agenda
We will present a test method for quality assurance of
FME models (scripts or custom transformers) that is not
based on defining test cases but instead works by
comparing features at different measure-points in a
model to assure that data has not changed in an
unwanted way after updating a model or component. We
will also talk about how to automate tests in Azure
DevOps.
In this presentation:
● The challenge
● A real case
● Our solution
● Test automation
● Conclusions
20
22
FME
User
Conference
The challenge of maintaining complex FME models
20
22
FME
User
Conference
Challenge
FME makes it possible to solve complex problems,
however that often leads to complex models which
are:
- difficult and time consuming to verify
Typical scenarios when tests are needed:
- developing a new model
- updating an existing model
- updating FME version, transformer versions or
dependent components (for example ArcGIS)
20
22
FME
User
Conference
What we updated
• FME Server: FME 2017.1 to FME 2020.2
• ArcGIS 10.3.1 to ArcGIS 10.6.1
• The models were not updated
What happened
FME DateTime functions returned a <null> value in the model WHEN:
• arcpy was used in a PythonCaller
AND
• the DateTime functions were used after the PythonCaller
Total number of models: > 100
Number of models affected by the unexpected behaviour: <5%
Reason:
The combination FME 2020.2 and ArcGIS 10.6.1 resulted in this unexpected behaviour.
When the unexpected happens
A real
case
20
22
FME
User
Conference
Sequence that did not work
Result: _timestamp = <null>
Sequence that worked
Result: _timestamp = 20220611102232
When the unexpected happens
A real
case
20
22
FME
User
Conference
▪ All scripts were published to a FME Server in a test environment
▪ The scripts were scheduled and ran during a test period
▪ The scripts were updating more than 700 tables and just 20 were affected
by the error
▪ Most of the tables were used for background information in map services
▪ We never found the errors during the test period
▪ The errors were found after publishing to FME Server production
environment
Data verification:
Only manual inspections were performed
When the unexpected happens
A real
case
20
22
FME
User
Conference
With appropriate test methods
we should have been able to find
this unwanted behaviour
Could we have found this
behaviour at an earlier stage?
20
22
FME
User
Conference
Our solution
20
22
FME
User
Conference
Our solution
To be able to find the unwanted behaviour described earlier we need
a test that:
▪ is easy to implement in existing models
▪ can identify where information differs from the expected for any
given point of measure in a model
Idea
• Save FFS files at different measure points in the models that can be
used to compare the results, before and after the updates
20
22
FME
User
Conference
Step1 - Generate a baseline (before any updates)
TestTool
Transformers
TestTool
Settings:
- Generate Baseline
- START
- UniqueName
- 1000 (no of objects to save)
Settings:
- Generate Baseline
- STOP
- UniqueName
- 1000
The tool is used before and
after the transformers in the
model that should be tested
20
22
FME
User
Conference
Step 2 – Collect data (after any updates)
TestTool TestTool
Settings:
- Collect data for test
- START
- UniqueName
- 1000 objects
Settings:
- Collect data for test
- STOP
- UniqueName
- 1000 objects
BASELINE_START data is read back
into the flow (pipeline) to assure that
same data enters the transformers.
Transformers
20
22
FME
User
Conference
Step 3 - Analysis
A separate model analyses the FFS files generated during the baseline- and collect runs at the stop measure
points.
Any differences between the files are identified and logged.
Data at the STOP measure points
are analysed
FME
User
Conference
20
22
Example – Report.html
20
22
FME
User
Conference
Summary
The TestTool is a custom transformer that is easy to
add to existing models and is used to save FFS files
at different points in a model.
The TestTool can be used in a passthrough mode.
The analysis model is used to compare FFS files at
STOP points and reports any differences.
20
22
FME
User
Conference
What do we need to be able to
run the tests systematically?
Test Automation!
20
22
FME
User
Conference
Test automation
20
22
FME
User
Conference
Benefits of test automation
- Tests runs automatically without human intervention when models are pushed into
a repository
- Untested models are not deployed into production
- Manual testing is time consuming
- The test results are transparent and instantly visible for all developers
- Continuous testing minimizes the risk that any contribution introduces errors in the
model
As software developers, test automation is a natural part in the software developing
process.
20
22
FME
User
Conference
Test automation in Azure DevOps
Gitter and most of our
customers are using Azure
DevOps in the software
developing process.
DevOps pipelines are a proven
way to support test automation.
Place your screen capture here
20
22
FME
User
Conference
Implementation of test automation for
FME models in Azure DevOps
Azure DevOps
On-prem server
Local development environment
triggers pipeline
push
code
and
tests
run tests
run tests
r
e
a
d
q
u
e
u
e
a
n
d
d
o
w
n
l
o
a
d
c
o
d
e
w
r
i
t
e
r
e
s
u
l
t
self
hosted
agent
20
22
FME
User
Conference
Example - Test result
20
22
FME
User
Conference
Conclusions
20
22
FME
User
Conference
Summary
FME and FME Server has become a central and
important software and integration platform and
deploying untested models may cause severe
consequences.
Our customers asks for quality assurance
Today we presented one test method that verified a
specific problem. However other methods are needed to
achieve full test coverage.
We are aware of previous work in this field within the
fme community, e.g. rTest
We feel that established test methodologies and test
frameworks for FME are missing
20
22
FME
User
Conference
Call to Action
We would like to propose:
- Safe together with partners and users
work for establishing recognized test
methodologies, frameworks and best
practices.
20
22
FME
User
Conference
Questions?
Thank You!
johan.esko@gitter.se
magnus.astrom@gitter.se
20
22
FME
User
Conference
Please Share Your Session Feedback
Log in & navigate to the
agenda. Select the
session you attended
Scroll down to “Session
Feedback”
Download EventMobi app
Event code: fmeuc
Click “Launch App”
Fill out the survey
and submit

More Related Content

What's hot

Automation Keys in FME Server: What They Are and Why You Should Use Them
Automation Keys in FME Server: What They Are and Why You Should Use ThemAutomation Keys in FME Server: What They Are and Why You Should Use Them
Automation Keys in FME Server: What They Are and Why You Should Use ThemSafe Software
 
Creating Custom Solutions with FME and Python
Creating Custom Solutions with FME and PythonCreating Custom Solutions with FME and Python
Creating Custom Solutions with FME and PythonSafe Software
 
Automated Application Integration with FME & Cityworks Webinar
Automated Application Integration with FME & Cityworks WebinarAutomated Application Integration with FME & Cityworks Webinar
Automated Application Integration with FME & Cityworks WebinarSafe Software
 
Power up Your BI with Geospatial Data
Power up Your BI with Geospatial DataPower up Your BI with Geospatial Data
Power up Your BI with Geospatial DataSafe Software
 
List Manipulation in FME
List Manipulation in FMEList Manipulation in FME
List Manipulation in FMESafe Software
 
How to Build Complex Calls to APIs (Without Writing Any Code)
How to Build Complex Calls to APIs (Without Writing Any Code)How to Build Complex Calls to APIs (Without Writing Any Code)
How to Build Complex Calls to APIs (Without Writing Any Code)Safe Software
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with PrometheusShiao-An Yuan
 
Leveraging Data Integration for Strategic GIS Governance
Leveraging Data Integration for Strategic GIS GovernanceLeveraging Data Integration for Strategic GIS Governance
Leveraging Data Integration for Strategic GIS GovernanceSafe Software
 
Spatial ETL For Web Services-Based Data Sharing
Spatial ETL For Web Services-Based Data SharingSpatial ETL For Web Services-Based Data Sharing
Spatial ETL For Web Services-Based Data SharingSafe Software
 
[Madrid-Meetup April 22] UAPIM.pptx
[Madrid-Meetup April 22] UAPIM.pptx[Madrid-Meetup April 22] UAPIM.pptx
[Madrid-Meetup April 22] UAPIM.pptxjorgelebrato
 
Implementing a Simple Web Application with FME Server
Implementing a Simple Web Application with FME ServerImplementing a Simple Web Application with FME Server
Implementing a Simple Web Application with FME ServerSafe Software
 
How to Monitor DOCSIS Devices Using SNMP, InfluxDB, and Telegraf
How to Monitor DOCSIS Devices Using SNMP, InfluxDB, and TelegrafHow to Monitor DOCSIS Devices Using SNMP, InfluxDB, and Telegraf
How to Monitor DOCSIS Devices Using SNMP, InfluxDB, and TelegrafInfluxData
 
Mule Runtime: Performance Tuning
Mule Runtime: Performance Tuning Mule Runtime: Performance Tuning
Mule Runtime: Performance Tuning MuleSoft
 
Singapore MuleSoft Meetup - 24 Aug 2022
Singapore MuleSoft Meetup - 24 Aug 2022Singapore MuleSoft Meetup - 24 Aug 2022
Singapore MuleSoft Meetup - 24 Aug 2022Royston Lobo
 
How Salesforce built a Scalable, World-Class, Performance Engineering Team
How Salesforce built a Scalable, World-Class, Performance Engineering TeamHow Salesforce built a Scalable, World-Class, Performance Engineering Team
How Salesforce built a Scalable, World-Class, Performance Engineering TeamSalesforce Developers
 
Zabbix 3.2 presentation June 2017
Zabbix 3.2 presentation June 2017Zabbix 3.2 presentation June 2017
Zabbix 3.2 presentation June 2017Amirhossein Saberi
 

What's hot (20)

FME Overview
FME OverviewFME Overview
FME Overview
 
Automation Keys in FME Server: What They Are and Why You Should Use Them
Automation Keys in FME Server: What They Are and Why You Should Use ThemAutomation Keys in FME Server: What They Are and Why You Should Use Them
Automation Keys in FME Server: What They Are and Why You Should Use Them
 
Creating Custom Solutions with FME and Python
Creating Custom Solutions with FME and PythonCreating Custom Solutions with FME and Python
Creating Custom Solutions with FME and Python
 
Automated Application Integration with FME & Cityworks Webinar
Automated Application Integration with FME & Cityworks WebinarAutomated Application Integration with FME & Cityworks Webinar
Automated Application Integration with FME & Cityworks Webinar
 
Power up Your BI with Geospatial Data
Power up Your BI with Geospatial DataPower up Your BI with Geospatial Data
Power up Your BI with Geospatial Data
 
List Manipulation in FME
List Manipulation in FMEList Manipulation in FME
List Manipulation in FME
 
How to Build Complex Calls to APIs (Without Writing Any Code)
How to Build Complex Calls to APIs (Without Writing Any Code)How to Build Complex Calls to APIs (Without Writing Any Code)
How to Build Complex Calls to APIs (Without Writing Any Code)
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
 
Leveraging Data Integration for Strategic GIS Governance
Leveraging Data Integration for Strategic GIS GovernanceLeveraging Data Integration for Strategic GIS Governance
Leveraging Data Integration for Strategic GIS Governance
 
Zabbix Monitoring Platform
Zabbix Monitoring Platform Zabbix Monitoring Platform
Zabbix Monitoring Platform
 
Spatial ETL For Web Services-Based Data Sharing
Spatial ETL For Web Services-Based Data SharingSpatial ETL For Web Services-Based Data Sharing
Spatial ETL For Web Services-Based Data Sharing
 
[Madrid-Meetup April 22] UAPIM.pptx
[Madrid-Meetup April 22] UAPIM.pptx[Madrid-Meetup April 22] UAPIM.pptx
[Madrid-Meetup April 22] UAPIM.pptx
 
Introduction to MuleSoft
Introduction to MuleSoftIntroduction to MuleSoft
Introduction to MuleSoft
 
Implementing a Simple Web Application with FME Server
Implementing a Simple Web Application with FME ServerImplementing a Simple Web Application with FME Server
Implementing a Simple Web Application with FME Server
 
How to Monitor DOCSIS Devices Using SNMP, InfluxDB, and Telegraf
How to Monitor DOCSIS Devices Using SNMP, InfluxDB, and TelegrafHow to Monitor DOCSIS Devices Using SNMP, InfluxDB, and Telegraf
How to Monitor DOCSIS Devices Using SNMP, InfluxDB, and Telegraf
 
Mule Runtime: Performance Tuning
Mule Runtime: Performance Tuning Mule Runtime: Performance Tuning
Mule Runtime: Performance Tuning
 
Singapore MuleSoft Meetup - 24 Aug 2022
Singapore MuleSoft Meetup - 24 Aug 2022Singapore MuleSoft Meetup - 24 Aug 2022
Singapore MuleSoft Meetup - 24 Aug 2022
 
How Salesforce built a Scalable, World-Class, Performance Engineering Team
How Salesforce built a Scalable, World-Class, Performance Engineering TeamHow Salesforce built a Scalable, World-Class, Performance Engineering Team
How Salesforce built a Scalable, World-Class, Performance Engineering Team
 
Cloud Monitoring tool Grafana
Cloud Monitoring  tool Grafana Cloud Monitoring  tool Grafana
Cloud Monitoring tool Grafana
 
Zabbix 3.2 presentation June 2017
Zabbix 3.2 presentation June 2017Zabbix 3.2 presentation June 2017
Zabbix 3.2 presentation June 2017
 

Similar to Quality Assurance of FME Scripts

Automated Testing - How to Guarantee Correct FME Output Every Time
Automated Testing - How to Guarantee Correct FME Output Every TimeAutomated Testing - How to Guarantee Correct FME Output Every Time
Automated Testing - How to Guarantee Correct FME Output Every TimeSafe Software
 
UVM_Full_Print_n.pptx
UVM_Full_Print_n.pptxUVM_Full_Print_n.pptx
UVM_Full_Print_n.pptxnikitha992646
 
Mastering DevOps-Driven Data Integration with FME
Mastering DevOps-Driven Data Integration with FMEMastering DevOps-Driven Data Integration with FME
Mastering DevOps-Driven Data Integration with FMESafe Software
 
Track g semiconductor test program - testinsight
Track g  semiconductor test program - testinsightTrack g  semiconductor test program - testinsight
Track g semiconductor test program - testinsightchiportal
 
Seretta Gamba - A Sneaky Way to Introduce More Automated Testing
Seretta Gamba - A Sneaky Way to Introduce More Automated TestingSeretta Gamba - A Sneaky Way to Introduce More Automated Testing
Seretta Gamba - A Sneaky Way to Introduce More Automated TestingTEST Huddle
 
Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)Nicholas Bowman
 
Automated Regression Testing for Embedded Systems in Action
Automated Regression Testing for Embedded Systems in ActionAutomated Regression Testing for Embedded Systems in Action
Automated Regression Testing for Embedded Systems in ActionAANDTech
 
DevOps CI Automation Continuous Integration
DevOps CI Automation Continuous IntegrationDevOps CI Automation Continuous Integration
DevOps CI Automation Continuous IntegrationIRJET Journal
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsQuontra Solutions
 
Qa case study
Qa case studyQa case study
Qa case studyhopperdev
 
Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016Modelon
 
FME:23 for the Enterprise - A Deep Dive into Key New Features
FME:23 for the Enterprise - A Deep Dive into Key New FeaturesFME:23 for the Enterprise - A Deep Dive into Key New Features
FME:23 for the Enterprise - A Deep Dive into Key New FeaturesSafe Software
 
Empowering Users with Best Practices, Tips, and Tricks.pptx.pdf
Empowering Users with Best Practices, Tips, and Tricks.pptx.pdfEmpowering Users with Best Practices, Tips, and Tricks.pptx.pdf
Empowering Users with Best Practices, Tips, and Tricks.pptx.pdfSafe Software
 
rTest - The Testing Tool for FME Workspace
rTest - The Testing Tool for FME WorkspacerTest - The Testing Tool for FME Workspace
rTest - The Testing Tool for FME WorkspaceSafe Software
 
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQMIBM Rational
 
Incorporating VM Technology Into Your Automated Testing
Incorporating VM Technology Into Your Automated TestingIncorporating VM Technology Into Your Automated Testing
Incorporating VM Technology Into Your Automated Testingdmyakovlev
 

Similar to Quality Assurance of FME Scripts (20)

Automated Testing - How to Guarantee Correct FME Output Every Time
Automated Testing - How to Guarantee Correct FME Output Every TimeAutomated Testing - How to Guarantee Correct FME Output Every Time
Automated Testing - How to Guarantee Correct FME Output Every Time
 
UVM_Full_Print_n.pptx
UVM_Full_Print_n.pptxUVM_Full_Print_n.pptx
UVM_Full_Print_n.pptx
 
Mastering DevOps-Driven Data Integration with FME
Mastering DevOps-Driven Data Integration with FMEMastering DevOps-Driven Data Integration with FME
Mastering DevOps-Driven Data Integration with FME
 
Track g semiconductor test program - testinsight
Track g  semiconductor test program - testinsightTrack g  semiconductor test program - testinsight
Track g semiconductor test program - testinsight
 
Seretta Gamba - A Sneaky Way to Introduce More Automated Testing
Seretta Gamba - A Sneaky Way to Introduce More Automated TestingSeretta Gamba - A Sneaky Way to Introduce More Automated Testing
Seretta Gamba - A Sneaky Way to Introduce More Automated Testing
 
Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)
 
Automated Regression Testing for Embedded Systems in Action
Automated Regression Testing for Embedded Systems in ActionAutomated Regression Testing for Embedded Systems in Action
Automated Regression Testing for Embedded Systems in Action
 
Resume
ResumeResume
Resume
 
Batch Process Analytics
Batch Process Analytics Batch Process Analytics
Batch Process Analytics
 
DevOps CI Automation Continuous Integration
DevOps CI Automation Continuous IntegrationDevOps CI Automation Continuous Integration
DevOps CI Automation Continuous Integration
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
 
Qa case study
Qa case studyQa case study
Qa case study
 
Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016
 
FME:23 for the Enterprise - A Deep Dive into Key New Features
FME:23 for the Enterprise - A Deep Dive into Key New FeaturesFME:23 for the Enterprise - A Deep Dive into Key New Features
FME:23 for the Enterprise - A Deep Dive into Key New Features
 
Empowering Users with Best Practices, Tips, and Tricks.pptx.pdf
Empowering Users with Best Practices, Tips, and Tricks.pptx.pdfEmpowering Users with Best Practices, Tips, and Tricks.pptx.pdf
Empowering Users with Best Practices, Tips, and Tricks.pptx.pdf
 
rTest - The Testing Tool for FME Workspace
rTest - The Testing Tool for FME WorkspacerTest - The Testing Tool for FME Workspace
rTest - The Testing Tool for FME Workspace
 
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
 
Maestro_Abstract
Maestro_AbstractMaestro_Abstract
Maestro_Abstract
 
Test automation
Test automationTest automation
Test automation
 
Incorporating VM Technology Into Your Automated Testing
Incorporating VM Technology Into Your Automated TestingIncorporating VM Technology Into Your Automated Testing
Incorporating VM Technology Into Your Automated Testing
 

More from Safe Software

Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
The Critical Role of Spatial Data in Today's Data Ecosystem
The Critical Role of Spatial Data in Today's Data EcosystemThe Critical Role of Spatial Data in Today's Data Ecosystem
The Critical Role of Spatial Data in Today's Data EcosystemSafe Software
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataSafe Software
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Mastering MicroStation DGN: How to Integrate CAD and GIS
Mastering MicroStation DGN: How to Integrate CAD and GISMastering MicroStation DGN: How to Integrate CAD and GIS
Mastering MicroStation DGN: How to Integrate CAD and GISSafe Software
 
Geospatial Synergy: Amplifying Efficiency with FME & Esri
Geospatial Synergy: Amplifying Efficiency with FME & EsriGeospatial Synergy: Amplifying Efficiency with FME & Esri
Geospatial Synergy: Amplifying Efficiency with FME & EsriSafe Software
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfSafe Software
 
Breaking Barriers & Leveraging the Latest Developments in AI Technology
Breaking Barriers & Leveraging the Latest Developments in AI TechnologyBreaking Barriers & Leveraging the Latest Developments in AI Technology
Breaking Barriers & Leveraging the Latest Developments in AI TechnologySafe Software
 
Best Practices to Navigating Data and Application Integration for the Enterpr...
Best Practices to Navigating Data and Application Integration for the Enterpr...Best Practices to Navigating Data and Application Integration for the Enterpr...
Best Practices to Navigating Data and Application Integration for the Enterpr...Safe Software
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataSafe Software
 
New Year's Fireside Chat with Safe Software’s Founders
New Year's Fireside Chat with Safe Software’s FoundersNew Year's Fireside Chat with Safe Software’s Founders
New Year's Fireside Chat with Safe Software’s FoundersSafe Software
 
Taking Off with FME: Elevating Airport Operations to New Heights
Taking Off with FME: Elevating Airport Operations to New HeightsTaking Off with FME: Elevating Airport Operations to New Heights
Taking Off with FME: Elevating Airport Operations to New HeightsSafe Software
 
Initiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance StrategySafe Software
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Safe Software
 
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...Safe Software
 
Identification of landscape features eligible for EU subsidy - Analysis of la...
Identification of landscape features eligible for EU subsidy - Analysis of la...Identification of landscape features eligible for EU subsidy - Analysis of la...
Identification of landscape features eligible for EU subsidy - Analysis of la...Safe Software
 
Utilizing FME as an API Test Framework
Utilizing FME as an API Test Framework Utilizing FME as an API Test Framework
Utilizing FME as an API Test Framework Safe Software
 
Bringing Open Data Integration to the (SWECO) People
Bringing Open Data Integration to the (SWECO) PeopleBringing Open Data Integration to the (SWECO) People
Bringing Open Data Integration to the (SWECO) PeopleSafe Software
 
Democratizing Transformer Creation in FME
Democratizing Transformer Creation in FMEDemocratizing Transformer Creation in FME
Democratizing Transformer Creation in FMESafe Software
 

More from Safe Software (20)

Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
The Critical Role of Spatial Data in Today's Data Ecosystem
The Critical Role of Spatial Data in Today's Data EcosystemThe Critical Role of Spatial Data in Today's Data Ecosystem
The Critical Role of Spatial Data in Today's Data Ecosystem
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Mastering MicroStation DGN: How to Integrate CAD and GIS
Mastering MicroStation DGN: How to Integrate CAD and GISMastering MicroStation DGN: How to Integrate CAD and GIS
Mastering MicroStation DGN: How to Integrate CAD and GIS
 
Geospatial Synergy: Amplifying Efficiency with FME & Esri
Geospatial Synergy: Amplifying Efficiency with FME & EsriGeospatial Synergy: Amplifying Efficiency with FME & Esri
Geospatial Synergy: Amplifying Efficiency with FME & Esri
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
 
Breaking Barriers & Leveraging the Latest Developments in AI Technology
Breaking Barriers & Leveraging the Latest Developments in AI TechnologyBreaking Barriers & Leveraging the Latest Developments in AI Technology
Breaking Barriers & Leveraging the Latest Developments in AI Technology
 
Best Practices to Navigating Data and Application Integration for the Enterpr...
Best Practices to Navigating Data and Application Integration for the Enterpr...Best Practices to Navigating Data and Application Integration for the Enterpr...
Best Practices to Navigating Data and Application Integration for the Enterpr...
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
 
New Year's Fireside Chat with Safe Software’s Founders
New Year's Fireside Chat with Safe Software’s FoundersNew Year's Fireside Chat with Safe Software’s Founders
New Year's Fireside Chat with Safe Software’s Founders
 
Taking Off with FME: Elevating Airport Operations to New Heights
Taking Off with FME: Elevating Airport Operations to New HeightsTaking Off with FME: Elevating Airport Operations to New Heights
Taking Off with FME: Elevating Airport Operations to New Heights
 
Initiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance Strategy
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...
 
Identification of landscape features eligible for EU subsidy - Analysis of la...
Identification of landscape features eligible for EU subsidy - Analysis of la...Identification of landscape features eligible for EU subsidy - Analysis of la...
Identification of landscape features eligible for EU subsidy - Analysis of la...
 
Utilizing FME as an API Test Framework
Utilizing FME as an API Test Framework Utilizing FME as an API Test Framework
Utilizing FME as an API Test Framework
 
Bringing Open Data Integration to the (SWECO) People
Bringing Open Data Integration to the (SWECO) PeopleBringing Open Data Integration to the (SWECO) People
Bringing Open Data Integration to the (SWECO) People
 
Democratizing Transformer Creation in FME
Democratizing Transformer Creation in FMEDemocratizing Transformer Creation in FME
Democratizing Transformer Creation in FME
 

Recently uploaded

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

Quality Assurance of FME Scripts

  • 1. Quality assurance of FME scripts
  • 2. FME User Conference 20 22 Gitter is a Swedish IT consulting company focused on providing GIS solutions mainly in the areas of energy, infrastructure, public environments and forestry.
  • 3. 20 22 FME User Conference Feel Safe How to test your models and Changing a model or updating software?
  • 4. 20 22 FME User Conference Agenda We will present a test method for quality assurance of FME models (scripts or custom transformers) that is not based on defining test cases but instead works by comparing features at different measure-points in a model to assure that data has not changed in an unwanted way after updating a model or component. We will also talk about how to automate tests in Azure DevOps. In this presentation: ● The challenge ● A real case ● Our solution ● Test automation ● Conclusions
  • 5. 20 22 FME User Conference The challenge of maintaining complex FME models
  • 6. 20 22 FME User Conference Challenge FME makes it possible to solve complex problems, however that often leads to complex models which are: - difficult and time consuming to verify Typical scenarios when tests are needed: - developing a new model - updating an existing model - updating FME version, transformer versions or dependent components (for example ArcGIS)
  • 7. 20 22 FME User Conference What we updated • FME Server: FME 2017.1 to FME 2020.2 • ArcGIS 10.3.1 to ArcGIS 10.6.1 • The models were not updated What happened FME DateTime functions returned a <null> value in the model WHEN: • arcpy was used in a PythonCaller AND • the DateTime functions were used after the PythonCaller Total number of models: > 100 Number of models affected by the unexpected behaviour: <5% Reason: The combination FME 2020.2 and ArcGIS 10.6.1 resulted in this unexpected behaviour. When the unexpected happens A real case
  • 8. 20 22 FME User Conference Sequence that did not work Result: _timestamp = <null> Sequence that worked Result: _timestamp = 20220611102232 When the unexpected happens A real case
  • 9. 20 22 FME User Conference ▪ All scripts were published to a FME Server in a test environment ▪ The scripts were scheduled and ran during a test period ▪ The scripts were updating more than 700 tables and just 20 were affected by the error ▪ Most of the tables were used for background information in map services ▪ We never found the errors during the test period ▪ The errors were found after publishing to FME Server production environment Data verification: Only manual inspections were performed When the unexpected happens A real case
  • 10. 20 22 FME User Conference With appropriate test methods we should have been able to find this unwanted behaviour Could we have found this behaviour at an earlier stage?
  • 12. 20 22 FME User Conference Our solution To be able to find the unwanted behaviour described earlier we need a test that: ▪ is easy to implement in existing models ▪ can identify where information differs from the expected for any given point of measure in a model Idea • Save FFS files at different measure points in the models that can be used to compare the results, before and after the updates
  • 13. 20 22 FME User Conference Step1 - Generate a baseline (before any updates) TestTool Transformers TestTool Settings: - Generate Baseline - START - UniqueName - 1000 (no of objects to save) Settings: - Generate Baseline - STOP - UniqueName - 1000 The tool is used before and after the transformers in the model that should be tested
  • 14. 20 22 FME User Conference Step 2 – Collect data (after any updates) TestTool TestTool Settings: - Collect data for test - START - UniqueName - 1000 objects Settings: - Collect data for test - STOP - UniqueName - 1000 objects BASELINE_START data is read back into the flow (pipeline) to assure that same data enters the transformers. Transformers
  • 15. 20 22 FME User Conference Step 3 - Analysis A separate model analyses the FFS files generated during the baseline- and collect runs at the stop measure points. Any differences between the files are identified and logged. Data at the STOP measure points are analysed
  • 17. 20 22 FME User Conference Summary The TestTool is a custom transformer that is easy to add to existing models and is used to save FFS files at different points in a model. The TestTool can be used in a passthrough mode. The analysis model is used to compare FFS files at STOP points and reports any differences.
  • 18. 20 22 FME User Conference What do we need to be able to run the tests systematically? Test Automation!
  • 20. 20 22 FME User Conference Benefits of test automation - Tests runs automatically without human intervention when models are pushed into a repository - Untested models are not deployed into production - Manual testing is time consuming - The test results are transparent and instantly visible for all developers - Continuous testing minimizes the risk that any contribution introduces errors in the model As software developers, test automation is a natural part in the software developing process.
  • 21. 20 22 FME User Conference Test automation in Azure DevOps Gitter and most of our customers are using Azure DevOps in the software developing process. DevOps pipelines are a proven way to support test automation. Place your screen capture here
  • 22. 20 22 FME User Conference Implementation of test automation for FME models in Azure DevOps Azure DevOps On-prem server Local development environment triggers pipeline push code and tests run tests run tests r e a d q u e u e a n d d o w n l o a d c o d e w r i t e r e s u l t self hosted agent
  • 25. 20 22 FME User Conference Summary FME and FME Server has become a central and important software and integration platform and deploying untested models may cause severe consequences. Our customers asks for quality assurance Today we presented one test method that verified a specific problem. However other methods are needed to achieve full test coverage. We are aware of previous work in this field within the fme community, e.g. rTest We feel that established test methodologies and test frameworks for FME are missing
  • 26. 20 22 FME User Conference Call to Action We would like to propose: - Safe together with partners and users work for establishing recognized test methodologies, frameworks and best practices.
  • 29. 20 22 FME User Conference Please Share Your Session Feedback Log in & navigate to the agenda. Select the session you attended Scroll down to “Session Feedback” Download EventMobi app Event code: fmeuc Click “Launch App” Fill out the survey and submit