Challenges | Test Types | Test Suite | Embracing TDD | |
Select a content section anchor button and then use the Browser’s back button to return to selections |
Code Solution Challenges
One of the biggest challenges that the Modern Developer faces is creating code solutions that not only function correctly in a perfect Production scenario but in an imperfect one as well.
An understanding that code must be written to handle conditions that may arise in a Production environment such as missing or malfunctioning Dependencies along with bad or corrupt return State Data is the responsibility of the Modern Developer.
Realizing that Return Object Validation and Exception Handling methodologies are flawed after code is deployed is extremely costly to the Client.
These costs are not just monetary
… They have reputation and credibility costs
The disciplined Modern Developer relies on their commitment to well-formed Unit and Integration Tests that not only test the GOOD (Happy Tests) results but the FAILING (Sad Tests) ones too.
Types of Tests
There are two types of Single Unit of Work tests that need to be addressed within the test structure of any behavior Method:
-
The “Happy Path” Test – The test that will validate a correctly working Assembly Under Test Method result
-
The “Sad Path” Test – These tests are created to test that Conditional and Exception Handling code is working as designed. There can be a number of these tests depending of the Dependency requirements and return result possibilities
The Full Development Process of the Modern Developer uses three proven testing methodologies to ensure that the code that is created complies with the intent of the Business Stakeholders.
These test methodologies validates the current functionality of the code base from the highest level of abstractions.
The Test Suite
The Test Suite is an automated Integration and Unit Tests collection.
The First Two Processes, ATDD and BDD, represent Vertical Process
The Vertical Processes validates the Acceptance Criteria from the Business User Stories.
The third process, the Horizontal Testing Suite, creates the Acceptance Criteria Abstractions and subsequent concrete implementations.
The Three Proven Test Methodologies used by The Modern Developer:
-
Acceptance Test Driven Development (ATDD) – Mapping the Acceptance Criteria of a Business Case User Story to Real Code Scenarios that can be viewed by all interested parties
-
Behavior Driven Development (BDD) – A Testing platform that created Integration Tests using the Gherkin Language to test the Highest Level of Code base Abstractions using the GIVEN / WHEN / THEN (GWT) test pattern
-
Test Driven Development (TDD) – A testing methodology that structure all Integration and Unit Test naming convention into the Gherkin Language for the tests within a structured design pattern of Arrange / Act / Assert (AAA)
The Entire Code Base can be Validate
… Today, Tomorrow, Next Week, Next Month or Next Year
…… with a Single Click of the Mouse on the Test Suite
This Test Suite can also be integrated into a Continuous Build “Smoke Test” infrastructure to be an Automated Testing Suite.
Embracing Test Driven Development
A Test Suite of Unit and Integration Tests at the Lowest Level of the Coding Process delivers Highest Quality of Software to the Client.
The deliverables will have a lower Total Cost of Ownership (TCO) and be scalable with lower costs for future feature and functionality change requests.
TDD and its ATDD and BDD Siblings
… Will Reduce Time to Markets and Costs
…… Over the Software Development Life Cycle
The following two tabs change content below.
I am a Principal Architect at Liquid Hub in the Philadelphia area specializing in Agile Practices as a Certified Scrum Master (CSM). I use Test Driven Development (TDD) and Acceptance Test Driven Development (ATDD) with Behavior Driven Development (BDD) as my bridge to Agile User Stories Acceptance Criteria in a Domain Driven Design (DDD) implementing true RESTful services
Latest posts by Brad Huett (see all)
- DevOps: A Bridge to Your DevOps Culture - March 25, 2016
- Embracing Test Driven Development (TDD) - March 25, 2016
- DevOps: Delivering Agile Projects - March 25, 2016