J9 Acquired by Axxiome

J9 is now a part of a global company. Read the official press release below:

Axxiome Acquires J9 Technologies; Transaction Strengthens Axxiome’s US Presence, Expands Services to Include IT Operations Management Products and Services

January 20th, 2015 New York, NY: Axxiome Group has completed the acquisition of J9 Technologies, Inc. to extend its reach and product portfolio in the North American market.

Axxiome is a global products, services and advisory firm focused on helping customers making key decisions about their business-critical applications, while J9 has products and services that guide customers through tuning and managing applications for IT operations. Axxiome and J9 together will provide a full service value chain including plan – build – test and run stages for strategic applications and systems. [Read more...]

Demo J9 Accelerators Live at HP Discover 2014!

View an exclusive live demo of J9′s innovative BSM Accelerators. Discover how you can monitor all of your enterprise’s business applications more effectively. Meet our principals and executive team. Enjoy complimentary drinks, snacks & great conversation!

The Venetian Hotel
Tuesday, June 10: 12:00 pm - 7:00 pm
Wednesday, June 11: 12:00 pm - 7:00 pm
Thursday, June 12: 11:00 am - 2:00 pm

All are welcome to come & enjoy cocktails and snacks. Please let security know you’re with J9. Private demos are by appointment only.

For your demo, please email us at [email protected] and provide your name, title, company, address and phone number.

J9 CloudRunner

HP and J9 are revolutionizing the business of testing application performance. With J9 CloudRunner you can access the power of HP LoadRunner software!  www.j9cloudrunner.com

  • Buy only the time you need on a per-day basis: Access the on-demand service to “stress test” your applications affordably in a real-world environment with up to 250 concurrent users for $999 per day.  This promotional price is for a limited time only!
  • Get help building test scripts: J9 ScriptWriter is a service offered by J9 to write these scripts for you. Find out more about this service by contacting J9 here: Contact Us »
  • Let J9 provide complete testing services: Available now!  Validate your software without the need for in-house expertise.  J9 will create the necessary scripts, perform your J9 CloudRunner test and analyze the results. Find out more about this service by contacting J9 here: Contact Us » 

With J9 CloudRunner say goodbye to expensive software and long-term contracts!

Take application testing to the cloud with J9 CloudRunner, and say goodbye to expensive software and long-term contracts. www.j9cloudrunner.com

Buy only the time you need on a per-day basis:

J9 CloudRunner let’s you stress test applications affordably in a real-world environment with up to 250 concurrent users

J9 ScriptWriter can build your test Scripts so you can test your application over the Web

J9 Remote Service will build scripts, test your application and analyze the results without the need for in-house expertise


Smart Identification

There seems to be a bit of controversy regarding QTP’s Smart Identification feature. A cursory Google search tells me that some people consider it utterly useless, while others see it as a useful, indispensable part of their arsenal when creating tests. So I suppose the question is, is it useful, or a waste of time?

First, Smart Identification (SI) is an algorithm within QuickTest that kicks in when, within the code and repository, two elements look the same to QTP. SI then takes a peek at the the object in question, in an attempt to sniff out a property to distinguish an element from its look-alike cousin. If it finds such a property, it will let QTP know what it should be doing with that element. In a nutshell, it’s doing what the tester should have done in the first place: Looking for a good, unique property of an element, so that QTP is able to take a look at the script and immediately know which object on the page it’s supposed to be carrying out the task at hand on.

So getting back to the question at hand, the answer is ‘Yes’, because it can be useful, particularly to someone not particularly familiar with the ins and outs of QTP, ie. a novice, who may not know to how or when to employ the use of descriptive properties. It can also help out as a helpful reminder in case of an oversight. 

And the answer is ‘No’, because the experienced tester should have a feel for when and where to properly describe all the elements used in their test. It’s also a bad idea in case a tester does not know how to read the results correctly, and assumes because their script is ‘working’, they did everything correctly. 

In the end, the usefulness of Smart Identification probably depends on the experience level of the tester more than anything, rather than being a black and white issue.

