uabrc / uabrc/uabrc.github.io

Tutorial on Cheaha system testing

Open
#504 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

style: article/section 📝 system: cheaha 🖧
Dominant language
Python
Stars
24
Forks
15
Avg merge
10d 3h
Merged PRs (30d)
1

Description

What would you like to see added?

A common thread among office hours visits and tickets for low-level fixes for pre-existing software on Cheaha is long turn-around times. A researcher will come in to get help with a low-level bug, error or failure in their workflow. Sometimes its the software, sometimes its a change in the module system, sometimes its a new parameter, sometimes its a new dataset with corruption or errors or unexpected features.

In most cases we are able to troubleshoot the issue, but oftentimes the researcher will only have a full-sized dataset to verify that a troubleshooting step had an observable effect. In the genomics space this can mean hours or days of processing, only to find out the step had no effect. This can lead to drawn-out troubleshooting sessions, or spread out over a month, with lots of frame-shifting, reminders of where we are, etc.

These sessions could be made substantially shorter if researchers were aware of the concept of, and prepared for, black box system testing. The general idea behind black box system testing is to have a known set of inputs that produce a known set of outputs. Then when we change the black box (troubleshoot), we verify that the outputs haven't changed. In many cases, the inputs can be made very small so that the black box processes more quickly than for typical inputs. Having a prepared "test set" of inputs would make the troubleshooting sessions much faster. It would also enhance reproducibility and trust in the code, which are scientific benefits.

An article which looks at various software testing types at a high level is: https://www.softwaretestinghelp.com/types-of-software-testing/. We may also consider rewriting the article for our docs in the context of scientific and research computing.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked overview of software testing and the issue's Cheaha troubleshooting examples. Develop a tutorial explaining black-box system testing for scientific and research computing, including small known inputs and expected outputs; done means the guidance is adapted to this documentation project's audience and context.

Written by the indexing model from the issue text.

Assessment

Domain
documentation, hpc
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.