Coder Social home page Coder Social logo

testrun's Introduction

Testrun logo

Introduction ๐Ÿ‘‹

Test Run is a tool to automate the validation of network-based functionality of IoT devices. Any device which is capable of receiving an IP address via DHCP is considered an IoT device by Test Run and can be tested.

Motivation ๐Ÿ’ก

Without tools like Test Run, testing labs may be maintaining a large and complex network using equipment such as: A managed layer 3 switch, an enterprise-grade network router, virtualized or physical servers to provide DNS, NTP, 802.1x etc. With this amount of moving parts, all with dynamic configuration files and constant software updates, more time is likely to be spent on preparation and clean up of functinality or penetration testing - not forgetting the number of software tools required to perform the testing. The major issues which can and should be solved:

  1. The complexity of managing a testing network
  2. The time required to perform testing of network functionality
  3. The accuracy and consistency of testing network functionality

How it works ๐Ÿ“

Test Run creates an isolated and controlled network environment to fully simulate enterprise network deployments in your device testing lab. This removes the necessity for complex hardware, advanced knowledge and networking experience whilst enabling semi-technical engineers to validate device behaviour against industry cyber standards.

Two runtime modes will be supported by Test Run:

  1. Automated Testing

Once the device has become operational (steady state), automated testing of the device under test will begin. Containerized test modules will then execute against the device (one module at a time). Once all test modules have completed execution, a final test report will be produced - presenting the results and further description of findings.

  1. Lab network

Test Run cannot automate everything, and so additional manual testing may be required (or configuration changes may be required on the device). Rather than having to maintain a separate but idential lab network, Test Run will provide the network and some tools to assist an engineer performing the additional testing. At the same time, packet captures of the device behaviour will be recorded, alongside logs for each network service, for further debugging.

Minimum Requirements ๐Ÿ’ป

Hardware

  • PC running Ubuntu LTS (laptop or desktop)
  • 2x USB ethernet adapter (One may be built in ethernet)
  • Internet connection

Software

  • Python 3 (Already available on Ubuntu LTS)
  • Docker - Install guide
  • Open vSwitch sudo apt-get install openvswitch-common openvswitch-switch

Roadmap ๐Ÿ“ˆ

Test Run will constantly evolve to further support end-users by automating device network behaviour against industry standards.

Issue reporting ๐Ÿšฉ

If the application has come across a problem at any point during setup or use, please raise an issue under the issues tab. Issue templates exist for both bug reports and feature requests. If neither of these are appropriate for your issue, raise a blank issue instead.

Contributing โŒจ๏ธ

The contributing requirements can be found in CONTRIBUTING.md. In short, checkout the Google CLA site to get started.

FAQ ๐Ÿ™‹

  1. What device networking functionality is validated by Test Run?

Best practices and requirements for IoT devices are constantly changing due to technological advances and discovery of vulnerabilities. The current expectations for IoT devices on Google deployments can be found in the Application Security Requirements for IoT Devices. Test Run aims to automate as much of the Application Security Requirements as possible.

  1. What services are provided on the virtual network?

The following are network services that are containerized and accessible to the device under test though are likely to change over time:

  • DHCP in failover configuration with internet connectivity
  • DNS (and DNS over HTTPS)
  • NTPv4
  • 802.1x Port Based Authentication
  1. Can I run Test Run on a virtual machine?

Probably. Provided that the required 2x USB ethernet adapters are passed to the virtual machine as USB devices rather than network adapters, Test Run should still work. We will look to test and approve the use of virtualisation to run Test Run in the future.

  1. Can I connect multiple devices to Test Run?

In short, Yes you can. The way in which multiple devices could be tested simultaneously is yet to be decided. However, if you simply want to add field/peer devices during runtime (even another laptop performing manual testing) then you may connect the USB ethernet adapter to an unmanaged switch.

testrun's People

Contributors

jboddey avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.