The "To be or not to be" soliloquy appears in Act 3, Scene 1 of Shakespeare's Hamlet.
In this scene, often called the "nunnery scene," Prince Hamlet thinks about life, death, and suicide.
Specifically, he wonders whether it might be preferable to commit suicide to end one's suffering and to leave behind the pain and agony associated with living.
How to live an agony with the lack of testing?
This is the question...
![]() |
Juan Antonio Breña Moral Technical Product Owner for Shared Platform @ Atradius CIO Twitter | Github | Linkedin |
Quotes: “Lead me, follow me, or get out of my way.” "Pressure makes diamonds." - George S. Patton Jr. |
"Quality is never an accident; it is always the result of intelligent effort."
- John Ruskin
“Program testing can be used to show the presence of bugs, but never to show their absence!”
- Edsger W. Dijkstra
“Discovering the unexpected is more important than confirming the known.”
- George E. P. Box
"Quality is not an act, it is a habit."
- Aristotle
“If you're not failing, you're not trying hard enough.”
- Martin Fowler
Questions for the audience:
What is the percentage of your time invested in testing in a Sprint?
Approximately 40-50% of the total software development project lifecycle cost involves testing, which is in line with industry software cost models.
Tim Crumbley (NASA)Note: IMHO, the % should be higher in Distributed systems. (70%-80%)
Unit testing is a type of software testing where individual units or components of a software are tested. The purpose of unit testing is to validate that each unit of the software performs as expected.
< plugin>
< artifactId>maven-surefire-plugin< /artifactId>
< version>3.5.2< /version>
< configuration>
< includes>
< include>**/*Test.java< /include>
< /includes>
< /configuration>
< /plugin>
Questions for the audience:
When is better not not use Mocks and it is better to create an Integration test?
Integration tests test the plumbing and choreography of the components.
- Uncle Bob Martin
Integration testing is a type of software testing where the software is tested as a whole, to ensure that the different parts of the software work together as expected.
Every service has an integeration testing solution:
Service | Solution |
HTTP | WireMock |
Database (Provider X) | TestContainers |
Messaging Broker | TestContainers |
Cache | TestContainers |
< plugin>
< groupId>org.apache.maven.plugins< /groupId>
< artifactId>maven-failsafe-plugin< /artifactId>
< version>3.5.2< /version>
< configuration>
< argLine>${argLine} --enable-preview< /argLine>
< includes>
< include>**/*IT.java< /include>
< /includes>
< /configuration>
< /plugin>
Classical testing pyramid:
What is the nature of your software?
If you think in a Microservice architecture...
Spotify testing model for Microservices:
From:
To:
|
|
Thanks