Skip to content
This repository has been archived by the owner on Jun 21, 2018. It is now read-only.

stekycz/restful-api-testing

Repository files navigation

Testing of RESTful API in context of continuous integration

Description

This is the text of master thesis at FIT CTU in Prague written by Martin Štekl. Feel free to contact me on email or follow me on Twitter.

Original requirements can be found as a Gist.

Project related to this text can be found in separate repository.

Requirements

Study the basics of testing, different methods, levels and types of testing, processes related to software testing and describe the strengths and weaknesses of various methods, levels and types of tests. Find and compare different tools that focus on testing RESTful API in the context of continuous integration or the description of the RESTful API. Based on these findings describe the differences and similarities in methods of testing code itself for regular SW and methods for testing RESTful API.

Study the syntax of the API Blueprint language for describing RESTful API and study testing tool Dredd. Compare current testing possibilities using this tool to previously described methods and then propose possible changes and modifications to extend the capabilities of this tool.

Choose some of the proposed modifications and implement them. Propose implemented changes as Pull Requests on server GitHub for merge in main repositories of this tool.

Table of Content

  1. Introduction
  2. Software testing in general
    1. Testing methods
      1. Black-Box testing
      2. White-Box testing
      3. Grey-Box testing
    2. Testing levels
      1. Unit testing
      2. Integration testing
      3. System testing
      4. Acceptance testing
    3. Testing types
      1. Compatibility testing
      2. Smoke and sanity testing
      3. Regression testing
      4. Acceptance testing
      5. Destructive testing
      6. Performance testing
      7. Accessibility testing
      8. Security testing
    4. Testing process
      1. Continuous integration
    5. Differences between RESTful API testing and software testing in general
  3. RESTful API description and testing tools
    1. Specification of important parameters for comparison
    2. Basic tools description
      1. SOAP UI
      2. REST assured
      3. frisby.js
      4. RAML
      5. Runscope Radar
      6. Dredd
    3. Tools comparison
  4. Details about API Blueprint and Dredd
    1. API Blueprint sytax basics
      1. Resources
      2. Actions
      3. Request and Response
      4. Models
    2. Dredd testing process
      1. Test configuration and running
      2. CI server integration
      3. Validations
  5. Creation of scenario testing tool
    1. Requirements
    2. Implementation possibilities
    3. Implementation of proof of concept for scenario testing tool using Cucumber
    4. Improvements and refactoring of the scenario testing tool
    5. Testing of scenario testing tool
  6. Conclusion
  7. Installation and an example of usage
  8. Bibliography

Bibliography and References