SlideShare a Scribd company logo
FHIR® is the registered trademark of HL7 and is used with the permission of HL7. The Flame Design mark is the registered trademark of HL7 and is used with the permission of HL7.
Amsterdam, 15-17 November | @fhir_furore | #fhirdevdays17 | www.fhirdevdays.com
Test Driven Development I - Intro
Richard Ettema, AEGIS.net, Inc.
Presented by
• Name: Richard Ettema
• Position:
• Lead Consultant, AEGIS.net, Inc.
• FHIR® Certified Implementer
• Background:
• 34+ years IT industry experience
• 14+ years leading HIT development/implementation efforts
• 4+ years contributing to the HL7® FHIR® specification (focus on testing)
• Sr. Architect / Lead Developer for the Touchstone Project
• Author of the AEGIS WildFHIR public test server and client
What would happen if airlines practiced “one and
done” testing?
How important is on-going or continuous testing?
Question…
How can implementations based on Industry based Standards like
FHIR® ensure they are truly Interoperable with each other?
• Choice:
Expensive 1-time-before-release conformance testing
• Will most likely uncover previously unknown conformance issues
• Introduce unneeded RISK and additional cost (budget and schedule)
Or,
Moderate expense with continuous testing (Test Driven Development)
• Expense decreases over time as testing becomes infused into the development life cycle
• Developers code to the specification as it becomes embedded within each coding cycle
• Budgets and schedule are less risky around conformance
Test Driven Development Philosophy
• Software development technique that implements short
development cycles
• Building on the Agile technique of coding to User Stories; Test Driven
Development asks developers to build functionality to pass very
specific Test Cases
• Each short development cycle requires that the software pass the
new Test Cases
How to integrate TDD into the development lifecycle
Test Driven Development with FHIR
• To ensure interoperability between applications claiming
conformance to the specification, a testing framework has been
established within the FHIR specification itself
https://www.hl7.org/fhir/STU3/testing.html
• This framework defines a Test Engine for processing a TestScript
resource as a natural language, computable format of a test case
• The TestScript resource is an implementation-agnostic description of
tests that allows test engines to evaluate if a FHIR implementation
conforms with the FHIR specification
https://www.hl7.org/fhir/STU3/testscript.html
FHIR Testing Framework – Test Engine Workflow
http://hl7.org/fhir/STU3/testing.html#execution
• Pre-Processing
• Determine whether or not the TestScript interactions match the capabilities of the system
under test. If supported, execution proceeds; if not, the test engine may halt execution.
• Setup Execution
• Optional operations that prepare the system under test for subsequent test execution.
• Test Execution
• Execute and record each test’s operations and assertions.
• Teardown Execution
• Optional operations that revert the system under test to its pre-test state.
• Post-Processing
• Cleanup of test execution data and collection of test results.
Pre-processing – Capability based testing
• The test engine will use the CapabilityStatement of the system under
test to determine how to process a TestScript.
• If the TestScript defines the testing of capabilities that the system
under test does support, the test engine will continue the workflow
process.
• If the TestScript defines the testing of capabilities that the system
under test does not support, the test engine should allow the
TestScript to be skipped.
Test Execution – Operations and Asserts
• Test execution consists of two action types:
• operation: The FHIR RESTful API interaction to be executed.
• assert: The rule that is evaluated against the results of the operation. If true,
the assert passes.
• All FHIR operations including the extended operations framework are
supported
• Key concept: The operation is always executed regardless of
whether or not an assert follows.
A little more about asserts…
• An assert acts on the current executed operation context
• It states a condition, rule or expression that will be evaluated against that
executed operation context
Asserts provide support for:
• Evaluation of both the inbound request or outbound response
• Complex and simple evaluation of HTTP headers and response codes
• Operators for equality, relational comparison, containment, etc.
• Expression language support for XPath, JSONPath and FHIRPath
• Payload comparison to defined fixtures (static or dynamic)
• Payload validation against defined FHIR profile(s)
• Plus a whole lot more…
Introducing Touchstone
• Available as a publicly accessible cloud-based testing platform (TaaS)
• Provides automated, internet-based interoperability testing of the
HL7® FHIR® specification
• Tests the capabilities of and interoperability between both FHIR
Server and Client implementations
• A blend between Test-Driven-Development (TDD) methodologies and
Natural Language Processing (NLP) TestScripts
Touchstone Landing Page
http://www.touchstone.com
Getting started with Touchstone
• Anyone can access the Touchstone landing page and view the publicly
available test definitions (TestScripts)
• Registration and acceptance of the user agreement must be
completed before any other features become accessible including test
execution
• Every user must belong to an organization
• Organizations may have 1 or more registered users in Touchstone
(based on subscription level)
Getting started – user registration
(Hands on exercise)
• If you are not yet registered in Touchstone,
select the Register menu item in the upper-
right navigation bar
• Enter your
• Touchstone user name
• Valid email address (for notifications)
• Password (twice for confirmation)
• Select “I’m not a robot”
• Click “Register”
Getting started – create a test system
(Hands on exercise)
• A test system must be available for test
executions
• You can use any existing, publicly accessible
test system, or
• Create your own test system:
• Select the “New Test System” menu item
• Fill out the required fields
• Change the privacy settings if desired
Getting started – Test Setup
(Hands on exercise)
• Test executions are based on Test Setups
• Steps:
• Select one or more Test Definitions
(TestScripts)
• Click the Create Test Setup link
• The Test Setup UI will be displayed
• Select the Test System(s)
• Fill in any other required fields
• Click Execute…
Getting started – Test Execution
(Hands on exercise)
Getting started – TestScript Execution
(Hands on exercise)
Getting started – TestScript Execution – Results
(Hands on exercise)
Analytics are built into Touchstone
Conformance
Analytics are built into Touchstone
Test Execution History
Test Driven Development with Touchstone
• Has this happened to you?
Your development team has been working hard to deliver their
implementation. Your QA team is ready to go and you ask the
developers – “is the app ready?” – meaning, did you finish your
testing?
Answer: Yes, sir. Good to go.
Reality: The QA team starts in and finds many issues.
Problem: Anyone can run a test and say a system passed or failed.
How do you know?
Evidence-Based Quality Assurance
• Continuous Testing against a defined standard ensures ‘no surprises’
when publishing new releases
• Continuous Testing generates data used in analytics which can
• show patterns and predict trouble areas
• pinpoint issues in development
• help show continuous interoperability to your customers, highlighting your
competence and reliability
• provide metrics that can tell the story about problem areas or where there is
little volatility
Benefits of using Touchstone – A Real world example
• The following graphs show the progression of testing for an
organization using the Touchstone production environment.
100% Passing
*Data used with organization’s permission
100% Passing
So, how can your organization use Touchstone?
• First and foremost, Touchstone can help your organization with FHIR
conformance testing
Touchstone
• maintains test suites for multiple FHIR versions
• includes basic, advanced, and various Connectathon scenarios
• tracks and maintains test results allowing organizations to view and share
those results as they wish
• provides the opportunity to validate conformance based on the test system’s
CapabilityStatement their server actually issues; you test for what you assert
your system is capable of doing
So, how can your organization use Touchstone?
• Second, organizations can utilize the Touchstone test suites during
software build cycles
Touchstone
• provides thorough logging of requests and responses allowing developers and
testers greater insight into why a test may have failed
• provides embedded, version specific links to the specification within the test
execution results to help narrow focus
• APIs are available to help automate testing (more about that in the advanced
session)
So, how can your organization use Touchstone?
• And, organizations have the opportunity to write and run their own
TestScripts within Touchstone
• Build your own scripts: conformance? regression? build verification and
validation?
• Can be uploaded to Touchstone by AEGIS upon approval or based on your subscription
level
• Coming soon! Touchstone IDE / TestScript Editor
• Governing organizations can build Implementation Guide test suites and
house them in Touchstone to facilitate conformance testing
• AEGIS offers Multi-day tutorials and training on Touchstone, FHIR
Testing and TestScript Authoring - http://www.aegis.net
Hands on Exercises
• Getting Started – registration and test system setup
• Test Setup and Execution - FHIR3-0-1-DevDays17
• Individual basic operations: read, search, create, update, delete
• Workflow: basic operations in a single TestScript illustrating a simple workflow
• Invalid Resource: attempts to create an invalid resource showing use of
integrated validation engine
• Connectathon Test Track
• We will review and select one of the test tracks for the next HL7 FHIR
Connectathon 17 event and begin the development of TestScripts
Discussion (Q & A)
FHIR® is the registered trademark of HL7 and is used with the permission of HL7. The Flame Design mark is the registered trademark of HL7 and is used with the permission of HL7.
Amsterdam, 15-17 November | @fhir_furore | #fhirdevdays17 | www.fhirdevdays.com
Thank you!

