diff --git a/README.md b/README.md index 054925e..cb14452 100644 --- a/README.md +++ b/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)