password
username
Sponsored by CakeMail, an email marketing software
Newsletter preview

Javalobby logo image
Tuesday, December 18, 2007 

Rapid Development Environment for Web 2.0

Build Web 2.0-enabled, composite applications with the declarative development of interfaces using standards like JavaServer Faces, JSR-168, WSRP 2.0, and a common metadata model with Oracle WebCenter.

Help yourself. Expert advice, free tutorials, sample code, and more.

 Perspective


Just Released!
SOA Security

Click to Save 30%
Enter code JLSOA30



Be sure and
check out a
No Fluff Just Stuff
Java conference
coming your way!

2/08-2/10 San Jose 2/29-3/02 Milwaukee
3/07-3/09 St. Louis
3/14-3/16 Minneapolis
3/28-3/30 Omaha
4/04-4/06 Boston
4/11-4/13 San Diego
4/11-4/13 Portland
4/18-4/20 Jersey City

 
 A Developer's Perspective
 Next section
Oscar Huseyin specialises in Java EE system consultation and development, primarily for the banking and finance sector. He's considered a tough leader in the Melbourne Java Community where he's been a practicing Software Engineer for the last 8 years. His interests are in OO Design, Patterns, Development Methodologies, Java Performance and Image Search.

Rick Ross, JavaLobby Founder Unit Testing: How far to push the envelope?
By Oscar Huseyin

Over the years, I've read lots of commentary, white papers, best practice papers, and books on the topic of TDD. I've heard the rants of many TDD evangelists who preach about how total code coverage brings you closer to code quality perfection and how you've failed when you've not been able to achieve these goals. Sure, this is an extreme example of evangelical preaching, where in actual fact most of these individuals commonly drum down their hard line views of testing by using words like "pragmatism" and statements like "do what works best". But, why do l feel as if I've failed if l have not got 100% code coverage? It's because l, to some degree, shared some of the religious views about testing.

I'm now at a point where I'm beginning to rethink some of my beliefs about testing after many years in the trenches. So, I'm at the crossroads settling on a methodology that, l feel, works the best. What level of unit testing is really required to meet the business needs?

I'll start by analyzing two "special interest" projects to see the outcomes they delivered based on the business expectations.

First, let me talk about a project that was one extreme; no mandated position on unit testing. The project was highly successful, where the business expectations were met and exceeded. Donning my evangelist hat, I'd say the project outcomes were a fluke and it was a miracle that we were able to make any changes to the application without having a negative impact on functionality. Looking back, the project was definitely not a fluke; we made lots of changes to the application without any regressive impact. We knew our issues and had the right processes in place to gate-check the application functionality pre-release. For example, a week before each release, every developer had an area of expertise in the application which they would spend approximately a week testing the functional area and making any spot fixes as need be. We were not very clever about our testing methodology, but we delivered on time, on budget and exceeded customer expectations.

Now, let me tell a story of another, very different project - one that's in stark contrasts to the first one. This application had literally 98% code coverage. Unit tests, integration tests, front-end screen tests, watertight code reviews, continuous integration, nightly deploys; every agile practice and quality assurance process under the sun. Did the code meet the business expectations? Well, yes; but it was expensive. It took twice as long to develop an application feature, and we mandated near perfect code coverage. Was this approach more successful than my first example? Not really. Sure, we had more confidence in making changes to the code base and having an "immediate view" of the regression impact of the change. But the business paid a price for all of that - a very heavy price. One would think, that given the money it cost for development to test the application the number of defects would be significantly reduced; but they weren't. We had lots of functional and non-functional defects detected by testing which were effectively misinterpretations of business requirements or some gap in the business logic.

Which one, from a business perspective, was more successful? Both. The corollary is that a heavily tested application cost lots of money and takes longer to build. l have seen this first hand. So, time to answer the titan question from my own experiences.

As a developer, you need to test the components that you write; there's no arguing that. Otherwise, how else can you prove the functionality of your components? But, just how far should we push the envelope?

My view is simple. We all need to be pragmatic about how we approach our unit testing. We should always stop and ask ourselves "are we going to far with our unit testing?" As a developer, we are faced with this question constantly. We should always do the most to prove our components are functionally correct, but also write the least amount of unit test code to ensure our testing solution remains simple yet effective. After all, a good developer is a lazy one.

Until next time,
Oscar Huseyin
http://www.odecee.com.au/blogs/

 

