Omni Converter Challenge - Results

This quest is nearly over, let's recap what has been done so far. Given the task "test the Omni Converter Challenge service," I first read its documentation and performed exploratory testing to build an understanding of the system (store and retrieve files containing Directed Acyclic Graphs via a RESTful API). Based on that understanding, I created a regression testplan. Then I built a SoapUI test suite which automates that test plan. Now it's time to execute the test suite and review the results.

Omni Converter Challenge - Regression Planning

The idea behind regression testing is to find bugs in the new version of a system, when those bugs were not present in older versions of the same system. Since the requirements of the new version are usually very similar to the old version, regression testing is done with a single set of tests reused across many versions. Since the tests can be reused, it's worth investing some extra effort up-front to make those tests the best they can be. An extra hour spent automating a test today might save 30 minutes in every subsequent run, quickly paying back that initial cost.

So, if my goal is to regression test the Omni Converter service, then I should be thinking about automation.  I know from exploratory testing that I need to send HTTP requests, and that those requests have predictable text responses. A simple way to automate those tests would be to shell script a series of HTTP requests using cURL, print their responses to a file, and run some sort of analysis on that file to verify correct results. Let's try it.

Omni Converter Challenge - Analysis

As with any testing project, this one starts with determining expected behaviour.  Bugs are defined by their difference from expectations, so to find bugs we must first have expectations.

Reading through the Omni Converter documentation, I would describe it as a REST API service with the purpose of storing Directed Acyclic Graphs (DAGs) in various file formats. DAGs can be created, stored, replaced, retrieved and deleted.  There are also some informational commands for API version, supported file formats, etc.

So, if OC is a REST service, then its expected behaviour lies in how it responds to HTTP requests, sent to specific endpoints...

Getting Started

This journal will follow the development of my portfolio, and successes and/or failures in job-searching. I intend to keep this site up-to-date throughout my career as well, but we'll see what happens. 

The site is currently under construction using SquareSpace as a toolkit, all the pieces should be finished in the next few days as time/interest allows.