SlideShare a Scribd company logo
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

ODP
Introduction To Agile
PDF
FME in Action to Support Pharma Giant Roche
PDF
Gitflow with FME and Autobuilding a Project with the Gitlab Build Pipeline
PPTX
Intelligent Bus Fare Bay System Using RFID Card
PDF
CTO Summit 2022
PDF
Modelling Trees with FME
PPTX
git, 이해부터 활용까지
PDF
Git Branching Model
Introduction To Agile
FME in Action to Support Pharma Giant Roche
Gitflow with FME and Autobuilding a Project with the Gitlab Build Pipeline
Intelligent Bus Fare Bay System Using RFID Card
CTO Summit 2022
Modelling Trees with FME
git, 이해부터 활용까지
Git Branching Model

What's hot (20)

PDF
Version Control & Git
PPT
Telégrafo Óptico
PDF
Machine Learning Platformization & AutoML: Adopting ML at Scale in the Enterp...
PDF
To Loop or Not to Loop: Overcoming Roadblocks with FME
PPTX
MuleSoft Architecture Presentation
PDF
Postman Webinar: "API Governance with Postman"
PDF
Sample Solution Blueprint
PPTX
Splunk Partner+ Program - Partner Marketing e-Learning - France August 2017
PPTX
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
PDF
Monolithic vs Microservices Architecture
PDF
List Manipulation in FME
PDF
Power Platform ALM with DevOps
PPTX
Git version control and trunk based approach with VSTS
PDF
Git Branching for Agile Teams
PPT
Ay'ın görünüş şekilleri
PDF
A Git Workflow Model or Branching Strategy
PDF
Cctv training course
PPTX
GitHub Presentation
PDF
Introducing GitLab (June 2018)
ODP
Beginners Guide to Drupal
Version Control & Git
Telégrafo Óptico
Machine Learning Platformization & AutoML: Adopting ML at Scale in the Enterp...
To Loop or Not to Loop: Overcoming Roadblocks with FME
MuleSoft Architecture Presentation
Postman Webinar: "API Governance with Postman"
Sample Solution Blueprint
Splunk Partner+ Program - Partner Marketing e-Learning - France August 2017
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Monolithic vs Microservices Architecture
List Manipulation in FME
Power Platform ALM with DevOps
Git version control and trunk based approach with VSTS
Git Branching for Agile Teams
Ay'ın görünüş şekilleri
A Git Workflow Model or Branching Strategy
Cctv training course
GitHub Presentation
Introducing GitLab (June 2018)
Beginners Guide to Drupal
Ad

Similar to Quality Assurance of FME Scripts (20)

PDF
Automated Testing - How to Guarantee Correct FME Output Every Time
PDF
Empowering Users with Best Practices, Tips, and Tricks.pptx.pdf
PDF
Don’t Bug Out! The Ins and Outs of Debugging FME Workflows (UC Version)
PDF
FME:23 for the Enterprise - A Deep Dive into Key New Features
PPTX
How Not To Be Caught Flat-footed With Unpredictable FME Results
PDF
rTest, a Testing Tool for FME Workspaces
PDF
Novel Solutions To Process Big Data
PDF
Save the Date for Quality Data: Making Use of DateTime
PDF
Don’t Bug Out! The Ins and Outs of Debugging FME Workflows
PDF
Don’t Bug Out! The Ins and Outs of Debugging FME Workflows
PDF
Marrying FME & ArcGIS: Automating GIS Workflows for Maximum Efficiency
PDF
Tasks Your Business Should Automate in 2022 That Just Make Sense
PDF
Unveiling FME 2019
PPTX
No pressure, but the Workspace needs fixing so the coworker can go have her b...
PDF
FME 2022.0: Driving Data Decisions, Fueling Innovation
PDF
Save the Date for Quality Data: Making Use of DateTime
DOC
Rft courseware
PDF
Lifting the Hood of FME Engine 2022.0
PPTX
FME 2020 Platform Scenarios
PPTX
Présentation du FME World Tour 2018 à Montréal
Automated Testing - How to Guarantee Correct FME Output Every Time
Empowering Users with Best Practices, Tips, and Tricks.pptx.pdf
Don’t Bug Out! The Ins and Outs of Debugging FME Workflows (UC Version)
FME:23 for the Enterprise - A Deep Dive into Key New Features
How Not To Be Caught Flat-footed With Unpredictable FME Results
rTest, a Testing Tool for FME Workspaces
Novel Solutions To Process Big Data
Save the Date for Quality Data: Making Use of DateTime
Don’t Bug Out! The Ins and Outs of Debugging FME Workflows
Don’t Bug Out! The Ins and Outs of Debugging FME Workflows
Marrying FME & ArcGIS: Automating GIS Workflows for Maximum Efficiency
Tasks Your Business Should Automate in 2022 That Just Make Sense
Unveiling FME 2019
No pressure, but the Workspace needs fixing so the coworker can go have her b...
FME 2022.0: Driving Data Decisions, Fueling Innovation
Save the Date for Quality Data: Making Use of DateTime
Rft courseware
Lifting the Hood of FME Engine 2022.0
FME 2020 Platform Scenarios
Présentation du FME World Tour 2018 à Montréal
Ad

More from Safe Software (20)

PDF
Getting Started with Data Integration: FME Form 101
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
PDF
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
PDF
Notification System for Construction Logistics Application
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
PDF
FME in Overdrive - Peak of Data & AI 2025
PDF
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
PDF
Pipeline Industry IoT - Real Time Data Monitoring
PDF
FME in Overdrive: Unleashing the Power of Parallel Processing
PDF
Fiber to the People! By Deutsche Telekom
PDF
Governing Geospatial Data at Scale: Optimizing ArcGIS Online with FME in Envi...
PDF
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
PDF
Introducing and Operating FME Flow for Kubernetes in a Large Enterprise: Expe...
PDF
5 Things to Consider When Deploying AI in Your Enterprise
Getting Started with Data Integration: FME Form 101
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Notification System for Construction Logistics Application
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Transforming Utility Networks: Large-scale Data Migrations with FME
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
FME in Overdrive - Peak of Data & AI 2025
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Pipeline Industry IoT - Real Time Data Monitoring
FME in Overdrive: Unleashing the Power of Parallel Processing
Fiber to the People! By Deutsche Telekom
Governing Geospatial Data at Scale: Optimizing ArcGIS Online with FME in Envi...
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Introducing and Operating FME Flow for Kubernetes in a Large Enterprise: Expe...
5 Things to Consider When Deploying AI in Your Enterprise

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
A Presentation on Artificial Intelligence
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Encapsulation theory and applications.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Machine Learning_overview_presentation.pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Electronic commerce courselecture one. Pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Building Integrated photovoltaic BIPV_UPV.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation_ Review paper, used for researhc scholars
Diabetes mellitus diagnosis method based random forest with bat algorithm
Unlocking AI with Model Context Protocol (MCP)
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
A Presentation on Artificial Intelligence
The AUB Centre for AI in Media Proposal.docx
Dropbox Q2 2025 Financial Results & Investor Presentation
Encapsulation theory and applications.pdf
Chapter 3 Spatial Domain Image Processing.pdf
cuic standard and advanced reporting.pdf
Review of recent advances in non-invasive hemoglobin estimation
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Machine Learning_overview_presentation.pptx
NewMind AI Weekly Chronicles - August'25-Week II
Electronic commerce courselecture one. Pdf
sap open course for s4hana steps from ECC to s4
Profit Center Accounting in SAP S/4HANA, S4F28 Col11

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