Metadata-Version: 2.1
Name: failures-analysis
Version: 1.0.1
Summary:  failures-analysis package provides fast and reliable way to find and group similar failures in test automation.
Home-page: https://github.com/F-Secure/failures-analysis
License: Apache-2.0
Author: Tatu Aalto
Requires-Python: >=3.8,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Testing
Requires-Dist: jellyfish (>=0.9.0,<0.10.0)
Requires-Dist: lxml (>=4.9.0,<5.0.0)
Requires-Dist: numpy (>=1.22.4,<2.0.0)
Requires-Dist: pandas (>=1.4.2,<2.0.0)
Requires-Dist: python-Levenshtein (>=0.12.2,<0.13.0)
Requires-Dist: sklearn (>=0.0,<0.1)
Project-URL: Change log, https://github.com/F-Secure/failures-analysis/blob/main/CHANGELOG.md
Description-Content-Type: text/markdown

# Failure analysis
Tests failure analysis package provides fast and reliable way to find and group similar failures in your CI/CD
pipeline. When failure grouping and similarity scoring is done automatically by a machine, it will free
resources from development team member to fix the most important failures in their CI/CD pipeline. It is tedious
work for a human to download, open and read all the test failures and analyse which failures belong to the same group.
The failure-analysis package solves this problem by processing xunit xml files using cosine similiarity and Levenshtein distance to find similar
failures from the test results.

Test failure analysis package supports calculating similiarities with the following algorithms. 

- Sequence Matcher from Pythons diff library https://docs.python.org/3/library/difflib.html
- Jaro-Winkler distance using jellyfish library https://pypi.org/project/jellyfish/
- Jaccard index using jellyfish library https://pypi.org/project/jellyfish/
- Levenshtein ratio using jellyfish library https://pypi.org/project/jellyfish/
- Cosine similiarty using sklearn https://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise.cosine_similarity.html

While it supports five different algorithms, best performing algorithms (cosine similiarity and levenshtein ratio) are only currently calculated.

Results and the reason why only cosine and levenshtein deemed good enough are published here: LINK TO THE FIRST PUBLICATION

# Installation instructions

Only Python 3.8 or newer is supported.

1. Update pip `pip install -U pip` to ensure latest version is used
2. Install from the commandline: `pip install failures-analysis`

# Features
- List of test that have the same failure

# Parameters
- `--xxx` to be defined