More Related Content

What's hot

2017 11-ccda-on-fhir
2017 11-ccda-on-fhir2017 11-ccda-on-fhir
2017 11-ccda-on-fhir
DevDays
 
fhir-documents
fhir-documentsfhir-documents
fhir-documents
DevDays
 
Furore devdays 2017- continua implementing fhir
Furore devdays 2017- continua implementing fhirFurore devdays 2017- continua implementing fhir
Furore devdays 2017- continua implementing fhir
DevDays
 
Fhir foundation (grahame)
Fhir foundation (grahame)Fhir foundation (grahame)
Fhir foundation (grahame)
DevDays
 
Dev days 2017 questionnaires (brian postlethwaite)
Dev days 2017 questionnaires (brian postlethwaite)Dev days 2017 questionnaires (brian postlethwaite)
Dev days 2017 questionnaires (brian postlethwaite)
DevDays
 
Advanced .net api (ewout)
Advanced .net api (ewout)Advanced .net api (ewout)
Advanced .net api (ewout)
DevDays
 
Security overview (grahame)
Security overview (grahame)Security overview (grahame)
Security overview (grahame)
DevDays
 
Furore devdays 2017-sdc (lloyd)
Furore devdays 2017-sdc (lloyd)Furore devdays 2017-sdc (lloyd)
Furore devdays 2017-sdc (lloyd)
DevDays
 
