Thursday, February 19, 2009

David Chappell

If you ever get a chance to hear David Chappell speak, Go!

David has the uncanny ability to dissect complex technologies to their core capabilities, compare and contrast them effectively, and inject humor and effective conclusions along the way.

He's strongest with Windows based technologies, however he's sufficiently curious to turn his eyes and analysis upon all comers.

One of the most informing, entertaining, and knowledgeable technology analysts I've come across.

The Importance of UI Design

After testing complex applications and their associated configuration/management UIs for some time now, I've come to appreciate the importance and payoff of good UI design.

A good UI must feature simple and intuitive presentation, ultimately meeting the user's skill level on demand. Since most users will deal with the UI on a routine basis, its appeal makes up a big portion of what the customer will find compelling about a product.

This means a little investment up-front will go a long way!

Some design effort should be attempted before any code is written. This yields the following benefits:
  • QA gains an opportunity to familiarize with the intended approach, can identify test tool candidates, prototype test cases, and provide early-on usability feedback.
  • Developers will communicate effectively among themselves, determining the necessary classes and how functionality can be included ahead.
  • Use Cases can be evaluated using the UI design. It's really useful to have use case tutorials made available to the product team up front, so all agree the necessary features are present and will work as intended.
'nuf said!

Shenick diversifEye - Testing with Stateful Network Flows

During my last job, I worked with a Shenick diversifEye unit. The Shenick is a neat tool for providing stateful flows, in contrast to stateless packet blasting equipment such as the Ixia and Spirent Smartbits (Note: See Comment #1 for information about Spirent's stateful testing capabilities).

The Shenick excels at providing a realistic test environment for triple-play (Data, VoIP, Video) service evaluations. It provides a virtual client/server network, which can be hooked up to the DUT for realistic protocol and application behavior testing. This really beats setting up a complex test bench of real or VM guest nodes to achieve the same environment.

For P2P testing, the Shenick includes two emulation modes:
  • Simple file transfer mode, where a pre-registered file is transferred between virtual peers
  • A more sophisticated capture/replay mode, where a previously recorded live P2P conversation is played back between virtual peers.

Note: The Shenick shouldn't be confused as a performance testing and scaling tool. While packet blasters such as the Ixia and Smartbits can be used to evaluate DUT performance under increasing traffic loads, the Shenick has no "gas pedal". That is, the traffic generated is a function of the number of virtual client/server conversations. Therefore, the Shenick functions best for evaluating DUT behavior in the midst of realistic protocol exchanges, rather than simply scaling the traffic load up and down.

Tuesday, February 17, 2009

Ruby fever

I've caught Ruby fever. This malady besets the jaded Perl programmer, who has grown comfortable with Perl scripting, but dislikes the forced indentation of Python, and wants something more general purpose than Javascript.

Ruby is really cool! It makes a fresh start with "Everything's an object", so there's no "Bolt on" or "Oh, yeah, we can do objects!" feel that's common with Perl or Python.

It makes programming easy and fun again, keeping desirable tasks simple and intuitive. For example, the notions of iterators, blocks, and collections make the language easy to embrace and compelling to code in immediately.

I also like the interactive Ruby shell (irb), the presence of a decent debugger, and the surprisingly extensive collection of class libraries.

Onward & Ruby-ho!