The aim of this project is to calculate several software metrices and to define correlation between them.
Name | Student ID | Email ID |
---|---|---|
Nirav Ashvinkumar Patel | 40081268 | niravjdn@gmail.com |
Himansi Patel | 40072262 | himansipatel1994@gmail.com |
Krishnan Krishnamoorthy | 40089054 | krish27794@gmail.com |
Darwin Anirudh Godavari | 40093368 | darwinanirudh@gmail.com |
Jayaprakash Kumar | 40083709 | jayaprakash6034@gmail.com |
- Statement Coverage: Statement coverage is a white box testing technique, which involves the execution of all the statements at least once in the source code. It is a metric, which is used to calculate and measure the number of statements in the source code which have been executed.
- Branch Coverage: ranch coverage is a testing method, which aims to ensure that each one of the possible branch from each decision point is executed at least once and thereby ensuring that all reachable code is executed.
- Mutation Score: Mutation testing is used to design new software tests and evaluate the quality of existing software tests.
- Cyclomatic Complexity: Cyclomatic complexity is a software metric used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent paths through a program's source code.
- Relative Code Churn Code churn is a measure of the amount of code change taking place within a software unit over time.
- Software Defect Density
- Apache Common Collections - project details , source-code
- Apache Commons Configuration - project details , source-code
- Apache Commons Math - project details , source-code
- Apache Commons IO - project details , source-code
- Apache Commons Lang - project details , source-code
.
├── Presentation # Presentaion of the project - 4th April, 2019
├── Proposal # Proposal of the project
├── assets # Images or other screenshots
├── Data # Raw Data - CSV, HTML (All Metrics)
├── Jupyter Notebook # Jupyter Notebook Source Code
└── README.md
CLOC TUTORIAL
https://www.youtube.com/watch?v=QxiXKZftJRw&t=161s
Effectively count lines grouped by programming languages - http://cloc.sourceforge.net/
Code Coverage - https://www.eclemma.org/jacoco/
Added Dependency Plugin in pom.xml for PIT Test as below
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
http://pitest.org/quickstart/basic_concepts/
https://www.mkyong.com/maven/maven-pitest-mutation-testing-example/
http://pages.cs.aueb.gr/~kintism/papers/emse2017/
https://www.youtube.com/watch?v=wZeZMtqVmck&feature=youtu.be
Added Dependency Plugin in pom.xml for PIT Test as below
We didn't configure it for only certains classes, instead we ran it on entire project.On an average, It took 1-2 hours for 4 projects(collections, configurations, io, lang) and 8.5 hours for math.
Find the screenshot below.
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>LATEST</version>
<configuration>
<outputFormats>
<param>HTML</param>
<param>CSV</param>
</outputFormats>
</configuration>
</plugin>
Reference : http://pitest.org/quickstart/maven/
Following command to compile and run unit tests
mvn clean install
Following command to run PIT Test
mvn org.pitest:pitest-maven:mutationCoverage -X
X is for debug mode so we can see what's going on.
https://maven.apache.org/install.html
Maven Extension https://github.com/objectledge/maven-extensions
m2e http://grumpyapache.blogspot.com/2011/08/mess-that-is-m2e-connectors.html
https://www.datascience.com/blog/introduction-to-correlation-learn-data-science-tutorials
https://smproject.herokuapp.com/
All generated data in can be found on above site as well.
Spearman correlation calculation procedure were all explained here in URL.
Link: https://geographyfieldwork.com/SpearmansRankCalculator.html
Link: https://data-flair.training/blogs/python-statistics/
cloc --diff file1.zip file2.zip
https://drive.google.com/open?id=1kB3hoNvKrX-gr6AuuCWKLyCX2E-MSnBL
HTML View : http://smproject.niravjdn.xyz/JN/HTML/ https://smproject.herokuapp.com//JN/HTML/
We created following website for converting Jupyter Notebooks to HTMl for all of the people without having local setup of python.