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

Refactor processes to make it easier to specify which tests to run #520

Open
3 of 5 tasks
Tracked by #577
pihme opened this issue Dec 7, 2021 · 5 comments
Open
3 of 5 tasks
Tracked by #577

Refactor processes to make it easier to specify which tests to run #520

pihme opened this issue Dec 7, 2021 · 5 comments
Labels

Comments

@pihme
Copy link
Contributor

pihme commented Dec 7, 2021

We want to refactor the processes. In particular, we thought about getting rid of Run All Tests in Camunda Cloud.

We want to replace it by a process that takes a list of testProcessId and then uses a multi instance to run all tests in that list.
Then the hierarchy of process would be:
Run List of Tests in Camunda Cloud > Run Test per Cluster Plan > Run Test in Camunda Cloud > Test Process

This would allow callers of the processes to specify which tests to run. We believe this will be a more flexible approach.

work items

@pihme pihme added the enhancement New feature or request label Dec 7, 2021
@deepthidevaki
Copy link
Member

@pihme I guess you are probably busy to work on this issue. Would it make sense if I take up this task? I either need this to integrate e2e-tests or should find a temporary way to run e2e-tests until this is done.

@pihme
Copy link
Contributor Author

pihme commented Mar 17, 2022

Sure, let's talk about it first, though.

@pihme
Copy link
Contributor Author

pihme commented Mar 18, 2022

Summary of discussions with @deepthidevaki today:

  • The interface (input/output) of a test will be reduced
    • Input stays as it is today
    • Output will be reduced to (see below)
    • Additionally, there will be a new module api that has Java interfaces for this API
    • And we aim to publish a release of testbench to Maven, so that tests can import the API as dependency
public interface TestReport {

  TestResult getTestResult();

  List<String> getFailureMessages();

  public enum TestResult {
    PASSED,
    FAILED,
    SKIPPED;    
  }
}
  • The test workflows will be simplified
    • Eliminate layers that are confusing
    • Make the test type to run (chaos test, sequential test, e2e) the outmost loop
    • This way, we have more flexibility to specify which tests to run, and with which configuration
    • Make the cluster plan the inner loop; which cluster plans to run in becomes part of the configuration for a test type
    • One side effect of this refactoring would be that the check whether we are in a chaos region would need to be moved and implemented in the chaos test
    • Visually this could look like this:

image

  • We also thought about a nice to have feature: each test type could deploy a workflow to start this test manually and provide a human task form to configure the test run. We think this will make it easier to test the processes during development
  • To be discussed later, how we configure tests to either be short for a nightly run or longer (e.g. the week of QA prior to a release)

In terms of implementation steps:

  • Deepthi will use what is already there to integrate and test her e2e test in isolation
  • in the meantime, I will proceed with the refactoring. Most likely I will introduce new BPMN models alongside the old one
  • Deepthi will join when she is done with her e2e tests
  • Later, we will switch the QA run to use the new processes
  • After Q2, when we implemented deletion of workflows, then we can delete the old ones, yippie!

cc and request for comments @Zelldon

@ChrisKujawa
Copy link
Member

Thanks for the update @pihme. I think it looks fine.

One side effect of this refactoring would be that the check whether we are in a chaos region would need to be moved and implemented in the chaos test

Not 100% sure what this means and how it would look like and why 😁 Maybe you can elaborate a bit on this.

After Q2, when we implemented deletion of workflows, then we can delete the old ones, yippie!

😆 lets see whether we really can do this in one quarter :D

@pihme
Copy link
Contributor Author

pihme commented Mar 23, 2022

Thanks for the update @pihme. I think it looks fine.

One side effect of this refactoring would be that the check whether we are in a chaos region would need to be moved and implemented in the chaos test

Not 100% sure what this means and how it would look like and why grin Maybe you can elaborate a bit on this.

I hope this helps: zeebe-io/zeebe-chaos#126

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants