Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Distinguish between direct and indirect metrics. #4931

Open
21 tasks
fniessink opened this issue Nov 24, 2022 · 0 comments
Open
21 tasks

Distinguish between direct and indirect metrics. #4931

fniessink opened this issue Nov 24, 2022 · 0 comments
Labels
Feature New, enhanced, or removed feature

Comments

@fniessink
Copy link
Member

fniessink commented Nov 24, 2022

This is issue is blocked by available time: it's a lot of work and there are other more important issues to do first.

User story

As a Quality-time user I want Quality-time to distinguish between direct and indirect metrics so it's less confusing to configure sources for indirect metrics.

Direct metrics use one measurement from a source without calculations. Indirect measurements are calculated from direct measurements.

Acceptance criteria

  • When configuring the "test cases" metric, the user sees two sub metrics. One "logical test cases" and one "physical test cases". Each sub metric has its own sources tab.
  • We start with one indirect metric: violations density = nr of violations / LOC. This metric only supports the percentage scale.

Assumptions

  • Something is present...

Open issues

  • How/where do we instruct the user that she has to add two metrics of two specific types?
  • If the metric is configured incompletely, what happens? Do we need to treat this differently from direct metrics that have no source configured?

Out of scope

  • The user has to add two metrics as source that are of a different type (for example "violations" and "size" to calculate the "violation density" indirect metric). The UI will not contain two tabs or two lists for the two different types. Both metrics appear in the "Sources" tab. Exactly like it works now for the "Test cases" metric. It would be better if the user can easily see that they have added a metric of one type and still need to add a metric of another type, but this is out of scope.
  • The metrics used by the indirect metric must be part of the same report.

Tasks

Components

Frontend

  • The "Add Source" button of an indirect metric shows a list of direct metrics that can be the source for this indirect metrics. The "Add Source" button does not show any source types (because this is an indirect metric and indirect metrics have no actual sources, only other metrics that play the role of source). Note that constructing the list of options is very different for direct metrics compared to indirect metrics: for direct metrics it's a list of source types, for indirect metrics it's a list of metrics in the current report that have a metric type that is possible source for the indirect metric.
  • The "Sources" tab of indirect metric shows a list of metrics. Per metric it shows the move/up/down buttons and a delete button. The metric itself is a name and link to the actual metric.

Shared data model

  • Indirect metrics get metric types in their list of sources. The meta model specifies sources as list[str] so that doesn't need to be changed.

Shared server code

  • Change endpoint endpoint
  • Extend the example reports

External server

  • Change endpoint endpoint
  • Add ...

Collector

  • Add a collector for each indirect metric, comparable to the test_cases metric collector.

Internal server

  • Change endpoint endpoint
  • Add ...

Feature tests

  • role does action
  • ...

Documentation

  • Update changelog
    • Describe change
    • Add deployment instructions to changelog
  • Add instruction to user manual
  • Update screenshots
  • Update deployment instructions
  • Update software documentation

More information

Blocks #3499.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New, enhanced, or removed feature
Projects
Status: Wait for use case
Development

No branches or pull requests

1 participant