Giter Site home page Giter Site logo

eimanaln / ast24-project-g3_5 Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 620 KB

This is a semester project for ETH Zurich Automated Software Testing Course. The aim of this project is to create an automated testing framework for Infrastructure as Code.

Python 100.00%

ast24-project-g3_5's Introduction

Automated Cross-Platform Compatibility Testing for Infrastructure as Code

We present an automated testing framework designed to verify the cross-platform compatibility of Ansible automation scripts across different operating systems. Utilizing black-box functional testing and custom test oracles, our framework validates the functional requirements of IaC deployments across various platforms. Its modular architecture facilitates the incorporation of additional operating systems, deployment scripts, and test oracles, ensuring adaptability and scalability.

Requirements

Installation

  1. Clone the repository:
    git clone https://github.com/eimanaln/AST24-Project-G3-5.git
    cd AST24-Project-G3-5
  2. Install the required Python packages using pipenv
    pipenv install

Usage

  1. Run the test
    pipenv run python ansible_os_distribution_test.py

Files and Folders

  • test_resources: This folder contains the ansible playbooks that are used to deploy the Apache and Nginx servers, deploy_apache.yml and deploy_nginx.yml.
  • test_runner/test_oracle: This folder contains the three test oracle classes that are used to test the deployed infrastructures, aliveness_oracle.py,recap_oracle.py and vulnerability_oracle.py.
  • host_manager: This folder contains the class that manages the creation, network setup and deleting Docker containers.
  • ansible_os_distribution_test.py: This is the file that is responsible for starting the test framework.

Contributors

This is a project for Automated Software Testing 2024 at ETH Zurich by Eiman Alnuaimi and Matteo Nussbaumer.

ast24-project-g3_5's People

Contributors

eimanaln avatar matteonu avatar

Watchers

 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.