J9 Test Asset Developer

Perfect Chunk of Code; Broken Process

While working on my current project I have been writing programs that test the functionality of our clients upgrades they are making on their main client database. Now, keep in mind that when companies re-write their applications and databases…they have two environments. They have their LIVE and they have their TEST. I use the TEST environment very frequently but, when I write a program that does not save information I test it in both. This week I ran into an issue, one that completely blew me away. It seems that its always the little things that aggravate you the most.

Once I was done writing my code I tested my program in our clients test environment which is accessed through Internet Explorer. Worked like a charm, on the first try even! In the programming world, that does not happen very often. Anxiously, I switched over to their live environment which is also accessed in Internet Explorer. I was not so lucky this time around. This code just worked, flawlessly, but now something is broken. By broken I mean every text field, check box, and button I was verifying would not be recognized by QTP.

I quickly go back to the test environment and run it again. Unbelievably, it fails in this environment as well. Right away I knew that it had something to do with switching the applications. The issue that perplexes me the most is that when I switch between test and live environments, all I change is ONE letter in my URL.

With this in mind, when using QuickTest Professional and you are switching between environments that use the same interface (like Internet Explorer), always make sure to close IE completely and do not simply just change the URLs. It will save you time, energy, and your sanity.

J9 Test Asset Developer

Oracle Sub-Tabs

On my current project, I have been updating business components that were recorded against an Oracle platform with a JAVA presentation layer.  Initially, due to some object recognition issues with the Oracle add-in we were forced to use just the JAVA add-in by itself.

Since these component recordings the client has implemented a patch to their Oracle instance, that has “corrected” a lot of the object recognition issues that we were having. Now we are able to use the Oracle add-in thus enhancing QuickTest’s functionality against the Oracle forms.

We originally encountered many aggravating  issues with using the JAVA add-in only, for example all edit field entries were being recorded with the same object name, and all were using the SetSecure method opposed to the Set method used to enter data.

Once the Oracle patch was implemented, one problem I encountered was that I was unable to record an action that required clicking on a sub-tab called “Collections.”   This tab was to be activated in order to interact with the fields it contained. Normally QuickTest has no issues at all with selecting items within a tab strip (in other environments), but on the Oracle environment it simply would not register. I “spied” on the object and found no identifying characteristics except for the name.  With such a powerful identifying trait why would QTP not recognize this action when recording?  My first inclination was to do Low Level Recording.  However, this is only used as a last resort so I decided to try adding the tab to the repository and added …OracleTabbedRegion(“Collections”).Select to my code.

Ultimately, this was the correct fix.  It is important to remember or search through the vast amounts of objects and methods when working with advanced scripting.  A little extra effort can truly enhance the quality of your work.

J9 Test Asset Developer

But did you do the phosphorus test?

I heard the phone clang down and my colleague Steve distraughtly mumble “She’s going to kill the fish.” His wife called to tell him about a phosphorus problem in their fish tank at home. She’s a medical researcher, a biologist by training. Steve’s first reaction when she told him there was a phosphorus problem was to ask if she had in fact done a phosphorus test. No, she said, but she’d run through all of the other chemical and algae tests, so of course it had to be the phosphorus and thus she’d started adding more phosphorus to the tank — they’d know in a few days if that was the problem. Steve, imagining coming home to a tank of dead fish, was not impressed that his scientist wife had failed to use the scientific method at home.

It’s so often like that in technology as well. Despite years of rigorous training to use the scientific method to guide our actions (it is called “computer science” for a reason), it’s easy to throw all that away when faced with a challenge. A customer came to me the other day asking about monitoring tools to help with a production triage situation for a failing web service. A developer assigned to the task interrupted us saying that a fix had been deployed ten minutes prior and it looked like it was working. Let’s reflect upon that:

a) No load or performance testing scripts existed for this web service.
b) No monitoring or profiling tools had been deployed with this service in either a pre-production or production setting.
c) A hopeful fix had been hot-deployed to production and left to run for a mere ten minutes before victory was declared.
d) No permanent monitoring was put in place to prevent the next occurrence of the problem.
e) Apart from a few manual executions of the service and a face-value assessment by one individual, no further validation to correlate the fix with the perceived problem occurred.

