TMForum ODA CTK API specification conformance testing with Specmatic

By Joel Rosario
Share this page

Introduction

TMForum is a collaborative platform for service providers, technology suppliers, and other stakeholders in the telco space to share best practices, develop standards, and drive innovation. Their Open API program is a global initiative to enable seamless connectivity, interoperability and portability across complex ecosystem services. And in this context, TMForum provides a Conformance Test Kit (CTK) to self-certify implementation of their Open API specifications. This is a great idea. However we recently discovered some major issues with the TMForum Conformance Test Kit (CTK) v5.0.0 and will demonstrate how using Specmatic can address these problems.

The Problem with CTK5

By running the CTK5 test, we discovered that it is possible for the API implementation to successfully pass the conformance verification and yet to be out of sync with the OpenAPI specification that is on their website. When we investigated further, we realized that the CTK contains a copy of the specification on TMForum’s Open API Table. And the Cypress test suite itself is a repetition of several aspects that are already specified in OpenAPI. With this duplication, comes the possibility of divergence and that is exactly what we see when comparing specifications on TMForum Open API Table (for example, the Party API, TMF 632 v5.0.0, published on 19-Sep-23) with copies of the same that ship with the CTK.

Furthermore, the request payload that users of the CTK are supposed to modify in accordance with their test data setup, is not validated against the OpenAPI specification that is shipped with the CTK5. This may allow users to inadvertently provide an incorrect (OpenAPI schema invalid) request payload and yet successfully pass the conformance test.

CTK5 also does not verify request parameters, error response schema and properties of fields such as optionality, nullability that are defined in the OpenAPI specification in the request.

Introducing Specmatic

To overcome these challenges, we replaced the Cypress tests with Specmatic contract tests. Specmatic leverages the primary source of truth, the API specification on the TMForum website, to generate tests in a completely no-code manner. By validating payloads against the specification, Specmatic ensures that the application remains in sync with the defined API structure and behavior.

Benefits of Specmatic

There are several advantages of adopting Specmatic for conformance testing:

1. Elimination of Duplicate Specifications: With Specmatic, there is only one source of truth—the API specification on the TMForum website. This eradicates the confusion caused by multiple specifications and ensures consistency throughout the testing process.

2. Validated Request Payloads: Specmatic validates payloads against the specification before executing tests, preventing out-of-sync requests. This ensures that the implementation adheres to the defined API structure and accurately handles incoming data.

3. Comprehensive Verification: Unlike the CTK, Specmatic verifies not only the response schema but also other crucial aspects such as 4xx error responses, optionality, nullability, and more. This comprehensive validation guarantees a higher degree of conformance and increases the reliability of API implementations.

4. Simplified Architecture: By generating tests based on the OpenAPI specification, Specmatic eliminates the need for duplicating logic already present in the specification. This simplification streamlines the testing process and reduces maintenance efforts.

5. End-to-End Testing and Fault Injection: Specmatic goes beyond conformance testing by allowing API dependencies to be stubbed out. This enables full end-to-end testing in isolation and even facilitates fault injection to ensure the application can handle various scenarios, such as timeouts and outages.

Demonstration and Comparison

By running a side-by-side comparison of the issues identified in CTK 5 and how Specmatic effectively addresses them, we can see how Specmatic’s contract tests detect incompatible changes made to the application, validate request payloads, and comprehensively verify 4xx error responses. Additionally, Specmatic provides an API coverage summary, offering an overview of the percentage of APIs that adhere to the specification.

Conclusion

Specmatic presents a superior alternative to the current Cypress based test setup in CTK for conformance testing. By leveraging the primary API specification as the single source of truth, validating request payloads, and generating tests based on the OpenAPI spec, Specmatic ensures accurate conformance of API implementations. With its simplified architecture, comprehensive verification, and additional testing capabilities, we believe Specmatic can resolve current problems and greatly enhance the abilities of the CTK.

Related Posts

jaydeep aws lambda

By Jaydeep Kulkarni

AWS Lambda Data Pipeline Testing using LocalStack with Specmatic

