Key Information

Register
Submit
The challenge is finished.

Challenge Overview

1. Project Overview

The client of this application, FROTZ is in the business of content delivery. In the growing age of technology more and more information is being available and it has become increasingly difficult to manage all this information in a reliable and predictable way. Some even say that we have moved from the industrial age in the information age, where capacities of production and large specialized workforces can be made obsolete by the right piece of information being used at the right time.
Content Ingest and Delivery (CID) is a Core Competency of FROTZ business. The application has the purpose of storing in organized manner and delivering large amounts of content to its customers. The speed with which new content is ingested as well as the relevance of the content for the client needs is vital aspects for FROTZ business.
The application that represents the scope of this project, which is called Content Ingest and Delivery Service (CID), is intended to ingest, store, and deliver to users and other applications the files and derivatives of files for publications. The application will have the ability to use and deliver the large and growing collections of digitized content, so that the delivery platform provides relevant functionality.
The application is broken into several modules, and this module is responsible for providing the data quality assurance.
This assembly implements the assertion checker, the expression functions and the auxiliary classes.

2. Competition Task Overview

The main task here is to develop a Cucumber test script in Ruby that will execute all the tests in the included test scenarios document and provide pass/fail stats for each.

2.1 Cucumber

Cucumber with Ruby should be used for this contest: http://cukes.info/

We've put together a very small sample of a Cucumber test (and Ruby support structure) that automates testing Test 1 of the Transform Test Scenarios contest submission.

This is just for an example of what we're looking for. We would be happy to review solid Cucumber/Ruby approaches that differ from what we're providing right now.

Notes on the sample:

The Scenario description in the Feature file is the exact same as the test case name from the Test Scenario spreadsheet. This is a requirement of our Test Suite contest.

First person is used when referencing a user, meaning use "I" instead of "we" or "the user". Also a Test Suite requirement.

This sample uses a central file "required_gems.rb", referenced from env.rb, to handle all "require" statement for gems, just to help with maintenance.

For sake of a compact sample, there are two variables defined in hooks.rb that registrants could instead choose to bring in with a properties file or with a command line argument.

2.2 RESTful Services

It's only required to test against the RESTful Services of this module.

Note: the content type can't be recognized by browser. I'd suggest you to use some RESTful client to visit the service entry. https://addons.mozilla.org/en-us/firefox/addon/restclient/ (it's just for your check, the test scenarios shouldn't depend on this firefox plugin, we should use some java RESTful clients in test suite contests)

RESTful Service Entry Point:

You can find how to start the test from the deployment guide of assembly submission.

The RESTful Specification can be find in Application Design Specification.

2.3 Ruby Style Guide

You need to follow this style guide: https://github.com/bbatsov/ruby-style-guide

2.4 Run the Cucumber Tests

You can use command line (cucumber) or RubyMine 5.4 (30 days free trial) to run the test suites.

You need to install ruby first, then install the cucumber by "gem install cucumber".

Note, some dependency libraries won't be installed automatically. So you need to input it manually by gem install. e.g. gem install rspec

RubyMine could help you install some libraries but in order to produce the test result, it requires additional library than command line. e.g. json and you must have ruby dev kits installed to install json (and several other libraries).

3. Submission Deliverables

The competitors in this competition are expected to provide the following deliverables:

  • build script for test scripts
  • setup guide for running test scripts
  • Implemented test scripts using Cucumber and their configuration
  • Any other documents

Please use same folder structure as the example.



Final Submission Guidelines

N/A

ELIGIBLE EVENTS:

2013 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30033198