Chances are good that Steve’s fish will be fine, but can the same be said for those cases where we play roulette with mission critical IT systems? Just as in the case of Steve’s fish, there is no legitimate reason for a lack of objective, quantitative analysis except basic human apathy. Anyone who has ever taken a statistics course or been face-to-face with a serious production issue knows that just because many other tests have ruled out many options does not mean its safe to jump ahead and make assumptions just because of gut feeling — why abandon a working method for one that brings doubt, risk, and exposure to criticism? Run the phosphorus test and let the results be your guide.

A video speaks a thousand words

It is nothing new for us to be constantly developing new educational tools. Demos and lab materials for trainings on site, or content for our evolving KnowledgeBase that augments the HP software support we provide to our customers. But the videos are the biggest hits so far. They pack a three minute punch of information without leaning on those lazy powerpoint icons. Check ‘em out.

Business Transaction Management in palatable terms (no yawning required):

In case you missed the first one, here it is:
Why J9? Well, since you asked…

Please rate them! We’d love to get some feedback on how well these videos connect with you and for god sakes, if they are still boring, please let us know.

How would you test a 4000 user community?

That question was the lead in to a discussion I had with a colleague this week. He had been interviewing someone for a performance testing role and that was the key question that could make or break a candidate. The typical response goes something like “I’d start with one user, then move on to five, then ten, then 50 then 100, then… all the way up to 4000.” While the most common answer, this is entirely wrong. This kind of common yet broken testing process explains why the group of us that joined the conversation could each retell case studies of customers who had spent multiple years (and millions of dollars) on failed testing efforts.

The right answer goes like this:

a) Ask the hard questions
How many of the 4000 users are concurrent users and what is their use pattern? For example, many batch billing systems do nothing for 29 days per month, but then run through a massive number of transactions on the last day. Other systems have limited daily use until 5pm when their user community arrives home from work and then signs in. Are the users spread across multiple timezones?
If the data to discern the number of real concurrent users isn’t available, that actually means two things to our project:
1) A separate project is needed to put in place tools to capture user behavior. The lack of such information can cause poor decisions in the areas of testing, capacity planning, security, and product usability design and functionality.
2) If no such data exists and the 4000 number simply means we have 4000 users in our database, we can now back into a more realistic upward bound through some basic calculations.

b) Functional performance test
Start with one user as a means of functional performance test. This enables you to validate your test cases and test scripts and flush out any immediate functional problems with the application(s).

c) Longevity testing, peak testing, failover testing
There are a variety of other tests with greater pertinence and validity in understanding the application’s serviceability than simply running through the same script with a randomly increasing number of virtual users.

d) Load and Performance testing
If we’ve determined that simply starting with one user and continuing to double isn’t the right process for load testing our application, then what is the right heuristic for getting to the Nth user? The answer is that it doesn’t really matter, as we’ve determined, in effect, all of the above through the answers to our questions about the user community. If we have 4000 users in our database but don’t know how and when they use the application, a test of 200 users as a top number is just as valid as a test of 2000 users. Using these numbers though, one can arrive at some guidelines by looking at the length of a user day. For example, if our application is used by an internal business customer that only works standard business hours in the eastern time zone, then we can surmise a roughly 8 hour work day, 5 days per week. Take 4000 users, divided by 8 hours, we can take an educated guess that there are 500 users per hour. Take an 8 hour day, multiply by 60 to get 480 minutes, divide the 4000 users by 480 and we can surmise that at any one minute interval there are likely to be 8 users on the system. In the absence of further information about our user community, we now have real, actionable numbers to test against. Rather than the dozens and dozens of incremental tests we were potentially facing, we can now break our cases into one user, 10 users, 500 users, and anything above that is essentially to discover the upward bound of our capacity.

These steps are a productive tool to improve the quality of your testing, as well as a great way to gain new insight into the candidates you interview.