Graphical user interface (GUI) testing is a potentially problematic area
because constructing effective test cases is more difficult than the
corresponding application logic. The roadblocks to effective functional GUI
Traditional test coverage criteria like "80% coverage of the lines of code"
may not be sufficient to trap all the user interaction scenarios. End users
often use a different user task interaction model than the one conceived by
the development team.
Functional GUI testing needs to deal with GUI events as well as the effects
of the underlying application logic that results in changes to the data and
The common methods for functional GUI testing are the "record and execute"
script technique and writing test programs for different scenarios. In the
"record and execute," the test designer interacts with the GUI and all the
We can visualize resource starvation using an elaborate rendition of the
Dining Philosophers Problem. This classic metaphor of resource allocation
among processes was first introduced in 1971 by Edsger Dijkstra in his paper
"Hierarchical Ordering of Sequential Processes." It's been a model and
universal method for verifying theories on resource allocation ever since.
The metaphor goes like this: There are three well-known philosophers in an
Asian bistro. Dinner is served but they are only given three chopsticks
because the restaurant's supply truck has been stuck in a snow storm for a
couple of days. Naturally each philosopher needs two chopsticks to eat his
dinner and each is protected from interference while he uses a chopstick.
Plato skipped lunch that day and insists that he should have priority or else
he'll faint. If he doesn't give up his chopsticks, the other ... (more)
JavaBlackBelt just announced its “Coached e‐Learning” for Java
In a developer survey to be released next week, this Coached e‐Learning was
selected as the #1 choice for Java learning compared with classroom training
and self‐paced e‐Learning.
Here’s how it works:
1. In these courses, the coach meets with the student to begin each course,
reviews the course plan and materials, and agrees to a schedule.
2. The student then learns at their own pace from the JavaBlackBelt eLearning
platform ‐‐ online materials and videos, community forums, exercises, and
3. Along the way, the coach checks intermediate goals, answers questions,
helps overcome obstacles, and oversees progress.
4. The course is completed when the student passes the final exam, which,
depending on the student’s schedule and pace of learning, follows one to
two weeks of coursework.
The ... (more)
This article tries to demonstrate that Java can be more productive than Ruby.
We are going to develop the same application of the article Rolling with Ruby
on Rails Revisited (part 1  and part 2 ) but using POJO s annotated
with JPA  and a Model Driven Framework, OpenXava  in this case. The
result is that with less code, and less time you obtain a more powerful
Ruby and rails: The regressive framework
Ruby on rails  is so elegant, so easy, so productive. I cannot avoid read
and heard continuously these comments. For example, the article Rolling with
Ruby on Rails Revisited of Bill Walton says:
“What would you think if I told you that you can develop a web application
at least ten times faster with Rails than you can with a typical Java
Oops! Ten times faster!
Well, after these comments I decided to learn Ruby on Rails. I ne... (more)
Java Developer's Journal
A cool article at http://www.roseindia.net/javatutorials/insane_strings.shtml
You never know what can happen with Java code .
There are many different types of command line options that programs need to
recognize. Many languages (e.g.: bash and perl) has built-in processing of
command line options; Java does not. The Java Command Line Options (JCLO)
package performs this task for a variety of option styles. It also uses
Java's reflection capability to automatically assign values to variables in a
Even in these days of sophisticated graphical user interfaces, many programs
have a wide variety of command line options that help specify their behavior.
It is also the case that command line only programs continue to enjoy wide
use. It is also the case the command line arguments can become quite
complicated, e.g.: -Djava.util.logging.config.file=All.finest -1 --list
--this=that Some languages have built-in parsers for command line options;
perl and bash ar... (more)
I've read an interesting article by Felipe Gaucho called "Good Java
Developers Deserve Better Salaries," where he states that employers have to
increase salaries for Java developers.
Unfortunately, in the market economies such demands won't work.
In enterprise IT no one just raises salary if there is a way to hire someone
else for less money.
It's just not in the corporate culture where people are treated as nameless
resources. Have you ever wondered why policemen get lower salaries than Java
developers even though people in the uniform risk their lives on daily
basis? It's because there are many people who apply for jobs in the police.
Preparing a mediocre policemen takes about the same time as preparing a
mediocre Java programmer. The same holds true for good policemen and Java
developers. Market rules. If no one will want to go to police, their
salaries and per... (more)
Traditional testing methods are long, drawn out and tedious. Moreoften than
not organizations spend millions of dollars testing their scripts using a
technique that can be slow, costly and sometimes incorrect. ETM is my attempt
to address this lag, a bottleneck in your IT assembly line, that can bring
your whole project to a grinding halt. Traditional, testing approaches
require four major entities to work with each other. These are:
The Tester The Developer The Business Owner The Business User
The Developer develops the software based on some requirements from the
Business Owner. Once the software has been developed, the developer does some
Unit Testing. Satisfied with the results of his Unit Testing, the developer
pushes the application to the next stage, where it will go through a series
of tests to ensure its quality and compliance. Enter the Tester, the
JadeLiquid is pleased to announce the long-awaited release of the WebRenderer
Swing Edition 6.0 supporting 64-bit systems. WebRenderer 6.0 includes support
for both 32 and 64-bit systems on Windows, OS X and Linux. SPARC Solaris is
also a supported platform. The WebRenderer Swing Edition 6.0 release is the
most advanced version of WebRenderer ever released.
WebRenderer Swing Edition renders in lightweight Swing and is the only
commercial strength Java browser SDK with this capability. New features found
in the WebRenderer 6.0 include an updated Firefox engine, HTML5, SVG, Canvas,
MathML and vastly improved font rendering. WebRenderer Swing Edition 6.0 also
rendering speed. The standard full-featured WebRenderer API is implemented
and the W3C DOM and plugins such as Flash and PDFs are supported.... (more)
A couple of patterns that could cause Java heap exhaustion were identified
from years of research at IBM. One interesting scenario was observed when
Java applications generated an excessive amount of finalizable objects whose
classes had non-trivial Java finalizers.
What Is a Java Finalizer?
A Java finalizer performs finalization tasks for an object. It's the opposite
of a Java constructor, which creates and initializes an instance of a Java
class. A Java finalizer can be used to perform postmortem cleanup tasks on an
instance of a class or to release system resources such as file descriptors
or network socket connections when an object is no longer needed and those
resources have to be released for other objects. You don't need any argument
or any return value for a finalizer. Unfortunately the current Java language
specification does not define any finalizers for a... (more)
During the last week I had to interview five developers for a position that
required the following skills: Flex, Java, Spring, and Hibernate. Most of
these guys had demonstrated the 3 out of 10 level of Flex skills even though
each of them claimed a practical experience on at least two projects. But
this didn’t surprise me – Flex is still pretty new and there is only a
small number of developers on the market who can really get Flex things done.
What surprised me the most is a low level of Java skills of most of these
people. They have 5-8 years of Java EE projects behind their belts, but they
were not Java developers. They were species that I can call
Robot-Configurator. Each of them knew how to configure XML files for
Spring, they knew how to hook up Spring and Hibernate and how to map a Java
class to a database entity. Some of them even knew how to configure laz... (more)