Beginners .net api dev days2017
Beginners  .net api   dev days2017Beginners  .net api   dev days2017
Beginners .net api dev days2017
DevDays
 
Furore devdays 2017- profiling academy - profiling guidelines v1
Furore devdays 2017- profiling academy - profiling guidelines v1Furore devdays 2017- profiling academy - profiling guidelines v1
Furore devdays 2017- profiling academy - profiling guidelines v1
DevDays
 
Integrating with the epic platform fhir dev days 17
Integrating with the epic platform fhir dev days 17Integrating with the epic platform fhir dev days 17
Integrating with the epic platform fhir dev days 17
DevDays
 
Furore devdays 2017- rdf2(solbrig)
Furore devdays 2017- rdf2(solbrig)Furore devdays 2017- rdf2(solbrig)
Furore devdays 2017- rdf2(solbrig)
DevDays
 
Profiling with clin fhir
Profiling with clin fhirProfiling with clin fhir
Profiling with clin fhir
DevDays
 
Fhir dev days_basic_fhir_terminology_services
Fhir dev days_basic_fhir_terminology_servicesFhir dev days_basic_fhir_terminology_services
Fhir dev days_basic_fhir_terminology_services
DevDays
 
Fhir tooling (grahame)
Fhir tooling (grahame)Fhir tooling (grahame)
Fhir tooling (grahame)
DevDays
 
Dev days 2017 advanced directories (brian postlethwaite)
Dev days 2017 advanced directories (brian postlethwaite)Dev days 2017 advanced directories (brian postlethwaite)
Dev days 2017 advanced directories (brian postlethwaite)
DevDays
 
Validation in net and java (ewout james)
Validation in net and java (ewout james)Validation in net and java (ewout james)
Validation in net and java (ewout james)
DevDays
 
Building a Scenario using clinFHIR
Building a Scenario using clinFHIRBuilding a Scenario using clinFHIR
Building a Scenario using clinFHIR
DevDays
 
Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)
DevDays
 
IHE on FHIR and DICOMweb 2017
IHE on FHIR and DICOMweb 2017IHE on FHIR and DICOMweb 2017
IHE on FHIR and DICOMweb 2017
Brad Genereaux
 

What's hot (20)

2017 11-ccda-on-fhir
2017 11-ccda-on-fhir2017 11-ccda-on-fhir
2017 11-ccda-on-fhir
 
fhir-documents
fhir-documentsfhir-documents
fhir-documents
 
Furore devdays 2017- continua implementing fhir
Furore devdays 2017- continua implementing fhirFurore devdays 2017- continua implementing fhir
Furore devdays 2017- continua implementing fhir
 
Fhir foundation (grahame)
Fhir foundation (grahame)Fhir foundation (grahame)
Fhir foundation (grahame)
 
Dev days 2017 questionnaires (brian postlethwaite)
Dev days 2017 questionnaires (brian postlethwaite)Dev days 2017 questionnaires (brian postlethwaite)
Dev days 2017 questionnaires (brian postlethwaite)
 
Advanced .net api (ewout)
Advanced .net api (ewout)Advanced .net api (ewout)
Advanced .net api (ewout)
 
Security overview (grahame)
Security overview (grahame)Security overview (grahame)
Security overview (grahame)
 
Furore devdays 2017-sdc (lloyd)
Furore devdays 2017-sdc (lloyd)Furore devdays 2017-sdc (lloyd)
Furore devdays 2017-sdc (lloyd)
 
Beginners .net api dev days2017
Beginners  .net api   dev days2017Beginners  .net api   dev days2017
Beginners .net api dev days2017
 
Furore devdays 2017- profiling academy - profiling guidelines v1
Furore devdays 2017- profiling academy - profiling guidelines v1Furore devdays 2017- profiling academy - profiling guidelines v1
Furore devdays 2017- profiling academy - profiling guidelines v1
 
Integrating with the epic platform fhir dev days 17
Integrating with the epic platform fhir dev days 17Integrating with the epic platform fhir dev days 17
Integrating with the epic platform fhir dev days 17
 
Furore devdays 2017- rdf2(solbrig)
Furore devdays 2017- rdf2(solbrig)Furore devdays 2017- rdf2(solbrig)
Furore devdays 2017- rdf2(solbrig)
 
Profiling with clin fhir
Profiling with clin fhirProfiling with clin fhir
Profiling with clin fhir
 
Fhir dev days_basic_fhir_terminology_services
Fhir dev days_basic_fhir_terminology_servicesFhir dev days_basic_fhir_terminology_services
Fhir dev days_basic_fhir_terminology_services
 
Fhir tooling (grahame)
Fhir tooling (grahame)Fhir tooling (grahame)
Fhir tooling (grahame)
 
Dev days 2017 advanced directories (brian postlethwaite)
Dev days 2017 advanced directories (brian postlethwaite)Dev days 2017 advanced directories (brian postlethwaite)
Dev days 2017 advanced directories (brian postlethwaite)
 
Validation in net and java (ewout james)
Validation in net and java (ewout james)Validation in net and java (ewout james)
Validation in net and java (ewout james)
 
Building a Scenario using clinFHIR
Building a Scenario using clinFHIRBuilding a Scenario using clinFHIR
Building a Scenario using clinFHIR
 
Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)
 
IHE on FHIR and DICOMweb 2017
IHE on FHIR and DICOMweb 2017IHE on FHIR and DICOMweb 2017
IHE on FHIR and DICOMweb 2017
 

Similar to Furore devdays2017 tdd-1-intro

No Devops Without Continuous Testing
No Devops Without Continuous TestingNo Devops Without Continuous Testing
No Devops Without Continuous Testing
Parasoft
 
Learn software testing with tech partnerz 1
Learn software testing with tech partnerz 1Learn software testing with tech partnerz 1
Learn software testing with tech partnerz 1
Techpartnerz
 
Module 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbs
Module 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbsModule 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbs
Module 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbs
Shivang100
 
Non-Functional testing
Non-Functional testingNon-Functional testing
Non-Functional testing
Kanoah
 
So You Think You Can Write a Test Case - XBOSoft Webinar
So You Think You Can Write a Test Case - XBOSoft WebinarSo You Think You Can Write a Test Case - XBOSoft Webinar
So You Think You Can Write a Test Case - XBOSoft Webinar
XBOSoft
 
Choosing right-automation-tool
Choosing right-automation-toolChoosing right-automation-tool
Choosing right-automation-tool
BabuDevanandam
 
Writing Acceptance Tests Using Fitnesse
Writing Acceptance Tests Using FitnesseWriting Acceptance Tests Using Fitnesse
Writing Acceptance Tests Using Fitnesse
Facundo Farias
 
What is UFT? HP's unified functional testing.
What is UFT? HP's unified functional testing.What is UFT? HP's unified functional testing.
What is UFT? HP's unified functional testing.
Confiz
 
DevOpsDays Houston 2019 - Lee Barnes - Effective Test Automation in DevOps - ...
DevOpsDays Houston 2019 - Lee Barnes - Effective Test Automation in DevOps - ...DevOpsDays Houston 2019 - Lee Barnes - Effective Test Automation in DevOps - ...
DevOpsDays Houston 2019 - Lee Barnes - Effective Test Automation in DevOps - ...
DevOpsDays Houston
 
Vishal_Final_Evaluation_PPT
Vishal_Final_Evaluation_PPTVishal_Final_Evaluation_PPT
Vishal_Final_Evaluation_PPT
Vishal Sharma
 
Test Automation Assessment Checklist.pdf
Test Automation Assessment Checklist.pdfTest Automation Assessment Checklist.pdf
Test Automation Assessment Checklist.pdf
Riley Claire
 
Effective Test Automation in DevOps
Effective Test Automation in DevOpsEffective Test Automation in DevOps
Effective Test Automation in DevOps
Lee Barnes
 
software testing
 software testing software testing
software testing
Sara shall
 
Accelerate and Automate PeopleSoft 9.2/9.1 Testing with PeopleSoft Test Frame...
Accelerate and Automate PeopleSoft 9.2/9.1 Testing with PeopleSoft Test Frame...Accelerate and Automate PeopleSoft 9.2/9.1 Testing with PeopleSoft Test Frame...
Accelerate and Automate PeopleSoft 9.2/9.1 Testing with PeopleSoft Test Frame...
Arvind Rajan
 
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
QueBIT Consulting
 
Getting Started with Apache Jmeter
Getting Started with Apache JmeterGetting Started with Apache Jmeter
Getting Started with Apache Jmeter
Mindfire Solutions
 
Automated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choiceAutomated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choice
toddbr
 
The Evolution of Development Testing
The Evolution of Development TestingThe Evolution of Development Testing
The Evolution of Development Testing
Cathal King
 
How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP Shop
Jim Plush
 
Quality Assurance and Testing services
Quality Assurance and Testing servicesQuality Assurance and Testing services
Quality Assurance and Testing services
Boston Technology Corporation
 

Similar to Furore devdays2017 tdd-1-intro (20)

No Devops Without Continuous Testing
No Devops Without Continuous TestingNo Devops Without Continuous Testing
No Devops Without Continuous Testing
 
Learn software testing with tech partnerz 1
Learn software testing with tech partnerz 1Learn software testing with tech partnerz 1
Learn software testing with tech partnerz 1
 
Module 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbs
Module 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbsModule 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbs
Module 4.pptxbsbsnsnsnsbsbbsjsjzbsbbsbsbsbs
 
Non-Functional testing
Non-Functional testingNon-Functional testing
Non-Functional testing
 
So You Think You Can Write a Test Case - XBOSoft Webinar
So You Think You Can Write a Test Case - XBOSoft WebinarSo You Think You Can Write a Test Case - XBOSoft Webinar
So You Think You Can Write a Test Case - XBOSoft Webinar
 
Choosing right-automation-tool
Choosing right-automation-toolChoosing right-automation-tool
Choosing right-automation-tool
 
Writing Acceptance Tests Using Fitnesse
Writing Acceptance Tests Using FitnesseWriting Acceptance Tests Using Fitnesse
Writing Acceptance Tests Using Fitnesse
 
What is UFT? HP's unified functional testing.
What is UFT? HP's unified functional testing.What is UFT? HP's unified functional testing.
What is UFT? HP's unified functional testing.
 
DevOpsDays Houston 2019 - Lee Barnes - Effective Test Automation in DevOps - ...
DevOpsDays Houston 2019 - Lee Barnes - Effective Test Automation in DevOps - ...DevOpsDays Houston 2019 - Lee Barnes - Effective Test Automation in DevOps - ...
DevOpsDays Houston 2019 - Lee Barnes - Effective Test Automation in DevOps - ...
 
Vishal_Final_Evaluation_PPT
Vishal_Final_Evaluation_PPTVishal_Final_Evaluation_PPT
Vishal_Final_Evaluation_PPT
 
Test Automation Assessment Checklist.pdf
Test Automation Assessment Checklist.pdfTest Automation Assessment Checklist.pdf
Test Automation Assessment Checklist.pdf
 
Effective Test Automation in DevOps
Effective Test Automation in DevOpsEffective Test Automation in DevOps
Effective Test Automation in DevOps
 
software testing
 software testing software testing
software testing
 
Accelerate and Automate PeopleSoft 9.2/9.1 Testing with PeopleSoft Test Frame...
Accelerate and Automate PeopleSoft 9.2/9.1 Testing with PeopleSoft Test Frame...Accelerate and Automate PeopleSoft 9.2/9.1 Testing with PeopleSoft Test Frame...
Accelerate and Automate PeopleSoft 9.2/9.1 Testing with PeopleSoft Test Frame...
 
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
 
Getting Started with Apache Jmeter
Getting Started with Apache JmeterGetting Started with Apache Jmeter
Getting Started with Apache Jmeter
 
Automated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choiceAutomated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choice
 
The Evolution of Development Testing
The Evolution of Development TestingThe Evolution of Development Testing
The Evolution of Development Testing
 
How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP Shop
 
Quality Assurance and Testing services
Quality Assurance and Testing servicesQuality Assurance and Testing services
Quality Assurance and Testing services
 

More from DevDays

Consent dev days
Consent dev daysConsent dev days
Consent dev days
DevDays
 
Mohannad hussain dicom and imaging tools
Mohannad hussain   dicom and imaging toolsMohannad hussain   dicom and imaging tools
Mohannad hussain dicom and imaging tools
DevDays
 
Mohannad hussain community track - siim dataset & dico mweb proxy
Mohannad hussain   community track - siim dataset & dico mweb proxyMohannad hussain   community track - siim dataset & dico mweb proxy
Mohannad hussain community track - siim dataset & dico mweb proxy
DevDays
 
final Keynote (grahame)
final Keynote (grahame)final Keynote (grahame)
final Keynote (grahame)
DevDays
 
Transforming other content (grahame)
Transforming other content (grahame)Transforming other content (grahame)
Transforming other content (grahame)
DevDays
 
Structure definition 101 (ewout)
Structure definition 101 (ewout)Structure definition 101 (ewout)
Structure definition 101 (ewout)
DevDays
 
Quality improvement dev days-2017
Quality improvement dev days-2017Quality improvement dev days-2017
Quality improvement dev days-2017
DevDays
 
Furore devdays 2017- oai
Furore devdays 2017- oaiFurore devdays 2017- oai
Furore devdays 2017- oai
DevDays
 
Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)
DevDays
 
Connectathon opening 2017
Connectathon opening 2017Connectathon opening 2017
Connectathon opening 2017
DevDays
 
20171127 rene spronk_messaging_the_unloved_paradigm
20171127 rene spronk_messaging_the_unloved_paradigm20171127 rene spronk_messaging_the_unloved_paradigm
20171127 rene spronk_messaging_the_unloved_paradigm
DevDays
 
Vonk fhir facade (christiaan)
Vonk fhir facade (christiaan)Vonk fhir facade (christiaan)
Vonk fhir facade (christiaan)
DevDays
 
Opening student track
Opening student trackOpening student track
Opening student track
DevDays
 
Fhir dev days_advanced_fhir_terminology_services
Fhir dev days_advanced_fhir_terminology_servicesFhir dev days_advanced_fhir_terminology_services
Fhir dev days_advanced_fhir_terminology_services
DevDays
 

More from DevDays (14)

Consent dev days
Consent dev daysConsent dev days
Consent dev days
 
Mohannad hussain dicom and imaging tools
Mohannad hussain   dicom and imaging toolsMohannad hussain   dicom and imaging tools
Mohannad hussain dicom and imaging tools
 
Mohannad hussain community track - siim dataset & dico mweb proxy
Mohannad hussain   community track - siim dataset & dico mweb proxyMohannad hussain   community track - siim dataset & dico mweb proxy
Mohannad hussain community track - siim dataset & dico mweb proxy
 
final Keynote (grahame)
final Keynote (grahame)final Keynote (grahame)
final Keynote (grahame)
 
Transforming other content (grahame)
Transforming other content (grahame)Transforming other content (grahame)
Transforming other content (grahame)
 
Structure definition 101 (ewout)
Structure definition 101 (ewout)Structure definition 101 (ewout)
Structure definition 101 (ewout)
 
Quality improvement dev days-2017
Quality improvement dev days-2017Quality improvement dev days-2017
Quality improvement dev days-2017
 
Furore devdays 2017- oai
Furore devdays 2017- oaiFurore devdays 2017- oai
Furore devdays 2017- oai
 
Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)
 
Connectathon opening 2017
Connectathon opening 2017Connectathon opening 2017
Connectathon opening 2017
 
20171127 rene spronk_messaging_the_unloved_paradigm
20171127 rene spronk_messaging_the_unloved_paradigm20171127 rene spronk_messaging_the_unloved_paradigm
20171127 rene spronk_messaging_the_unloved_paradigm
 
Vonk fhir facade (christiaan)
Vonk fhir facade (christiaan)Vonk fhir facade (christiaan)
Vonk fhir facade (christiaan)
 
Opening student track
Opening student trackOpening student track
Opening student track
 
Fhir dev days_advanced_fhir_terminology_services
Fhir dev days_advanced_fhir_terminology_servicesFhir dev days_advanced_fhir_terminology_services
Fhir dev days_advanced_fhir_terminology_services
 

Recently uploaded

Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
Jean Carlos Nunes Paixão
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
AyyanKhan40
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
Nguyen Thanh Tu Collection
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Dr. Vinod Kumar Kanvaria
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
Celine George
 
Community pharmacy- Social and preventive pharmacy UNIT 5
Community pharmacy- Social and preventive pharmacy UNIT 5Community pharmacy- Social and preventive pharmacy UNIT 5
Community pharmacy- Social and preventive pharmacy UNIT 5
sayalidalavi006
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
PECB
 
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPLAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
RAHUL
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
History of Stoke Newington
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
Walmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdfWalmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdf
TechSoup
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
amberjdewit93
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Akanksha trivedi rama nursing college kanpur.
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
ak6969907
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
eBook.com.bd (প্রয়োজনীয় বাংলা বই)
 