The Most Advanced Issue Tracker – Free Trial

JIRA is used by over 7,000 organizations as a bug tracking, issue tracking, and project management application. JIRA has been designed with a focus on task achievement, is instantly usable and is flexible to
work with.

30 days free trial (with liberal extension policy - just ask!).

 DZ Top Links
 
 DZone Top Links
 Next section
 Back to top
most clicked this week from dzone.com

dzone

Most-clicked links this week

 
 Popular at JL
 
 Popular at Javalobby
 Next section
 Back to top
A recap of some of the most popular and active Javalobby.org discussions this week.
Do You Want BGGA Closures? Read this.

Closures are powerful, no question about it. Especially so with Neal Gafter's BGGA proposal. Joshua Bloch, creator of the much praised Effective Java, picks them apart in these informative ppt sides.

Full Discussion Posted By: Mikael Grev - (148 Replies)

Named arguments for method calls

Picking the right arguments in the right order for a method call can be confusing, prone to mistakes, and sometimes cause ambiguity problems. Naming them in the call could improve this.

Full Discussion Posted By: Mike P - (66 Replies)

True problem with Applets

We hear many complaints about Applets, like the fact we must download Java. to me this is not a real issue at all. A real issue is the fact that with a browser we can't support many versions of Java.

Full Discussion Posted By: Serge Bureau - (34 Replies)

THIS Would Excite Me

What gets you excited? Yeah, you can get that all over the web just by Googling... But THIS would excite me, and it can only be delivered by the JDK.

Full Discussion Posted By: Mikael Grev - (34 Replies)

Has O'Reilly given up on Java?

Like many IT enthusiasts and/or professionals, I am a big fan of O'Reilly books. However, this publisher doesn't seem to be over-excited with Java.

Full Discussion Posted By: Hadrien Flipouk - (20 Replies)

 White Papers & Announcements
 
 Whitepapers
 Next section
 Back to top
Enterprise Ajax Security for Java EE

Can enterprise application developers deliver Rich Internet Applications using Ajax techniques, but do so in a secure and cost-effective manner? This paper examines some of the fundamental security issues related to client-centric Ajax techniques, and will show how these issues can be overcome using a server-centric approach based on Java EE and ICEfaces.

Download Full White Paper Posted by: Icesoft

 Product Announcements
 Next section
 Back to top
Product and service announcements for Java developers.
New Advanced Installer for Java 6.1 brings Windows Firewall support

On December 18th, 2007 Caphyon Ltd. announced the latest edition of its software installer authoring tool with built-in support for Java applications.

Full Announcement & Discussion Posted By: Catalin Rotaru - (0 Replies)

froglogic Releases Beta 3.3 Of Its Automated Java GUI Testing Tool Squish

froglogic GmbH today announced version 3.3 of the leading, cross-platform automated Java GUI testing tool Squish.

Full Announcement & Discussion Posted By: Reginald Stadlbauer - (0 Replies)

Syncro Soft Announces New Release of Oxygen XML Editor

Syncro Soft Announces New Release of Oxygen XML Editor, Schema Editor and XSLT/XQuery Debugger. Release date: December 18, 2007

Full Announcement & Discussion Posted By: SyncRo Soft - (-1 Replies)

P~ 0.9 : Java-friendly scripting with powerful regex

P~ is a new script engine, whose grammar is more Java-like than Groovy. It derives its usefulness from a radical approach to regular expressions, i.e. readable regexes, but more powerful than in Perl.

Full Announcement & Discussion Posted By: Andrew Nuss - (0 Replies)

Apache Ivy 2.0 beta 1

The Apache Ivy project, tool for managing (recording, tracking, resolving and reporting) project dependencies, is please to announce its 2.0.0 beta 1 release, a new step on the road toward 2.0 final.

Full Announcement & Discussion Posted By: Xavier Hanin - (0 Replies)

GlassWorks Install Creator 1.04

GlassWorks is an install creator tool that provides integration support for Windows, Macintosh OSX and Linux systems.

Full Announcement & Discussion Posted By: Hayden Legendre - (0 Replies)

Retriever Download Manager 1.08

Retriever is a powerful and easy to use download manager utility that supports HTTP, FTP, Metalink and BitTorrent.

Full Announcement & Discussion Posted By: Hayden Legendre - (0 Replies)

New site for supporting Groovy developers

My company has developed a new site for supporting Groovy developers. Groovy is a relatively new computer language. If you already program in Java, you will find it easy to learn.

Full Announcement & Discussion Posted By: Larry Melia - (0 Replies)

JIDE Desktop Application Framework (JDAF) 1.2 beta

We are pleased to announce the second major update to JDAF. With over 60 new features and improvements, an updated developer guide and greater stability, you'll find JDAF more powerful and easier.

Full Announcement & Discussion Posted By: jide software - (0 Replies)

Simple 1.6.2 - Java XML Serialization

Simple is an XML configuration and serialization framework for Java. Its goal is to facilitate rapid development of high performance XML configuration and communication systems.

Full Announcement & Discussion Posted By: Jim Watson - (2 Replies)

JAME 6.0 RC3

JAME 6.0 RC3 has been released! JAME is a Java real-time multi-thread fractal platform which supports images and animations.

Full Announcement & Discussion Posted By: Andrea Medeghini - (0 Replies)

XSLT-Debugger plugin 1.1 for IntelliJ IDEA

The XSLT-Debugger plugin allows to debug XSLT stylesheets in IntelliJ IDEA with various useful features a debugger should have, including breakpoints, watch expressions, variables display, etc.

Full Announcement & Discussion Posted By: Sascha Weinreuter - (0 Replies)

soapUI 2.0 Final

soapUI 2.0 final has been released with a large number of new features, including WS-Security, SOAP-Monitoring, etc. Huge Thanks to everyone for helping out with testing and reporting! /eviware.com

Full Announcement & Discussion Posted By: Ole Matzura - (0 Replies)

SCJP 6 (CX-310-065) Exam Released - US $200

SCJP 6, designated CX-310-065 by Sun, was released in December 2007. This exam is the entry level Java exam and is a prerequisite to a number of the other Java-related certifications.

Full Announcement & Discussion Posted By: Abhay Bakshi - (2 Replies)

LanguageWare Miner for Socio-Semantic Networks

Enhance your user experience with multidimensional networks such as people, documents, tasks, activities, and more.

Full Announcement & Discussion Posted By: Ida Momtaheni - (0 Replies)

DbWrench Database Design v1.4.5

DbWrench Database Design v1.4.5 has now been released and is available for free download. DbWrench is a multi vendor, cross platform database design and synchronization software.

Full Announcement & Discussion Posted By: Harnek R - (0 Replies)

QuipuKit 1.3.2 Released

QuipuKit 1.3.2, a component library for JSF, has been released today. This release comes with hot fixes to version 1.3.

Full Announcement & Discussion Posted By: Tatyana Matveyeva - (0 Replies)

Structure101 V3.1 Introduces Software Architecture Sandboxing

The new Structure101 v3.1 makes it much easier to discover the current structure and move classes or packages around to define a preferred architecture.

Full Announcement & Discussion Posted By: Paul Hickey - (0 Replies)

Participate in the Visual Rules 4 Beta Program (Business Rules Management)

Visual Rules 4 represents the new generation of Business Rules Management. In spring 2008 Visual Rules' vendor Innovations will introduce Version 4 to the market. It is available now for beta testing.

Full Announcement & Discussion Posted By: Stefanie Peitzker - (0 Replies)

Eastwood Chart Servlet 1.0.0

The Eastwood Chart Servlet is an independent, open source implementation of the recently-released Google Chart API.

Full Announcement & Discussion Posted By: David Gilbert - (1 Replies)

 Your Account
 
 Your Account
 Next section
 Back to top
Manage your account info for this and other Javalobby publications.
Manage your Javalobby membership details

Click on the following links to:


 Contact Info
 Next section
 Back to top
Here's how to reach us, we love to hear from you.
Email us
Send news items to editor@javalobby.org
Send questions, complaints, or suggestions to feedback@javalobby.org
Send advertising inquiries to advertise@javalobby.org
 
Call us
Our number is (919) 678-0300. We'd love to hear from you!

 Legal
 Back to top
The fine print we'd rather avoid completely.
Feel free to redistribute this newsletter in part or in full to your friends.

Javalobby News is a service mark of DZone, Inc.
Copyright ©2001-2007 DZone, Inc.

Thank you for your continued support of Javalobby. If you prefer not to receive the Javalobby weekly newsletter, send an e-mail to ***-jlnews@javalobby.org and please ensure the actual email address to be removed is present.
Javalobby.org, 113 Legault Drive, Cary NC 27513 USA