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

Provide initial system test suite #2092

Closed
de-jcup opened this issue Mar 20, 2023 · 0 comments · Fixed by #2119
Closed

Provide initial system test suite #2092

de-jcup opened this issue Mar 20, 2023 · 0 comments · Fixed by #2119
Assignees
Labels

Comments

@de-jcup
Copy link
Member

de-jcup commented Mar 20, 2023

This is a subissue of

Situation

We want to have a system test suite which can be used by Java developers (as JUnit tests), but also by people who do not write java Junit tests but want to create or test just PDS solutions.

Solution

  • We use a datamodel for junit tests which can be serialized and deserialized as JSON
  • Inside the PDS tool, we also provide access to this model by loading from file system
  • The java side (junit test) will have a SystemTestAPI class which is the central point for test development (similar to TestAPI in sechub-integration test)
@de-jcup de-jcup self-assigned this Mar 20, 2023
de-jcup added a commit that referenced this issue Mar 20, 2023
- introduce model
- introduce first version of API
- added some unit tests
- added one integration test
de-jcup added a commit that referenced this issue Mar 23, 2023
- introduce model
- introduce first version of API
- added some unit tests
- added one integration test
de-jcup added a commit that referenced this issue Mar 24, 2023
- introduce model
- introduce first version of API
- added some unit tests
- added one integration test

- implemented config features:
  - configrue url + credentials for sechub(remote)
  - configure start stop for sechub (local)
  - configure start stop for pds solutions (local)
  - configure executors for sechub
  - configure tests + asserts

- implemented runtime features
  - start /stop of sechub (local)
  - start /stop of pds-solutions (local)
  - environment variables on script launch (local)
  - fallback default-profile and default-project when
    missing in configuration + link to executors

 - missing
   - pds server configuration must be moved to pds-commons
     so is readable by system tests (necessary to check if
     config file is wrong configured, and to fetch scanType etc.)
   - check pds, sechub started
   - create local profiles, executor configs on sechub automatically
   - create local project
   - test and admin user for local machine (it is normally not
     integration test mode - do we need credentials here as well?)
   - connect user with project
   - connect project with profiles
   - testing mechanism
      - prepare phase
      - upload
      - sechub job creation
      - client usage (?)
   - variable support
   - automatic variables (RUNTIME parts from ConfigConstants - e.g.
     runtime.workspaceRoot etc.)
de-jcup added a commit that referenced this issue Mar 24, 2023
- introduce model
- introduce first version of API
- added some unit tests
- added one integration test

- implemented config features:
  - configrue url + credentials for sechub(remote)
  - configure start stop for sechub (local)
  - configure start stop for pds solutions (local)
  - configure executors for sechub
  - configure tests + asserts
  - automatically set calculated parts into configuration
    (altering configuration, but this is very useful for
     debugging)
  - automatically calculate pds server config file location
  - the wrong configuration exception does now always contain
    a stacktrace with the altered JSON

- implemented runtime features
  - start /stop of sechub (local)
  - start /stop of pds-solutions (local)
  - environment variables on script launch (local)
  - fallback default-profile and default-project when
    missing in configuration + link to executors

 - missing
   - pds server configuration must be moved to pds-commons
     so is readable by system tests (necessary to check if
     config file is wrong configured, and to fetch scanType etc.)
   - check pds, sechub started
   - create local profiles, executor configs on sechub automatically
   - create local project
   - test and admin user for local machine (it is normally not
     integration test mode - do we need credentials here as well?)
   - connect user with project
   - connect project with profiles
   - testing mechanism
      - prepare phase
      - upload
      - sechub job creation
      - client usage (?)
   - variable support
   - automatic variables (RUNTIME parts from ConfigConstants - e.g.
     runtime.workspaceRoot etc.)
de-jcup added a commit that referenced this issue Mar 28, 2023
- introduce model
- introduce first version of API
- added some unit tests
- added one integration test

- implemented config features:
  - configrue url + credentials for sechub(remote)
  - configure start stop for sechub (local)
  - configure start stop for pds solutions (local)
  - configure executors for sechub
  - configure tests + asserts
  - automatically set calculated parts into configuration
    (altering configuration, but this is very useful for
     debugging)
  - automatically calculate pds server config file location
  - the wrong configuration exception does now always contain
    a stacktrace with the altered JSON

- implemented runtime features
  - start /stop of sechub (local)
  - start /stop of pds-solutions (local)
  - environment variables on script launch (local)
  - fallback default-profile and default-project when
    missing in configuration + link to executors

 - missing
   - pds server configuration must be moved to pds-commons
     so is readable by system tests (necessary to check if
     config file is wrong configured, and to fetch scanType etc.)
   - check pds, sechub started
   - create local profiles, executor configs on sechub automatically
   - create local project
   - test and admin user for local machine (it is normally not
     integration test mode - do we need credentials here as well?)
   - connect user with project
   - connect project with profiles
   - testing mechanism
      - prepare phase
      - upload
      - sechub job creation
      - client usage (?)
   - variable support
   - automatic variables (RUNTIME parts from ConfigConstants - e.g.
     runtime.workspaceRoot etc.)
de-jcup added a commit that referenced this issue Mar 28, 2023
- introduce model
- introduce first version of API
- added some unit tests
- added one integration test

- implemented config features:
  - configrue url + credentials for sechub(remote)
  - configure start stop for sechub (local)
  - configure start stop for pds solutions (local)
  - configure executors for sechub
  - configure tests + asserts
  - automatically set calculated parts into configuration
    (altering configuration, but this is very useful for
     debugging)
  - automatically calculate pds server config file location
  - the wrong configuration exception does now always contain
    a stacktrace with the altered JSON

- implemented runtime features
  - start /stop of sechub (local)
  - start /stop of pds-solutions (local)
  - environment variables on script launch (local)
  - fallback default-profile and default-project when
    missing in configuration + link to executors
de-jcup added a commit that referenced this issue Apr 3, 2023
- phases introduced with dedicated classes
- environment variables are now replaced in template
- user defined variables are resolved now

- currently many test still do fail
de-jcup added a commit that referenced this issue Apr 4, 2023
- variable handling is now inside integration tests and works
- added possibility to add parameters to script execution
- fixed problems
de-jcup added a commit that referenced this issue Apr 4, 2023
- variable handling is now inside integration tests and works
- added possibility to add parameters to script execution
- fixed problems
de-jcup added a commit that referenced this issue Apr 5, 2023
- runtime variables introduced
- secretEnv variables introduced
- runtime.workspaceRoot available
- if there is a usage of an unknown variable a proposal for the
  correct variable definition is done.
  For example: if user uses an unknown ${runtime.XYZ} expression,
  this will result in an error with a proposal containing
  at least "runtime.workspaceRoot"
- systemtests documentation
- initial asciidoc generator for system test parts
- refactorings
de-jcup added a commit that referenced this issue Apr 5, 2023
- runtime variables introduced
- secretEnv variables introduced
- runtime.workspaceRoot available
- if there is a usage of an unknown variable a proposal for the
  correct variable definition is done.
  For example: if user uses an unknown ${runtime.XYZ} expression,
  this will result in an error with a proposal containing
  at least "runtime.workspaceRoot"
- systemtests documentation
- initial asciidoc generator for system test parts
- refactorings
de-jcup added a commit that referenced this issue Apr 6, 2023
- stages introduced
- stages wait for script processes whern necessary
- added documentation
- some refactorings
de-jcup added a commit that referenced this issue Apr 17, 2023
- when no build stage is defined, the api parts are not built
- no build stage setup necessary for "normal" builds
- adopted release and gradle github workflow
- updated documentation
de-jcup added a commit that referenced this issue Apr 17, 2023
- Reduced OpenAPITestTool
- SecHubClient renamed to SecHubAccess
- SecHubAccess builds internally http client and even provides
  trust all SSL dummy
- SecHubAccess provides getters to access different api parts

- added NotFound to AbstractTestExecutable of a flaky integration test
  so it shall retry until found...
de-jcup added a commit that referenced this issue Apr 17, 2023
- currently there are problems with UUID results (instead of
  correct JSON).
de-jcup added a commit that referenced this issue Apr 21, 2023
de-jcup added a commit that referenced this issue Apr 21, 2023
- projects are created
- profiles are created
- dry run possible
de-jcup added a commit that referenced this issue Apr 24, 2023
- health check parts added
- auto prepare some parts added
- executors, profiles and projects are now configured
  completely (and it is possible to restart the setup,
  old data is automatically removed except old but now
  unused executor configurations)