Recently uploaded (20)

Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
 
Community pharmacy- Social and preventive pharmacy UNIT 5
Community pharmacy- Social and preventive pharmacy UNIT 5Community pharmacy- Social and preventive pharmacy UNIT 5
Community pharmacy- Social and preventive pharmacy UNIT 5
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
 
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPLAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
Walmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdfWalmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdf
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
 

Furore devdays2017 tdd-1-intro

  • 1. FHIR® is the registered trademark of HL7 and is used with the permission of HL7. The Flame Design mark is the registered trademark of HL7 and is used with the permission of HL7. Amsterdam, 15-17 November | @fhir_furore | #fhirdevdays17 | www.fhirdevdays.com Test Driven Development I - Intro Richard Ettema, AEGIS.net, Inc.
  • 2. Presented by • Name: Richard Ettema • Position: • Lead Consultant, AEGIS.net, Inc. • FHIR® Certified Implementer • Background: • 34+ years IT industry experience • 14+ years leading HIT development/implementation efforts • 4+ years contributing to the HL7® FHIR® specification (focus on testing) • Sr. Architect / Lead Developer for the Touchstone Project • Author of the AEGIS WildFHIR public test server and client
  • 3. What would happen if airlines practiced “one and done” testing? How important is on-going or continuous testing?
  • 4. Question… How can implementations based on Industry based Standards like FHIR® ensure they are truly Interoperable with each other? • Choice: Expensive 1-time-before-release conformance testing • Will most likely uncover previously unknown conformance issues • Introduce unneeded RISK and additional cost (budget and schedule) Or, Moderate expense with continuous testing (Test Driven Development) • Expense decreases over time as testing becomes infused into the development life cycle • Developers code to the specification as it becomes embedded within each coding cycle • Budgets and schedule are less risky around conformance
  • 5. Test Driven Development Philosophy • Software development technique that implements short development cycles • Building on the Agile technique of coding to User Stories; Test Driven Development asks developers to build functionality to pass very specific Test Cases • Each short development cycle requires that the software pass the new Test Cases
  • 6. How to integrate TDD into the development lifecycle
  • 7. Test Driven Development with FHIR • To ensure interoperability between applications claiming conformance to the specification, a testing framework has been established within the FHIR specification itself https://www.hl7.org/fhir/STU3/testing.html • This framework defines a Test Engine for processing a TestScript resource as a natural language, computable format of a test case • The TestScript resource is an implementation-agnostic description of tests that allows test engines to evaluate if a FHIR implementation conforms with the FHIR specification https://www.hl7.org/fhir/STU3/testscript.html
  • 8. FHIR Testing Framework – Test Engine Workflow http://hl7.org/fhir/STU3/testing.html#execution • Pre-Processing • Determine whether or not the TestScript interactions match the capabilities of the system under test. If supported, execution proceeds; if not, the test engine may halt execution. • Setup Execution • Optional operations that prepare the system under test for subsequent test execution. • Test Execution • Execute and record each test’s operations and assertions. • Teardown Execution • Optional operations that revert the system under test to its pre-test state. • Post-Processing • Cleanup of test execution data and collection of test results.
  • 9. Pre-processing – Capability based testing • The test engine will use the CapabilityStatement of the system under test to determine how to process a TestScript. • If the TestScript defines the testing of capabilities that the system under test does support, the test engine will continue the workflow process. • If the TestScript defines the testing of capabilities that the system under test does not support, the test engine should allow the TestScript to be skipped.
  • 10. Test Execution – Operations and Asserts • Test execution consists of two action types: • operation: The FHIR RESTful API interaction to be executed. • assert: The rule that is evaluated against the results of the operation. If true, the assert passes. • All FHIR operations including the extended operations framework are supported • Key concept: The operation is always executed regardless of whether or not an assert follows.
  • 11. A little more about asserts… • An assert acts on the current executed operation context • It states a condition, rule or expression that will be evaluated against that executed operation context Asserts provide support for: • Evaluation of both the inbound request or outbound response • Complex and simple evaluation of HTTP headers and response codes • Operators for equality, relational comparison, containment, etc. • Expression language support for XPath, JSONPath and FHIRPath • Payload comparison to defined fixtures (static or dynamic) • Payload validation against defined FHIR profile(s) • Plus a whole lot more…
  • 12. Introducing Touchstone • Available as a publicly accessible cloud-based testing platform (TaaS) • Provides automated, internet-based interoperability testing of the HL7® FHIR® specification • Tests the capabilities of and interoperability between both FHIR Server and Client implementations • A blend between Test-Driven-Development (TDD) methodologies and Natural Language Processing (NLP) TestScripts
  • 14. Getting started with Touchstone • Anyone can access the Touchstone landing page and view the publicly available test definitions (TestScripts) • Registration and acceptance of the user agreement must be completed before any other features become accessible including test execution • Every user must belong to an organization • Organizations may have 1 or more registered users in Touchstone (based on subscription level)
  • 15. Getting started – user registration (Hands on exercise) • If you are not yet registered in Touchstone, select the Register menu item in the upper- right navigation bar • Enter your • Touchstone user name • Valid email address (for notifications) • Password (twice for confirmation) • Select “I’m not a robot” • Click “Register”
  • 16. Getting started – create a test system (Hands on exercise) • A test system must be available for test executions • You can use any existing, publicly accessible test system, or • Create your own test system: • Select the “New Test System” menu item • Fill out the required fields • Change the privacy settings if desired
  • 17. Getting started – Test Setup (Hands on exercise) • Test executions are based on Test Setups • Steps: • Select one or more Test Definitions (TestScripts) • Click the Create Test Setup link • The Test Setup UI will be displayed • Select the Test System(s) • Fill in any other required fields • Click Execute…
  • 18. Getting started – Test Execution (Hands on exercise)
  • 19. Getting started – TestScript Execution (Hands on exercise)
  • 20. Getting started – TestScript Execution – Results (Hands on exercise)
  • 21. Analytics are built into Touchstone Conformance
  • 22. Analytics are built into Touchstone Test Execution History
  • 23. Test Driven Development with Touchstone • Has this happened to you? Your development team has been working hard to deliver their implementation. Your QA team is ready to go and you ask the developers – “is the app ready?” – meaning, did you finish your testing? Answer: Yes, sir. Good to go. Reality: The QA team starts in and finds many issues. Problem: Anyone can run a test and say a system passed or failed. How do you know?
  • 24. Evidence-Based Quality Assurance • Continuous Testing against a defined standard ensures ‘no surprises’ when publishing new releases • Continuous Testing generates data used in analytics which can • show patterns and predict trouble areas • pinpoint issues in development • help show continuous interoperability to your customers, highlighting your competence and reliability • provide metrics that can tell the story about problem areas or where there is little volatility
  • 25. Benefits of using Touchstone – A Real world example • The following graphs show the progression of testing for an organization using the Touchstone production environment. 100% Passing *Data used with organization’s permission 100% Passing
  • 26. So, how can your organization use Touchstone? • First and foremost, Touchstone can help your organization with FHIR conformance testing Touchstone • maintains test suites for multiple FHIR versions • includes basic, advanced, and various Connectathon scenarios • tracks and maintains test results allowing organizations to view and share those results as they wish • provides the opportunity to validate conformance based on the test system’s CapabilityStatement their server actually issues; you test for what you assert your system is capable of doing
  • 27. So, how can your organization use Touchstone? • Second, organizations can utilize the Touchstone test suites during software build cycles Touchstone • provides thorough logging of requests and responses allowing developers and testers greater insight into why a test may have failed • provides embedded, version specific links to the specification within the test execution results to help narrow focus • APIs are available to help automate testing (more about that in the advanced session)
  • 28. So, how can your organization use Touchstone? • And, organizations have the opportunity to write and run their own TestScripts within Touchstone • Build your own scripts: conformance? regression? build verification and validation? • Can be uploaded to Touchstone by AEGIS upon approval or based on your subscription level • Coming soon! Touchstone IDE / TestScript Editor • Governing organizations can build Implementation Guide test suites and house them in Touchstone to facilitate conformance testing • AEGIS offers Multi-day tutorials and training on Touchstone, FHIR Testing and TestScript Authoring - http://www.aegis.net
  • 29. Hands on Exercises • Getting Started – registration and test system setup • Test Setup and Execution - FHIR3-0-1-DevDays17 • Individual basic operations: read, search, create, update, delete • Workflow: basic operations in a single TestScript illustrating a simple workflow • Invalid Resource: attempts to create an invalid resource showing use of integrated validation engine • Connectathon Test Track • We will review and select one of the test tracks for the next HL7 FHIR Connectathon 17 event and begin the development of TestScripts
  • 31. FHIR® is the registered trademark of HL7 and is used with the permission of HL7. The Flame Design mark is the registered trademark of HL7 and is used with the permission of HL7. Amsterdam, 15-17 November | @fhir_furore | #fhirdevdays17 | www.fhirdevdays.com Thank you!

Editor's Notes

  1. Developers don’t need to go back to their server logs