testdriven.com Wrangling quality out of chaos

Archive for June, 2007

Shunra VE Desktop 3.0

06.20.2007 · Posted in Advisories

Shunra VE Desktop 3.0 Delivers the First Integrated Network Simulation Testing Solution for Today’s Enterprise. New Version Enables Development and QA Teams to Test the Network Impact on Application Performance Before Application Deployment.

Shunra, the world’s leading provider of network simulation solutions, today announced version 3.0 of its Shunra VE Desktop client/server network simulation software. Designed primarily for developers, Shunra VE Desktop simulates a Wide Area Network (WAN) link, enabling users to test applications or code under a variety of current and potential network conditions – directly from their desktops or laptops – early in the development process. The new version includes a silent installation process, enabling quick and automatic enterprise-wide deployments of Shunra VE Desktop via any software distribution system. In addition, Shunra VE Desktop now supports the Microsoft Windows Vista™ operating system. Shunra VE Desktop is now offered in two versions: “Standard” for individual users and “Professional” for multi-user enterprise development teams. A free trial of the Shunra VE Desktop “Standard” is available at: http://www.shunra.com/network_simulation_trial_download

Vidcast: Improving Code Quality with Eclipse and its Plugins

06.12.2007 · Posted in Tools

Levent Gurses discusses his presentation at the Better Software Conference next week in Vegas. His talk covers Eclipse and how a carefully selected set of plugins (JDepend4Eclipse, Checkstyle, Coverlipse, PMD, and Metrics) can help you create better quality code.

More information here.

ArtOfTest, Inc. : WebAii Beta2 Now Available!

06.06.2007 · Posted in News

WebAii Beta2 is now available from ArtOfTest, Inc. at www.artoftest.com. Beta2 adds over 20 new features. Some of the most exciting features:

1. JavaScript unit testing and invoking script functions directly from your .NET test code.
2. Richer element identification methods. Use regexs to find elements, serialize your elements find params as xml and managed them as external files away from your test logic.
3. First class ASP.NET Support. Use AspNet Development Server (Cassini) to execute tests in addition to an Asp.Net TestRegion custom control to help you build testability into your markup applications at design time.
4. For your continuous integration testing use our AspNet In-Process host support to execute tests without a need for a browser or a webserver. All running and processing pages in process.
5. Web Unit Extension: Specialized test fixtures for you unit testing your web applications.
6. Over 50 Nunit and Visual Studio Team Test Samples to help get you started quick and easy.

More details go to www.artoftest.com

WebAii is a FREE .NET Automation infrastructure built from the group up to support Web/Ajax testing that integrates directly with Visual Studio Team Test or NUnit.

JsTester 1.4 Released

06.06.2007 · Posted in Java

Dear TestDriven Community,
I’m pleased to announce that JsTester version 1.4 has been released.

Download | Documentation | Faq | Changes

JsTester allows validation of javaScript code inside java. It provides a group of assert methods like JUnit’s Assert, it also supports the validations described in http://javascript.crockford.com/remedial.html, and the ability to use your own validations (unary & binary predicates).

Changes:
+ Added support for JDK6 javax.script
+ Made JsTestCase and GroovyTestCase abstract

Unit Testing of J2ME Applications or Using Inheritance in Tests Development

06.06.2007 · Posted in Articles

This article is sharing of my impressions and thoughts about unit testing of J2ME applications and partly an introduction of MoMEUnit – an instance of the xUnit architecture for unit testing of J2ME applications.It is not a secret that using of JUnit test framework for testing J2ME applications is problematic. The main problem is that J2ME is almost JDK 1.0. It doesn’t include reflection API and, of course, it doesn’t support annotations. In this case it is impossible to designate method that implements test via method signature or annotation. In other words, it is impossible to maintain implicit association between the test method and name of test case.

In my humble option, if it is not possible, we shouldn’t do this. To my mind, the solution is not to use “test<TestName>” method name signature to implement tests, and designate only one method:

public void test() throws Throwable

as method for test implementation. In this approach we will not implement tests per method and will not maintain implicit association between the test method name and name of test case, that (recall) is not possible. Instead we will create test per class. in J2ME it is possible to keep implicit association between class name and test case name. Another problem that arises is a sharing of fixture between group of tests. Here is a place where Inheritance can help.

In MoMEUnit we implement different tests by different subclasses of TestCase. Sharing of the same fixture between different tests is realized via inheritance (as mentioned above). The one approach to do this is to create one subclass of TestCase by defining instance variables to store the state of the fixture, overriding setUp() and/or tearDown() methods to initialize fixture and to release resources after test run, implementing test() method. Other tests will extend this test sharing the same fixture. Instance variables, of course, should be declared as at least “protected” to be accessible by subclasses. Another more general approach is to create abstract TestCase subclass by defining instance variables and overriding setUp() and/or tearDown() methods. All test cases will extend this abstract class sharing the same fixture. The second approach is of course more structural but, to my mind, this is a bit a waste of time and memory).

For example instead of classical JUnit TestCase subclass

// sorry for stupid examples.
import junit.framework.TestCase;

public class ArithmeticTest extends TestCase
{

private int arg1;

private int arg2;

public ArithmeticTest( String name)
{
super(name);
}

protected void setUp()
{
this.arg1 = 2;
this.arg2 = 5;
}

public void testAdd()
{
int res = arg1 + arg2;
assertEquals("I don’t know what happened", 7, res);
}

public void testSubtract()
{
int res = arg2 – arg1;
assertEquals("And what again ?", 3, res);
}
}

In MoMEUnit we will have :

//"AddTest.java" file

import momeunit.framework.TestCase;

// Usage of Test suffix of class name is not required. You can use any name.
// This is only for illustration purposes.