- credentials are still missing for PDS solution
de-jcup added a commit that referenced this issue Apr 25, 2023
- health check parts added
- auto prepare some parts added
- executors, profiles and projects are now configured
  completely (and it is possible to restart the setup,
  old data is automatically removed except old but now
  unused executor configurations)
- credentials are still missing for PDS solution
de-jcup added a commit that referenced this issue Apr 25, 2023
- added credentials handling in executor configuration
- moved all fallback parts into preparation phase,
  no longer field initializations (avoids confusion for users)
- new default fallbacks introduced
- wait for available implemented for SecHub
- some minor changes
de-jcup added a commit that referenced this issue Apr 25, 2023
- implementation is now able to start test prepare scripts
- for prepare scripts the framework does always wait
- added illegal state handling (scripts not existing, scripts
  cannot be executed)
- added test parts into SystemTestDryRunIntegrationTest
de-jcup added a commit that referenced this issue Apr 26, 2023
- Added upload definitions
- github workflow integration test gradle calls do now set
  SecHub build stage to "all"  which will execute system
  integration test as well
- Moved archive support into systemtest and used this one
  now in PDS tools
- added internal test for illegal states
- improved health check
- system test document now inside techdoc
de-jcup added a commit that referenced this issue Apr 26, 2023
- Added upload definitions
- github workflow integration test gradle calls do now set
  SecHub build stage to "all"  which will execute system
  integration test as well
- Moved archive support into systemtest and used this one
  now in PDS tools
- added internal test for illegal states
- improved health check
- system test document now inside techdoc
de-jcup added a commit that referenced this issue Jul 21, 2023
- fixed failing part (variant names
- improved log output for rest doc parts
de-jcup added a commit that referenced this issue Jul 26, 2023
- secretEnv is not usable for credentials (PDS and sechub side +
  executor configuration setup)
- enhanced jsonconverter ,it is now possible to add a custom mapper
- use generated example in documentation
- reduced output of generated examples
- system test api builders do now provide comments method as well
- added unit tests
de-jcup added a commit that referenced this issue Jul 26, 2023
- secretEnv is not usable for credentials (PDS and sechub side +
  executor configuration setup)
- enhanced jsonconverter ,it is now possible to add a custom mapper
- use generated example in documentation
- reduced output of generated examples
- system test api builders do now provide comments method as well
- added unit tests
de-jcup added a commit that referenced this issue Jul 27, 2023
- reduced assert sechub result: not longer an array but an optional..
de-jcup added a commit that referenced this issue Jul 28, 2023
de-jcup added a commit that referenced this issue Jul 28, 2023
de-jcup added a commit that referenced this issue Aug 8, 2023
- changed generators, now internal access and no longer abstract
  variant --> composition vs. inheritance
- fixed failing test (rename of parameters was reason)
de-jcup added a commit that referenced this issue Aug 9, 2023
- remote setup had a bug (local setup was used and a skip was not
  skipping as well)
- refactoring: constants extracted and added javadoc parts
  using now always TestConfigUtil to create environment providers
- remote system test does now work
de-jcup added a commit that referenced this issue Aug 9, 2023
- enhanced fake bash scripts for dry run test
de-jcup added a commit that referenced this issue Aug 10, 2023
- log outputs
- at the end the there is now a log info with details and path
  to workspace location
- runtime contains now artifacts
- filenames + structure in runtime changed
de-jcup added a commit that referenced this issue Aug 11, 2023
de-jcup added a commit that referenced this issue Aug 11, 2023
de-jcup added a commit that referenced this issue Aug 11, 2023
de-jcup added a commit that referenced this issue Aug 11, 2023
de-jcup added a commit that referenced this issue Aug 11, 2023
- Provide initial system test suite #2092
- introduce build stage because of build lifecycle problems
- Introduce 'sechub-pds-commons-core' #2118
- provide wrapper api in sechub-api-java to stabilize usage #2184
- fix wrong OpenAPI generation for adminAssignsUserToProject #2191
- tests are not marked as integration tests but they are #2204
- Archive support is not able to compress multiple folders or single files #2359
- SecHubConfigurationModel has no excludes/includes #2363
- Improve log output for PDS execution failures #2398
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant