CrossComponentLinking - quality-manager/onboarding GitHub Wiki

Introduction

Discussion on cross-component linking.

History

  • Originally part of CM in CLM 6.0 but de-scoped.
  • Craig Chaney built the infrastructure (only aggregate streams or aggregate baselines; not aggregate + baselines). Vishy Ramaswamy/Gary Johnston redesigned/rewriting a new design/implementation for DNG 0.6.
  • Not planning to use the GC since GC cannot detect/fix version skew.
  • Code exists in RQM/JAF for aggregate configurations. However, JAF is working on an alternative design/implementation for DNG 0.6.

Concepts

  • Clone: Create a new state of a test artifact in another configuration. Note, move (issue: missing references in the component) or copy (issue: no common component affecting reuse) would eliminate version skew. However, requires cross-component linking.

  • Skew: Test artifact links to a test artifact in more than one configuration in the aggregate configuration caused by cloning between component configurations. Sometimes referred to as version skew.

  • Aggregate Configuration: Group of configurations, each from a different component.

Assumptions

  • Single project scope.

Use-Cases

Issues

  • Version skew (multiple versions of the same concept exist) between configurations in the aggregate configuration. Possible solution: Detect and warn (e.g. requiring a manual fix (e.g. merge them into one)) or restrict (e.g. don't allow aggregate configurations with skew).
  • Dangling reference problem (referenced test artifacts not in the aggregate configuration). Possible solution: Always display the referenced test artifact with an error message (on the referenced test artifact or a general error message).
  • Deep-clone (walk all references of the cloned test artifact and create new versions of the test artifact + referenced test artifacts in a new stream) so multiple versions exist of common test artifacts (e.g. test environments, test phases, keywords). Possible solution: Utility or tool to consolidate common test artifacts to a single component.
  • Using GCM (setting and/or changing an aggregate configuration could cause skew, dangling reference problem, and impact existing operations in the product, such as test execution, PDF print job (survives relogin and reboot), etc. ). Possible solution: GCM notifies application of change and allow existing operations to complete before switching or require a manual action (e.g. re-login or reboot).
  • UI
  • Customization of project properties (categories and custom attributes and maybe risks and properties): We're not focusing on cross-project linking so we recommend customers use many components in one project (versus a few components in many projects). Requires the customization of project properties (per component). Requires have project-scoped and component-scoped properties properties.

Proposed Approach

Next Steps

  • Validate/fix dangling references for ‘all’ modelled reference across ‘artifact’ which could be cross component.
  • Review what JAF has implemented and assess for issues with respect to how changes happen, what do we do with queries in flight, etc.
  • With multiple configurations from QM in a GC, how do we determine which to present on the glass? All the ones in the same project area?
  • Scenarios/tools to help customers re-factor from their current components where common artifacts have versions of the same artifacts (environment, datapool, keyword) that should really refactored into a separate component
  • Refine scenarios for storing execution artifacts in a separate component then more invariant artifacts. Think through how this would be enforced or what guidance we would provide in the tool.

To-Dos

  • Paul T: Send JAF document and 2017 Voice presentation to Paul S.
  • Paul T: Schedule call with JAF (Vishy/Gary) to discuss current design/implementation.
  • Paul T: Open exploratory plan item.

References