public class AddTest extends TestCase
{
protected int arg1; // at least protected to be accessible by subclasses

protected int arg2; // at least protected to be accessible by subclasses

protected void setUp()
{
this.arg1 = 2;
this.arg2 = 5;
}

public void test()
{
int res = arg1 + arg2;
assertEquals("I don’t know what happened", 7, res);
}
}

// "SubtractTest.java" file

// No imports because SubtractTest and AddTest are in the same package

// Usage of Test suffix of class name is not required. You can use any name.
// This is only for illustration purposes.
public class SubtractTest extends AddTest
{
public void test()
{
int res = arg2 – arg1;
assertEquals("And what again ?", 5, res);
}
}

Using inheritance gives the other nice feature. We can define one fixture for a one group of test cases and add additional fixture or change existing one for another group. That can be helpful in some cases. For example

public class AdditionalFetureTest extends OtherTest
{

protected AnObject arg3 = null;

protected void setUp()
{
super.setUp()
this.arg3 = new AnObject( … )
}

public void test()
{
assertTrue("Why additional feature doesn’t work ?",
target.additionalFeature( arg3, … ));
}
}

Maybe it looks like implementing different tests as different classes is cumbersome. To my mind, it is not true. By using IDEs like Eclipse or NetBeans it is almost as simple and easy as creating additional method. Besides, writing class like this

public class MultiplyTest extends AddTest
{
public void test()
{

}
}

even by hand is not complex.

Of course implementing different tests as different classes increases a size of J2ME application. But we are just testing. This is not a production J2ME application. Besides, as mentioned above in J2ME it is possible to keep implicit association between test case name and class name but not method name. This enforces to create anonymous classes or use other means that also increases application size. In my humble option test per class in J2ME is an optimal solution.

MoMEUnit has, of course, other changes to JUnit framework, that overcome other restrictions of J2ME platform and minimize memory usage.
MoMEUnit is ,of course, free software. It is available under Common Public License.

MoMEUnit – a new test framework for unit testing of j2me application released

06.06.2007 · Posted in News

A new instance of the xUnit architecture for unit testing of J2ME applications – MoMEUnit was released. It is derived from well known JUnit framework of course. It is CLDC 1.1 complied. This framework overcomes lack of reflection API in J2ME MIDP API and supports such main features of JUnit framework as base of development and run of tests, sharing the same fixture among different tests, running test in its own fresh fixture, modification of fixture for a group of tests, possibility of simultaneous tests runs, independence of tests runners (different tests runners can be used with framework package) and much more.

This framework provides as an extension a MIDletTestRunner – a fully configurable MIDlet. It is intended to run tests in emulator or mobile device. It shows the results of tests run (progress bar, statistics, lists of failures or errors with detailed messages for each test) in one screen. The tests can be run automatically during start-up and re executed more times later. It can print descriptive messages of failures and errors thrown together with stack-trace to the standard error output

WAPT 5.0: Learn how your website performs under various load conditions

06.06.2007 · Posted in News

May 15, 2007SoftLogica announces WAPT 5.0, the new version of its load, stress and performance testing tool for web sites, web servers and applications with web interfaces. In contrast to "800-pound gorilla" load testing tools, WAPT is designed to minimize the learning curve and give the user an ability to create a heavy load from a single regular workstation. You can create a basic test scenario and get meaningful information about your performance landscape in a matter of minutes. WAPT is able to generate up to 3000 simultaneously acting virtual users for an "average" test scenario using standard hardware configuration (Pentium 4 2GHz, 1GB RAM, Gigabit Ethernet).

WAPT creates a test workload which is virtually the same as the load experienced by a web site in the real world. Virtual users in each profile are fully customizable. They can have individual IP address (IP spoofing), user name and password, and persistent cookies, to name a few. Basic and Integrated Windows (NTLM) authentication methods are supported.

Graphs and reports are shown in real-time at different levels of detail, thus helping to manage the testing process. You don’t need to wait for the completion of the test to get results, so if you have already identified a problem, you can stop the test, fix the problem and start the test again to check for performance changes.

The command line interface allows you to integrate WAPT into the existing development environment. Standard XML files are used to store test scenarios and can be modified by third party software.

What’s New in version 5.0:

Tree-type Log Viewer: Comprehensive log viewer provides detailed representation of all requests, responses and errors that occur during the test run. This information is structured with the help of a tree view with several levels of details: profile, user, session and iteration. Using the tree view you can find any information easily without need to search through megabytes of log files. You can navigate to any particular request or browse errors one by one.

Automatic Parameterization of Requests: WAPT can be configured to automatically find dynamic values in responses during recording. It creates corresponding variables and uses them when recording subsequent requests. This feature significantly simplifies the design of tests for pages with dynamic content.

The detailed list of all 11 new features: http://www.loadtestingtool.com/version50.shtml

Pricing and Availability:

WAPT is designed for Microsoft Windows 98/ME/NT/2000/XP/2003.
The 30-day trial version with full set of features limited to 20 concurrent virtual users can be downloaded at http://www.loadtestingtool.com/wapt.exe.
The program is priced at $350 (USD) per license. Volume discounts are available. Free technical support is provided by e-mail (support@loadtestingtool.com) and by phone (+7.383.3356692).

Agile Developer Studio

06.06.2007 · Posted in Links

The Pragmatic Studio is excited to announce the Agile Developer Studio, designed exclusively to help you and your teams succeed through agility.

In this three day workshop, you’ll learn what being agile is all about, by actually doing it! You’ll also learn how to transition your project or organization from conventional approaches to agile development practices that save time and money.

You’ll be expertly coached by Andy Hunt (of The Pragmatic Programmers) and Venkat Subramaniam, co-authors of "Practices of an Agile Developer". Drawing from their vast project experience, they’ll help you become a better, more agile, developer.
link

Tags: