Ditching of a B-24 Airplane into the James River

I appreciate their courage to prove the facts.

I liked following comments:
Ron Lutman
The aircraft would have sank, but the engineers stuffed ping pong balls into the wings to keep it afloat. Merrill and Richman, in their 1936 transatlantic crossing flying a modified Vultee V1A, Richman loaded the wings and fuselage with 41,000 ping pong balls encase they had to ditch. Now known as the PING PONG FLIGHT.

Appreciating their planning and execution.
See the test site selection…

Costly Mistakes by IT Team

Yesterday while reading Technology News…Come across this article

“A secret payment made to Royal Bank of Scotland (RBS) by software supplier CA Technologies has fuelled controversy over the investigation into the IT failure that hit RBS customers in June 2012 and highlights a lack of transparency in an industry critical to the UK economy.”
More at http://www.computerweekly.com/news/2240235306/Should-RBS-and-CA-Technologies-reveal-details-of-secret-payment

2012 RBS Group computer system problems

Impact on Customers


My Analysis
1. Tough to do extensive testing from developer prospective based on given time lines. If it is mission critical systems, please see point 2.
2. QA should do parallel production for 6 months similar to other Financial Institutions.
i.e Production data is piped to existing and staging, monitor staging for issues before rolling out to production.
3. Failed Disaster Recovery process
4. Failed to speed up recovery process
5. Damage control is not effective
6. Need to take care of hackers, who is trying to cheat customers
7. Should pay penalty to customers for their sufferings. Next time update agreements accordingly and educate customers on the risk of using computers. (This is too much, but tough to pay to all at the same time.)
8. Media management / public relations is not well managed.
9. This issue is specific to environment and other software customers are not involved.

What are the best practices for Java development team?

At individual level
In Eclipse IDE use following files and share with team to maintain consistency.


TestNG Test Cases
Emma plug in to check code coverage
Tie the memory and performance numbers to test cases

At team level
What happens in Hudson?
Configure following in Hudson, so that it is easy to check after each build.

Code Coverage Report
Open Tasks Report
PMD Report
Surefire Test Report

At organizational level
How to compare different projects / modules in organization?
Use SONAR and use maven plug in to push the data to Sonar server.

Code Coverage
Lines of Code
Test Success


Code coverage – pitfalls

Problem Statement: Code coverage 100%. There are x number of bugs. What happened?

Code coverage 100% doesn’t mean that test coverage 100%.
Sample code

public int add(int a, int b)
   return a+b;

we can have simple unit test case and it can show 100% code coverage.
But it is not talking about business.
i.e It should support float, double and other data types.
Boundary checks..etc

We need to make sure that we have all unit test cases according to business requirements.
Code coverage 100%, doesn’t mean that code is bug free.

Code Coverage

When writing unit test cases with TestNG the following questions will come.

1. Duplicating test cases

Manually we need to verify or we can use other metrics tools to see method usage to find what methods are used highly.

2. How many unit test cases are sufficient to cover all the code?

Use http://www.eclemma.org/ to see the code in color. Very nice tool

3. How to assure number of test cases?

We need t make sure that we are covering all types of error codes as part of testing.

Finally group them and run to see the overall performance and code coverage.


Group test cases in TestNG and run Emma coverage for given group. After that merge the sessions to get total code coverage by all the test cases.

http://www.eclemma.org/userdoc/coverageview.html Check Merge Sessions


After some time started getting following error.

java.lang.ClassNotFoundException: com.vladium.emma.rt.RT

Copy emma.jar from eclipse to project lib folder and add to classpath. Issue resolved.