Browse Source

More notes on JUnit5 etc

master
Jonathan Christison 5 years ago
parent
commit
d739c47503
  1. 64
      README.md

64
README.md

@ -7,7 +7,7 @@
* JSON-P - API for processing JSON
* CDI 2.0 - Glue JAX-RS and JSON-P together dependency injection using java beans, share a class and manage its lifecycle
* JSON-B - JSON binding (similar to jackson databind)
* Open Tracing - standardise requests across multiple services
* Open Tracing - standardise tracing/logging/profile metadata across a distributed service, provides wire protocol api spec and impl etc
* Other stuff like Metrics (prometheus), watchdogs, retry, circuit breakers etc
@ -19,6 +19,28 @@
* Jandex - Java annotations indexer (Jason Green dev)
* mod_cluster - undertow based Load Balancer
* Hotspot vs Native
* Hotspot JVM (JIT) (Andrew Dinn in the office... well when theres not a global pandemic)
* Native via GraalVM (AOT)
* Testing frameworks
* JUnit - Main Java testing framework
* Rest-assured - Test REST APIs
* Awaitility - Java DSL test framework for async systems
* FitNesse - A fork of Fit (Framework for Integrated Test) Acceptance testing framework
* Testing methodologies
* Smoke testing - Simple tests for build verification eg. does it run without segfault/strack trace
* Unit testing - Testing class/methods
* Integration testing - Testing application framed by user scenarios
* System testing - Holistic blackbox testing between integration components
* Acceptance testing -
* User acceptance testing - Factory acceptance testing (FAT), Site acceptance testing (SAT)
* Operational acceptance testing - Things that allow a system to be maintained, checking of backups, checking of patching mechanisms etc
* Contractural and regulation acceptance testing - Test against criteria as documented (Prod gatechecks for example)
* Debugging (not actually testing but relevent experience, from gdb on ChibiOS to intelij)
# General Notes
@ -59,6 +81,45 @@ uni.onItem()
* JUnit
* TestNG
* Jenkins, CI, piplines Blue Ocean
* Maven - Already know most of this
* Have fixed bugs in maven plugins
* Used maven extensively in productisation
* Good knowledge of prod proccess
### JUnit5
[Architecture](https://www.youtube.com/watch?v=1xRcRYKOTHs&list=PLqq-6Pq4lTTa4ad5JISViSb2FVG8Vwa4o&index=5)
* Platform - Test engine itself
* Jupiter - JUnit5 API/Annotations
* Vintage - API for older JUnit4 tests
* Ext - 3rd Party extensions (custom API aka SPI)
### QE tests
[Github](https://github.com/quarkus-qe)
* Quarkus-startstop - Measures time and memory usage
* Did something similar when working on opensplice DDS, combined a demo application with measurement output, used to track metrics
not perfect as it didn't account for multiple tests/threads running, sort of solved with CPU pinning
* Quarkus jenkinsfiles - Jenkins pipelines, based on Groovy
* Experience with groovy https://github.com/jboss-fuse/fuse-build-yaml/blob/7.x.redhat-7-x/src/main/groovy/formatYaml.groovy (all my groovy looks like java)
* I've created Jenkins while in prod to do a number of tasks, namely
* Interogating brew build root
* Assembling various maven repository sets
* Creating reports (build from source %)
* Templates for email, html, Jira
* Used a mixture of bash and python at the time but this is what prod tooling used at the time
* Openshift test suite - Integration tests for services on openshift
* Deploys service via openshift YAML e.g. AMQ then tests quarkus application against it
* Experience with deploying own openshift cluster and apps (Old laptop... still running now just cant access it!)
* Experience with managing openshift cluster (Qucklabs)
* Beefy-scenarios -
# The plan
@ -80,4 +141,5 @@ uni.onItem()
* [Weld](http://weld.cdi-spec.org/)
* [Quickstart hello world](https://quarkus.io/guides/getting-started)
& [Building native image](https://quarkus.io/guides/building-native-image) - Used multistage build
* [Awaitility](https://github.com/awaitility/awaitility)

Loading…
Cancel
Save