Skip to content
Back to skills

Software Testing

ASecurity

Use when a task asks how many test cases a boolean condition requires, how to derive tests from high-level and low-level requirements, which coverage objectives apply per software level (level A requires mc-dc, B decision coverage, C statement coverage, D and E none), or how to measure and document structural coverage against the DO-178C Table A-7 objectives. Generate requirements-based-testing test cases for DO-178C airborne software and count the test cases each structural-coverage metric d...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
ai-agentspythonexpresstesting

Works with

  • claude code

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 27, 2026

npx -y skills add ashfordeOU/aero-agent-skills --skill software-testing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Software Testing?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Software Testing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-software-testing/badge)](https://www.skillsdirectory.com/skills/ashfordeou-software-testing)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: software-testing
description: "Use when a task asks how many test cases a boolean condition requires, how to derive tests from high-level and low-level requirements, which coverage objectives apply per software level (level A requires mc-dc, B decision coverage, C statement coverage, D and E none), or how to measure and document structural coverage against the DO-178C Table A-7 objectives. Generate requirements-based-testing test cases for DO-178C airborne software and count the test cases each structural-coverage metric demands: statement coverage needs 1 case per statement, decision coverage 2 cases per decision, and mc-dc needs n+1 cases for a compound boolean condition with n independent terms. Trigger: requirements-based-testing, mc-dc test-case-count, structural-coverage measurement, coverage-objectives per level, test case generation."
license: Apache-2.0
compliance: STANDARDS-REF
standards:
  - id: do-178c
    reference-only: true
gated: false
domain: avionics
pack: avionics
compatibility: "agentskills.io SKILL.md; any SKILL.md host (Claude Code, Hermes, OpenClaw)"
metadata:
  domain: avionics
  subdomain: do178c
  tags: [requirements-based-testing, structural-coverage, mc-dc, statement-coverage, decision-coverage, test-case-count, coverage-objectives]
  version: 0.1.0
  author: Aero Agent Skills
---

# DO-178C Requirements-Based Software Testing (avionics/do178c/software-testing)

Use when the task is generating test cases from DO-178C requirements,
counting the test cases a structural coverage metric demands for a boolean
condition, or measuring statement, decision, and MC/DC coverage against the
objectives for the software level.

## Domain quick reference

- Requirements-based testing: every high-level and low-level requirement is
  exercised by at least one test case derived from that requirement (normal
  range, plus robustness and boundary cases the requirement implies).
- Statement coverage: every executable statement runs at least once. Test
  cases needed per statement: 1.
- Decision coverage: every decision (boolean expression) takes both
  outcomes. Test cases needed per decision: 2.
- MC/DC (modified condition/decision coverage): every condition in a
  decision takes both outcomes, and each condition independently affects
  the decision outcome. For a compound condition with n independent terms:
  n + 1 test cases.
- Worked count: A AND B AND C (3 terms) needs 4 MC/DC cases: TTT, FTT,
  TFT, TTF.
- Worked count: A OR B OR C OR D (4 terms) needs 5 MC/DC cases: FFFF,
  TFFF, FTFF, FFTF, FFFT.
- Coverage objectives per level (DO-178C Table A-7, summarized): level A =
  statement + decision + MC/DC; level B = statement + decision; level C =
  statement; levels D and E = none required.
- Required structural coverage: 100% of the metric the level demands. The
  test case count for one compound condition is: MC/DC n + 1, decision 2,
  statement 1.

## Workflow

1. Confirm the software level (DAL) and the coverage depth it demands
   (A MC/DC, B decision, C statement, D/E none).
2. Derive test cases from each high-level and low-level requirement:
   normal-range inputs first, then robustness and boundary cases the
   requirement implies.
3. For each compound boolean condition in the software, count its
   independent terms n and compute the required test cases: level A n + 1,
   level B 2, level C 1.
4. Generate the minimal MC/DC vector set for each compound condition
   (n + 1 assignments: all-true plus one-false-per-term for AND, all-false
   plus one-true-per-term for OR).
5. Run the test cases on the target or host with instrumentation; measure
   statement, decision, and MC/DC coverage.
6. Compare measured coverage against the objectives for the level;
   investigate every shortfall.
7. Document the coverage analysis; justify residual uncovered code (dead
   code, masked logic) instead of claiming 100% without evidence.

## Pitfalls

- Confusing this leaf with avionics/do178c/verification: that leaf covers
  the verification process (reviews, analyses, independence, verification
  results); this leaf is specifically requirements-based test case
  generation and structural coverage measurement.
- Confusing this leaf with avionics/do254/hardware-verification: DO-254 verifies
  airborne electronic hardware; DO-178C software testing applies to
  software items.
- Using 2n cases for MC/DC: a 3-term AND needs 4 cases (TTT, FTT, TFT,
  TTF), not 6.
- Covering a level A decision with statement or decision coverage only:
  level A demands MC/DC, level B demands decision coverage.
- Forgetting that levels D and E have no structural coverage objectives,
  while requirements-based testing still applies to them.
- Counting operators instead of terms: A AND (B OR C) has 3 independent
  conditions, so MC/DC needs 4 cases.
- Ignoring short-circuit evaluation: assignments that are unreachable must
  not be counted as satisfied outcomes.
- Reporting 100% coverage without instrumented evidence: coverage is
  measured on executed code, not inferred from test design.

## Behavior contract (gate 3)

The test-case counting and coverage-objective logic is exercised by the
gate 3 contract test: scripts/test_software_testing.py against
scripts/software_testing_logic.py (stdlib unittest, offline). Run:
python3 scripts/test_software_testing.py

## Compliance

- Standards referenced, not reproduced: DO-178C text is proprietary
  (RTCA/EUROCAE); summary-only per standards-map.yaml and brief 06.
- compliance: STANDARDS-REF, gated: false.

Files in this skill

  • SKILL.md5.4 KB
  • scripts/software_testing_logic.py7.7 KB
  • scripts/test_software_testing.py7.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…