Skip to content

m-zakeri/ARTA

Repository files navigation

ARTA: Automatic Requirement Testability Analyzer

ARTA_logo

Software testability is the propensity of software artifact to reveal its existing defects. Software requirements are crucial artifacts in developing software. Requirements specifications are used in both the functional and acceptance testing to ensure that a program meets its requirements. A testable requirement increases the effectiveness of testing while decreasing the cost and time. In this project, we define requirement testability in terms of requirements smells and propose a measuring method. More information are available in the project documentation website.

Demo

ARTA is a research project at IUST Reverse Engineering Laboratory. An online demo of ARTA is available on http://arta.iust-parsa.ir/. You can login with following credential:

  • Demo username: User
  • Demo password: arta@IUST

and watch the examples requirements.

ARTA requirement analyzer module

ARTA Demo 1

ARTA requirement smell labeling module

ARTA Demo 2

Getting started

Prerequisites

MySql

MySQL version 5.6 is required.

install MySql on windows

Download and install using this link.

install MySql on ubuntu

Following instructions on this link.

Python

since project based on python, python version 3.8+ needed.

download python 3.8 for windows from here.

Install

Create a virtual environment

First, install virtualenv

python3 -m pip install virtualenv
cd project_directory
virtualenv env 

Activate virtual environment using:

source env/bin/activate

Install project's requirements

Run

pip install -r requirements.txt

then install necessary packages for textBlob

python -m textblob.download_corpora

Necessary packages on ubuntu

Install necessary packages for mysqlclient on ubuntu using

sudo apt install python3-dev default-libmysqlclient-dev poppler-utils

Project configuration

First, create a mysql database for the project

then create file called local_settings.py in Smella folder

vim Smella/local_settings.py

write following code

DB_USER = 'database username'
DB_PASS = 'database password'
DB_HOST = 'database host'
DB_NAME = 'database name'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ['*']

then apply migration using

python manage.py makemigrations
python manage.py migrate

then create a super-user for admin page

python manage.py createsuperuser

until the ui fully written, create requirements and projects using admin page "/admin/"

Running Project

run project using

python manage.py runserver

Insert Dataset

insert dataset the using.

python manage.py insert_date <location of json file> <a project name for this dataset>

Used Datasets

Publication(s)

News

  • 2024-04-28: The ARTA (automated requirements testability analyzer) tool's full implementation is now publicly available.

  • 2021-10-20: Initial/partial release. The full version of source code will be available as soon as the relevant paper(s) are published.

Read more

Visit project website at https://m-zakeri.github.io/ARTA