Is JSON Schema the Tool of the Future?

json-schema

JSON Schema is a lightweight data interchange format that generates clear, easy-to-understand documentation, making validation and testing easier.

JSON Schema is used to describe the structure and validation constraints of JSON documents.

Some have called it “the future for well-developed systems that have nested structures”.

There’s some weight to those claims; it’s definitely become a go-to tool for those who get past its steep learning curve.

Reviewing the Basics

JSON, which is the acronym for JavaScript Object Notation, is a lightweight data-interchange format.

It’s easy for humans to read and write, and equally easy for machines to parse and generate.

JSON Schema is a declarative language for validating the format and structure of a JSON Object.

It describes how data should look for a specific application and how it can be modified.

There are three main parts to JSON Schema:

JSON Schema Core

This is the specification where the terminology for a schema is defined.

Schema Validation

The JSON Schema validation is a document which explains how validation constraints may be defined. It lists and defines the set of keywords which can be used to specify validations for a JSON API.

Hyper-schema

This is where keywords associated with hyperlinks and hypermedia are defined.

What Problem Does JSON Schema Solve?

Schemas in general are used to validate files before use to prevent (or at least lower the risk of) software failing in unexpected ways.

If there’s an error in the data, the schema fails immediately. Schemas can serve as an extra quality filter for client-supplied data.

Using JSON Schema solves most of the communication problems between the front-end and the back-end, as well as between ETL (Extract, Transform and Load) and data consumption flows.

It creates a process for detailing the format of JSON messages in a language both humans and machines understand. This is especially useful in test automation.

Strengths of JSON Schema

The primary strength of JSON Schema is that it generates clear, human- and machine-readable documentation.

It’s easy to accurately describe the structure of data in a way that developers can use for automating validation.

This makes work easier for developers and testers, but the benefits go beyond productivity.

Clearer language allows developers to spot potential problem faster, and good documentation leads to more economical maintenance over time.

Weaknesses of JSON Schema

JSON Schema has a surprisingly sharp learning curve.

Some developers feel it’s hard to work with, dismissing it as “too verbose”. Because of the criticism, it isn’t well known.

Using JSON Schema makes projects grow quickly. For example, every nested level of JSON adds two levels of JSON Schema to the project.

This is a weakness common to schemas, though, and depending on the project it may be outweighed by the benefits. It’s also worth considering that JSON Schema has features which keep the size expansion down.

For example, objects can be described in the “definitions section” and simply referenced later.

What Else Is There?

Some developers prefer to use Mongoose, an Object Document Mapper (ODM) that allows them to define schemas, then create models based on those schemas.

The obvious drawback is that an extra abstraction layer delivers a hit to performance.

Another option is Joi, a validation library used to create schemas for controlling JavaScript objects. The syntax is completely different, though, and Joi works best for small projects.

Sometimes developers jump into a new MongoDB with a very flexible schema. This inevitably dooms them to “schema hell”, where they lose control as the project grows.

When JSON Schema Is the Right Choice

Performance is undeniably important. However, there are times when the cost of recovering from mistakes is far higher than the cost of taking the speed hit that comes with schema validation.

For those times the performance drop isn’t large enough to justify the risk of bad data entering the system, and that’s where JSON Schema comes into play.

JSON Schema is proving itself as a development option, but there’s no single “best tool” for every project. Concepta takes pride in designing a business-oriented solution that focuses on delivering value for our clients. To see what that solution might look like for your company, reserve your free consultation today!

Request a Consultation

CrossBrowserTesting Review: The Good, The Bad, And The Alternatives

crossbrowsertesting-review

CrossBrowserTesting is a cloud-based testing platform for websites and apps.

It provides powerful tools for exploring how a website performs on a variety of devices and browsers, and it’s considered a staple for many developers.

Why is CrossBrowserTesting Important?

User experience has taken center stage in the battle for customer acquisition and retention. It’s more important than ever to make sure every user is having the same experience, no matter where they are or how they get to the website.

The quest for uniformity is made harder by the huge variety of browsers in use. Besides the “Big Five” (which, as of 2018, include Chrome, Firefox, Safari, Internet Explorer, and Edge) there are scores of alternative browsers that may be more common within a particular customer base.

To complicate matters further, new internet-ready devices are being invented every day. Developers have to plan for traditional computers and laptops as well as tablets, phones, and wearable devices. Even fitness equipment and some appliances can access the internet now.

There’s no practical way to manually test every browser and device that might be used by customers. However, it’s risky to ignore the less popular options. The average person uses 3 different connected devices over the course of a day.

If they happen to find the site or app on an unsupported platform, they’re unlikely to return through another device later.

CrossBrowserTesting provides a range of manual and simulated testing services on more than 1,500 devices and browsers. Developers use it to check whether their clients’ websites are rendering properly across the board.

CrossBrowserTesting provides a full, explorable picture of how well the product functions, ensuring better quality and a more consistent user experience.

Strengths of CrossBrowserTesting

What developers like about CrossBrowserTesting is that it’s easy to use. They can test their layouts on a huge combination of operating systems, browsers, and resolutions simultaneously. It shortens the amount of time they have to spend on testing without lowering quality.

CrossBrowserTesting uses real browsers instead of emulators. It’s also one of the very few tools offering manual testing on physical iOS and Android devices, with coverage for the Nexus, Galaxy, Tab2, and hundreds of other devices. Developers can swipe and interact with the devices during their tests.

Automated screenshot comparisons and testing videos give developers an overview of their site’s status. They can perform apples-to-apples comparisons and quickly identify platforms that need more attention.

Additionally, CrossBrowserTesting offers Selenium automation for mobile and desktop browsers.

Weaknesses of CrossBrowserTesting

Virtual machines for mobile devices can be painfully slow (though they’re still faster than individually testing each device). It’s also not easy to edit end to end testing.

Some developers have also had problems with CrossBrowserTesting’s documentation. They report typos, structure issues, and some misleading examples that caused unnecessary confusion.

What Else Is Out There?

While CrossBrowserTesting is a powerful tool, most developers use a variety of different tests to get fuller coverage. Here are some popular alternatives:

SmartBear TestComplete

SmartBear owns both CrossBrowserTesting and TestComplete. TestComplete offers more powerful testing options across technologies, and it’s easier to create tests. However, the code editor provides badly-formatted code and some users have struggled with frequent crashes.

BrowserStack

BrowserStack is a testing platform that boasts a large variety of developer tools and supports many different devices and browsers. Reliability has been an issue for some, though: the test client runs differently on different operating systems, and the virtual machines reject new tests instead of queuing them when overloaded.

Cypress.io

Cypress.io is an end-to-end testing tool built on Node. It’s easy to debug with a highly supportive community. The problem is that Cypress doesn’t support more than one browser instance and doesn’t support native events (such as file uploads).

Future Outlook

In a world where digital transformation is key to staying relevant, developers are pushing to work faster without sacrificing quality. CrossBrowserTesting helps them stay on schedule while still creating a dynamic end product. With results like that, it’s not going anywhere.

At Concepta, we know that testing isn’t just something to cross off a checklist. It’s an integral part of development that directly impacts our clients’ bottom lines. That’s why we use test automation tools like CrossBrowserTesting to make sure users are getting the same great service wherever they are. Set up a free, no obligation consultation to discuss testing your company’s products to find out how they perform in the real world!

Request a Consultation