Skip to main content

Combinatorial Testing Package

This package allows a user to input a list of n factors and k levels with a coverage strength value t to create an optimal suite of tests that can be run.

Test Suite Generation

To import the package once installed, use:

import comb_testing

This package contains two types of algorithms designed to generate test suites. One uses a greedy method, while the other uses a weighted method.

Greedy Algorithm

Once imported, the greedy algorithm function is called using:

comb_testing.greedy_algorithm(<list>, <strength>, <flag>)

Where <list> is the N x k list of factors and levels and <strength> is the t value

The <flag> value allows the user to select between two different algorithms for suite generation.

The first, where flag == 1 is an algorithm which is optimized for a larger covering array (one that exceeds more than 5 levels and/or 5 factors).

The second, where flag == 2 is an algorithm optimized for speed but is only fast with a smaller sized covering array.

The first algorithm is designed to be more traditionally greedy, but due to usage of random generation, final test suites can vary in size.

The second algorithm takes a more "back-to-front" approach by first generating all possible candidate rows and generating a suite based on how many tuples the top-most row can generate over time.

Biased Algorithm

A secondary algorithm which will generate a test suite through usage of a "benefit list" is available as well and can be called as

comb_testing.biased_algorithm(<main_list>, <benefit_list>, <exclusions>)

One note about this algorithm is that it can only support pairwise (2-way) coverage.

The structure <main_list> is similar to that of <list> as described above. It is an N x k list of factors and levels.

The <benefit_list> structure is also N x k size, but instead of unique values, the values are replaced with weights or "benefit" values associated with the corresponding element in the <main_list>.

NOTE: If user intends to use <benefit_list> with covering array generation as dicussed below, a matching array with benefit values must be coded in place. Creating a function which will do this process automatically with a range of benefit values will be added in the future

Finally, <exclusions> allows the user to enter a list of pairwise tuples to exclude from the final test suite. For example, if a user wants to exclude the pair (2, 4) from the final suite, then the <exclusions> list would be [(2,4)] and so on for more than one pair.

Covering Array Generation

If there is no predetermined list, this package features a function to generate a covering array based on a regex string

The function can be called using: comb_testing.generate_covering_array("<regex>")

The value of <regex> will be a string with the following format: "<N>^<k> <N>^<k> ..."

An example of this function to generate a covering array with 4 factors and 3 levels would be:

covering_arr = comb_testing.generate_covering_array("3^4")

In this example, the result is stored in covering_arr and can be iterated over like any other list

Metadata

Release files for combinatorial-tests-agragland 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for combinatorial-tests-agragland 0.0.4
File Size Uploaded Provenance
combinatorial_tests_agragland-0.0.4.tar.gz 6.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for combinatorial-tests-agragland 0.0.4
File Interpreter ABI Platform
combinatorial_tests_agragland-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 16.1 kB

Release files / combinatorial_tests_agragland-0.0.4.tar.gz

Download URL combinatorial_tests_agragland-0.0.4.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f5a85cfe95fc4fa4055ae5fd962321acbed85cbb972b94e436393ae4750400d2
BLAKE2b-256 checksum
How to use checksums
3cd63f9f07d3cdcea6a13583aa334a710ec27abd3da19a88742a5bf13cf67b45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.1

Release files / combinatorial_tests_agragland-0.0.4-py3-none-any.whl

Download URL combinatorial_tests_agragland-0.0.4-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
263930ae4a56f369c2f0b016dbbd99a97a2c3550794ea6f43ad4896abad31071
BLAKE2b-256 checksum
How to use checksums
5d1ed8ea9cea211ab997af79da0cad4fc7286eb771819648e28ec40b2acb0025
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.1

Security for combinatorial-tests-agragland 0.0.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page