Project

General

Profile

Actions

action #44057

closed

coordination #44054: [functional][y][epic] Develop maintainable and scalable test framework

[functional][y][timebox:20h] Design prototype for the testing framework using object oriented/functional approach

Added by oorlov over 5 years ago. Updated over 5 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Enhancement to existing tests
Target version:
SUSE QA - Milestone 21
Start date:
2018-11-20
Due date:
2018-12-04
% Done:

0%

Estimated time:
Difficulty:

Description

Initial plan

1: Find out an approach to make the test framework more readable, scalable and maintainable:

  • One of the suggested approaches is to separate the products by distri, then by versions, then by architectures if required. It also could be divided into smaller and more concrete products and it is one part of the task to find the right balance of complexity and readability;
  • The certain product is a factory class that initializes all the Product Modules describing the behavior of the product on a business level (e.g. select_product($product) instead of procedural approach like send_key{$smth} ... type_string($string) ... wait_still_screen ...);
    • The Product Modules may use inheritance or composition to share common behavior. Same, it is part of the task to identify the better solution;
    • The Product Modules could be used to represent components of the widget/application/screen, or they could represent the entire widget/application/screen;
  • Test Modules must operate only with the methods, that Product Modules provide. No common os-autoinst subroutines should be used there;
  • Needles and YaST API selectors should be either stored separately or in Product Modules. Test Module should not represent them.

2: Make a PR with the suggested approach;
3: Get a feedback from team. Change the prototype according to the solutions found after discussion.

Actions

Also available in: Atom PDF