Table of Contents Mastering Testing AWS Lambda Functions with LocalStack and Specmatic With fast-evolving data ecosystems, building reliable and scalable data products is essential. One key component of many modern data architectures is AWS Lambda, which offers serverless compute power to process data streams efficiently. However, testing these Lambda functions within a data pipeline can…
Read more
api days revised 1920x1080

By John

New features and a BIG Announcement! Specmatic is bringing apidays to India!

In the past few months, we have launched a flurry of exciting features, presented at several global conferences and onboarded several new team members. We are bringing apidays to India! This is all part of our mission to help organizations worldwide build more reliable, maintainable, and future-ready APIs.  Apidays India 2025: Future-Proof APIs for Billions! …
Read more
Speakers presenting on API Governance at tech conference.

Update: See how Specmatic is transforming API testing & development

We've been hard at work, rolling out exciting new features and sharing the power of Specmatic and Contract Driven Development around the globe! Let's explore the latest developments in how Specmatic is transforming API testing & development. Elevate Your Impact - with Specmatic  Point, Click, Generate, Validate & Test: Your OpenAPI Examples Just Got Smarter …
Read more

By Joel Rosario

Build Apps from API specs using AI: Self-Correcting Contract-Driven Agentic Workflows with Specmatic

Harnessing the Power of API Specifications for Robust Microservices  Modern microservice architecture hinges on precise and dependable communication between services. This is where API specifications serve as the linchpin, establishing clear, executable contracts that dictate how services interact. With advancements in AI, we can now take these specifications and seamlessly transform them into running applications.…
Read more

OpenAPI Examples Simplified: Visualize and Generate Domain-Specific Test Data​

Streamlining API Development: An Interactive Guide to Example Generation and Validation using Specmatic  A robust, streamlined approach to API development is crucial for maintaining efficiency, reliability, and scalability in your development pipeline. One powerful methodology that has emerged is Contract-Driven Development (CDD), allowing developers to fully realize the benefits of microservices architectures. This article demonstrates…
Read more

By Hari Krishnan

Pact’s Dependency Drag​: Why Consumer-Driven Contracts Don’t Support Parallel Development

Exploring the challenges and limitations of using Pact for contract testing in a microservices environment.  In the domain of microservices, ensuring seamless communication between different services is paramount. This necessitates robust contract testing to ensure that APIs and their consumers are in sync. With an increasing number of organizations adopting microservices, tools like Pact—a consumer-driven…
Read more

By Naresh Jain

OpenAPI’s Broken Tooling: Roundtrip Fidelity Failure with CodeGen and DocGen​

Exploring the Strengths and Weaknesses of Automated API Development  Maintaining well-documented and reliable APIs is essential for any microservices development pipelines. At the heart of this process for OpenAPI specs are two important tools: CodeGen and DocGen. CodeGen, short for code generation, and DocGen, documentation generation, are designed to streamline the development cycle by automating…
Read more

By Naresh Jain

gRPC Flaws​ – The Illusion of Safety & Frustrating DevEx in Proto3’s Type-Safe Contracts​

Understanding the Shortcomings of gRPC and How Contract Testing Can Bridge the Gap  In the ever-evolving world of API design, development, and testing, the pursuit of a seamless developer experience (DevEx) remains a constant. This article sheds light on some of the overlooked pitfalls of gRPC, a popular choice for its performance capabilities and type-safe…
Read more

By Hari Krishnan

WireMock’s Dirty Secret: Ignoring API Specs & Letting Invalid Examples Slip Through 

Overcoming the Challenges of Hand-Rolled Mocks with Contract-Driven Development  APIs and microservices have transformed the way software systems are built and maintained. However, developing a system that relies on multiple services—both internal and external—presents unique challenges, especially when some services are not fully available. In this critique of WireMock, we examine the critical importance of…
Read more
specmatic challenge – winners announced! 1536x865

By John

Specmatic Challenge – winners announced!

The Specmatic challenge is over and we are pleased to announce the winners! Congratulations to Mohd Zaid and Himanshu Singal for successfully completing the challenge and taking home the prizes! You too can experience the power of Contract Driven Development with Specmatic and transform your API specs into executable contracts in seconds. Why not give…
Read more