As an Architect, I need to provide software project estimates from time to time. There are many project estimation methodologies. The one that I use the most is task breakdown method. I normally start with creating a list of tasks, then I assign man hours to each task to indicate the effort of the task. It is a pretty straightforward method based on expert judgement on each task to come up with an overall effort estimate. The question that I was asked the most about my estimates was the required man hours of unit testing. This blog is an attempt to provide an answer to that question based on my junit test case coding experiences.
This could be valuable for those who needs to plan, budget, or estimate a development effort that involves unit testing. Before I dive into the details, I need to explain the kind of unit testing and the type of applications that are covered in this discussion. Instead of a long and dry article, I am going to write a series of blogs to provide the answer. In short, this blog is an attempt to provide an answer to the required man hours of unit testing of Java EE applications. Here are the topics that I will cover to get to the final answer.
1. What is unit testing?
- Unit testing Definition
- TDD
- Repeatable unit testing
- Self-sustainable unit testing
- Continuous Integration
- Benefits of unit testing
2. How to unit test Java EE application?
- Java EE application layers
- Persistence layer
- Business layer
- UI layer
- Challenges of Java EE unit testing
- Data Dependency
- Component Dependency
3. Case Study
- Example source code
- Example jUnit test code
- The Math
- The effort Estimation
4. Who are doing unit test?
