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 #1

Updated by okurz over 5 years ago

  • Subject changed from [functional][y] Design prototype for the testing framework using object oriented\functional approach to [functional][y] Design prototype for the testing framework using object oriented/functional approach
  • Target version set to Milestone 21

@oorlov the syntax is broken. Can you try to fix it? It's really not that hard. Also, these are not acceptance criteria

Actions #2

Updated by oorlov over 5 years ago

  • Description updated (diff)
Actions #3

Updated by oorlov over 5 years ago

  • Description updated (diff)
Actions #4

Updated by riafarov over 5 years ago

  • Status changed from New to Workable

Suggest to timebox.

Actions #5

Updated by oorlov over 5 years ago

  • Assignee set to oorlov
Actions #6

Updated by riafarov over 5 years ago

  • Subject changed from [functional][y] Design prototype for the testing framework using object oriented/functional approach to [functional][y][timebox:20h] Design prototype for the testing framework using object oriented/functional approach
Actions #7

Updated by okurz over 5 years ago

please just keep in mind that the main users of this test definitions are QA engineers which might not be expert in software design.

Actions #8

Updated by oorlov over 5 years ago

  • Status changed from Workable to Feedback
Actions #9

Updated by oorlov over 5 years ago

  • Status changed from Feedback to Resolved

The prototype was shown to the team.

The general idea is ok. Decided to proceed further and make a real test. It was decided to start with Partitioning test.

Actions #10

Updated by okurz over 5 years ago

  • Status changed from Resolved to Feedback

where can I see the prototype? Do you have a WIP-PR?

Actions #11

Updated by riafarov over 5 years ago

  • Status changed from Feedback to Resolved

@okurz, unfortunately you have missed the call when we have had discussion regarding it. You can see changes in the branch. I don't see that a reason to reopen, as ticket is resolved. Please, ping oorlov in person, so he could demo you the proposal. For the next sprint we plan to have something working in real world.

Actions #12

Updated by okurz over 5 years ago

riafarov wrote:

Please, ping oorlov in person, so he could demo you the proposal

Well, that is what I intended with my last comment, what else should I do? You mentioned a branch, I guess it's https://github.com/os-autoinst/os-autoinst-distri-opensuse/compare/master...OleksandrOrlov:object_oriented_framework ? It's hard to read though due to what looks like unintended variable renames.

Actions

Also available in: Atom PDF