QAInsight.net, QABlog.com, QABlog.net
Brent Strange's thoughts on Software Quality Assurance and technology

 
Thursday, April 27, 2006
 
 

Working with hidden elements in SWEA

 
 

The other day while automating a test case for our Web application I found that SWEA was recognizing that an element existed on the page even though I couldn't see it. This wasn't good because that element was a client side error message for a form and nothing was being done with the form to throw the error. A closer look at the HTML revealed a <SPAN> tag with the style property visibility set to "hidden". It looked like this:

<span style='visibility:hidden' class='VAMErrorText' id='valInactiveDays'><span id='valInactiveDays_Txt'>Must enter a numeric value.</span>

A test case that actually caused the error to visually appear on the page resulted in the following change to the HTML:

<span style='visibility:visible class='VAMErrorText' id='valInactiveDays'><span id='valInactiveDays_Txt'>Must enter a numeric value.</span>

So, in the top example the element existed in SWEA's eyes because it existed on the page but it was "hidden". My problem to solve was how to make my test acknowledge that the error message wasn't really thrown and that it was still "hidden". At the time I figured it would be best to extract the HTML out of the SWEA control and search for the text "Visibility:hidden". My resolution looked like this:

case TestGoal.SuccessfulResponse:
((HtmlInputText)(myBrowser.Scene["txtInactiveDays"])).Value = txtValue;
((HtmlInputButton)(myBrowser.Scene["btnLoadReport"])).Click();
myBrowser.Scene.WaitForActive(30000);
//Hidden elements can still be seen by SWEA so make sure it's hidden
//Text we're searching for
txtHidden = "VISIBILITY: hidden";
//Return a boolean for/when txtHidden is part the controls OuterHTML
isHidden = ((HtmlContent)(myBrowser.Scene["HiddenVAMLbl"])) .OuterHtml.IndexOf(txtHidden) > -1;
//Validate control is hidden
Assert.IsTrue(isHidden==true);
break;

When talking to Alex after the fact, he reminded me that I could also pull out the Style information by doing the following:

((HtmlContent)(myBrowser.Scene["HiddenVAMLbl"])).Invoke ("Get_Style").ToString().IndexOf(txtHidden) > -1;

A little less elegant but either way solves my problem.

 
   
   
   

 
Wednesday, April 26, 2006
 
 

Browser Wars - A New (ie) Hope

 
 

Hehe...this is awesome: Browser Wars - A New (ie) Hope

 
   
   
   

 
Tuesday, April 25, 2006
 
 

IEAddOns.com

 
 

You can now get your Internet Explorer 6 and 7 add-ons through the new IE add-on web site IEAddOns.com. According to the IEBlog:

"Products on the site either work directly with Internet Explorer 6 or 7, or use the IE platform, and have to meet the CNET Software Submission Requirements and Adware and Spyware Policy before being posted. We also welcome users, editors and industry specialists to write and post reviews for each add-on, and report problem software."

A quick perusal of the initial list of add-ons sparked no interest for my QA mind. After about 2 minutes of looking around I realized that the new IE Developer Toolbar was not to be found on the site. Seems odd... I know it's in beta but that shouldn't keep it off the site! Maybe it didn't meet the "Software Submission Requirements"?

Once the word is out and the add-ons are submitted, this should be a nice little portal (hopefully as nice as the FireFox extensions site).

 
   
   
   

 
Thursday, April 20, 2006
 
 

SQL 2000 to 2005 upgrade resulted in 10% more CPU usage

 
 

Over the last 2 days I had the opportunity to remove the SQL 2000 database out from underneath our Web Service and replace it with SQL 2005. The team was hoping to see an instant gain in SQL performance but that's not what happened. Performance tests that put the SQL 2000 server at a comfy 69% CPU usage were now using 81% with SQL 2005. Bummer. Where's the magic Microsoft? Keep in mind we made ZERO changes to the Web Service or SProcs for the test.

We're not going to give up hope on gaining performance with SQL 2005, the move is just going to be slower for us now since we obviously need to uncover the magic and finding that magic is going to take some work. During this SQL upgrade test I learned a few interesting things that I suppose I should share with you...

  • I couldn't successfully restore a SQL 2000 database backup to my database in SQL 2005. I had a few errors thrown at me but this is one that I documented: "Restore failed for Server 'TEST-SQL1'. (Microsoft.SqlServer.Smo), Additional information: System.Data.SqlClient.SqlError: The backup set holds a backup of a database other than the existing "TEST" database. (Microsoft.SqlServer.Smo)"
  • The SQL2000 database couldn't be attached in SQL2005 and used successfully. For some reason, when I attached my 1 million+ entry database my largest table was empty?!
  • Does attaching to a 2000 .MDF in 2005 migrate the data? According to a forum post by an engineer on the MS SQL 2005 development team, it does migrate the system tables but he says nothing about the custom tables. I couldn't find any other info on the web on how to migrate data other than using the attach feature as described by ASPFree.com. Microsoft has an upgrade advisor tool but it doesn't upgrade anything it just does analysis.
 
   
   
   

 
Wednesday, April 19, 2006
 
 

More unencrypted user data stolen

 
 

And yet again more personal financial user data was stolen. This time it was from a company named Regulus Integrated Solutions that was hired to take care of Wells Fargo monthly statements. Customers sued but since the user data has not been exploited (yet) they lost. Hmmm... I wonder if the customers "fear, anxiety and worry" could have been alleviated with use of encryption by Regulus?

 
   
   
   

 
Monday, April 17, 2006
 
 

Interesting seach query

 
 

Sometimes I have a good little chuckle about some of the search queries that people land on my site with. Today's chuckle was about: "quality assurance standards for bingo paper".  Think about that job...

I landed 3rd in the list from MSN with the relevant words of quality, assurance, paper, and standards, but NOT bingo. I'll have to work on finding a better way to get to the top of the list for those Bingo Paper QA Engineers. Maybe this post will do it since search results don't really return anything relevant to the query. Maybe the standard/job doesn't exist? Drop me a note if you're a  Bingo Paper QA Engineer. I'd like to hear what a day in your position is like!

 
   
   
   
 
Monday, April 17, 2006
 
 

Have YOU been drinking the Web 2.0 Kool-Aid?

 
 

Have YOU bben drinking the Web 2.0 Kool-Aid? It appears that I have. Figure out if you did with the quiz Web 2.0 or Star Wars Character.

 
   
   
   
 
Monday, April 17, 2006
 
 

Is AJAX worth it?

 
 

Is AJAX worth the effort? Looking at Eric Holton's unofficial test tells me there isn't much of performance advantage (With AJAX: 3.24 seconds; without AJAX: 3.36 seconds). There's not much detail about the test but it feels legit.

 
   
   
   

 
Sunday, April 16, 2006
 
 

FireFox Easter Eggs

 
 

In the spirit of Easter here are a few of what people are calling FireFox "Easter Eggs":

In the FireFox URL bar type:

  • about:
  • about:mozilla
  • about:credits
  • about:cache
  • about:plugins
  • about:buildconfig
  • https://http//www.qainsight.net
    • (causes a redirect to Microsoft)

Happy egg hunting. Be a good boy and try not to shove the smaller engineers down during your frenzied search.

 
   
   
   

 
Friday, April 14, 2006
 
 

FLA. resident SSNs, DLs and bank info available on county web sites

 
 

Jaikumar Vijayan over at ComputerWorld writes about how Florida resident's Social Security numbers, bank info is available via county Web sites:

"The Social Security numbers, driver's license information and bank account details belonging to potentially millions of current and former residents of Florida are available to anyone on the Internet because sensitive information has not been redacted from public records being posted on county Web sites."

One of my favorite quotes is:

“Aside from making the redaction- request process as user-friendly and speedy as possible, I do not have the independent authority to take any additional action regarding removing material from the public records,”

They can't take down you private information unless requested. What's wrong with this world? Heh.

Read the full article here.

 
   
   
   
 
Friday, April 14, 2006
 
 

Cedric talks about why Ruby on Rails won't become mainstream

 
 

Over at Cedric's Weblog, Cedric has some thoughts on why Ruby on Rails won't become mainstream:

"So why do I think that Ruby on Rails will never cross the chasm?"

Cedric explains the following reasons:

  • First of all, Ruby.
     
  • Ruby on Rails itself.
     
  • Still no credible IDE.
     
  • Fanaticism.
     
  • Crowd of a single mind.
     
  • Enterprise capabilities and scalability unclear.

Read the full article here.

 
   
   
   

 
Thursday, April 13, 2006
 
 

Hotkey for finding a defect by ID in ClearQuest

 
 

After 5 years of using the Rational ClearQuest fat-client and never being able to figure out the hotkey combination to search for a defect ID in the database I accidentally tripped over it yesterday. During an involuntary mashing of keys by my overactive fingers my weary QA eyes were greeted with the Find Record dialogue box. Fortunately the finger spasms weren't too out of control and I was able to quickly recreate the mistake! My years and years of going to the Edit Menu and clicking Find Record are over. When I had confirmed the hotkey I felt like Neo in The Matrix when the world turned to green bits and he was able to bend it to his will. I was finally one with ClearQuest. QA life will be so much easier now.

Over the years I can't tell you how many new ClearQuest users I've had to show the secret to finding a defect in the database via Edit > Find Record (not to be mistaken for finding a defect in the query result pane; CTRL+F; Edit > Find). Why did Rational have to make this so non-intuitive? Why can't Rational/IBM post ALL the shortcut keys somewhere?

Oh, the shortcut key combo? Seems simple now in retrospect:

01000011 01010100 01010010 01001100 00101011 01010011 01001000 01001001 01000110 01010100 00101011 01000110

(CTRL+SHIFT+F for those of you who aren't one with the ClearQuest Matrix)

 
   
   
   

 
Monday, April 10, 2006
 
 

Textbox keyboard shortcuts

 
 

Jeff Atwood over at CodingHorror posted the shortcut keys for moving your cursor around in a textbox. If you do a lot of Web browser testing these shortcuts can be a real time saver.

While you're brushing up on shortcuts, don't forget about my previous post on IE shortcut keys.

 
   
   
   
 
Monday, April 10, 2006
 
 

Forcing events to fire in SWEA

 
 

On our site we have validation controls (VAM) that we use with our forms to force valid data input. If the input is invalid then an error/label will appear. VAM will validate the form when events that are associated with the form elements are fired. In simple terms it looks like this:

  1. Enter invalid text into textbox
  2. Remove focus from textbox (click away)
  3. Error/label displays

Today in my automated test using SWEA, I couldn't get the error/label to display since IE doesn't fire the event when the value is changed programmatically. In order to get SWEA to display the error I needed to use SWEA's Invoke() method to invoke the OnChange event. This is what it looked like:

case TestGoal.ClientSideError1:
   //Enter a value into the textbox
   
((HtmlInputText)(IE.Scene["Zip"])).Value = zip;
   //Force the OnChange Event using Invoke()
   ((HtmlInputText)(IE.Scene["Zip"])).Invoke("Method_OnChange");
   myBrowser.Scene.WaitForActive(30000);
   //Validate the resulting error label
   Assert.AreEqual(message,
    ((HtmlContent)(IE.Scene["ClientMessage1"])).InnerHtml,
    "Incorrect message");
   break;


Alex helped me through this issue and told me that he would work on making SWEA cleverer by adding automatic event handling. Thanks for your help Alex! 
 
   
   
   

 
Sunday, April 09, 2006
 
 

Measuring pixels

 
 

I love watching developers whine and squirm when you put in defects about something being off by x pixels. Here I am, just doing my job, comparing a Web site layout against a specification. Spec says table should be 500px wide, table on site is 495px. Sounds like a defect to me. Here is the conversation that occurs on the phone shortly after I submit the "pixel" defect:

Ring. Ring. Ring...

Brent: QA! We put the K in Kuality! This is Brent.
Developer: Hey I just saw that defect you put in.
Brent: The one about SQL injection?
Developer: No, the one about the table being 5 pixels off.
Brent: Oh, that one. Yeah, 5 pixels
Developer: Are you freakin' kiddin' me?
Brent: Yeah I'm kiddin' you. It's the same joke as the other 20 defects I put in against you today but just worded a bit differently.
Developer: Alriiiiight?
Brent: The spec says 500px the table is 495px
Developer: Well, I can't get it to be 500px due to the 1st column being managed by percentage.
Brent: I'm just following the specification. Either it needs to be fixed or the specification needs to be modified.
Developer: What are you freakin' bored up there or something? Why are you looking at this stuff?
Brent: Bored? How can I be bored? I put 10 severity 1, 24 severity 2, 46 severity 3 defects against you in the last 3 days....Cuz it's a requirement.
Developer: You're killin' me!
Brent: So that means you're going to fix it?
Developer: (long pause)..Yeah. What are you using, a friggin' pixel ruler or something?
Brent: Yep.
Developer:Uhm, Oh... (long silence). Alright thanks.
Brent: No problem.

And that's pretty much how well pixel related defects are received.

For a few years now I've been using a free tool called Pixel Ruler. It allows me to look at pixel lengths and placement in a browser or anything on my desktop. It's pretty handy when you're trying to measure Website layout and wading through code doesn't quickly yield the numbers you're looking for.

Today I looked around to see what else was out there and ran into Ruler and the MeasureIt FireFox extension. Here is my take on the three pixel rulers:

Ruler: It's easy to use, it has opacity so you can see what you're measuring if you place the ruler over the top of your item to be measured. Measuring width and height is as simple as placing your top-left corner where you want to start the measurement and then dragging the right and bottom edges to where you want the measurement to end.

Pixel Ruler: Pixel Ruler is easy to use, it doesn't have opacity so you can't overlap the item you are measuring. If you want to measure height versus width you have to flip the ruler (opposed to dragging ruler edges in Ruler).

MeasureIt: First off, since it's a FireFox extension you can only measure pixels in FireFox. This isn't very helpful for measuring things in IE or for that matter, anything on the desktop. Secondly, you have to drag a marquee around the object you want to measure. I had a really hard time doing this on my laptop thumb-pad and my test Google image of 80 pixels took me 6 tries to get the 80px measurement. I didn't like this tool at all.

I'm switching to Ruler. It's seems easier than Pixel Ruler by a smidge. What free tool do you use to measure pixels?

 
   
   
   

 
Saturday, April 08, 2006
 
 

Google Toolbar (Version 2) for FireFox combats phishing

 
 

Google has released a version 2 of their toolbar for FireFox. Amongst its many features is the ability to detect phishing and site spoofing. I tried the feature out against a known, still active phishing site and the toolbar caught it immediately and then disabled the page until I answered its warning. Tools like this are a must have when studies show that 90% of people are fooled by a good phishing site. Here's a screenshot of what the warning looks like:

 
   
   
   

 
Thursday, April 06, 2006
 
 

Better Software Conference & EXPO 2006

 
 

The up and coming Better Software Conference & EXPO has quite a few new topics in their pre-conference tutorials this year. Finally, something new! I was getting sick of looking at the same stuff OVER and OVER again. Here is a list of the new tutorials:

  • Scrum: Project Management for Agile Software Development Jean Tabaka, Rally Software Development Corporation
  • Fearless Change: Patterns for Introducing New Ideas Linda Rising, Independent Consultant
  • Becoming a Trusted Advisor to Senior Management Lloyd Roden, Grove Consultants
  • Test Automation for Agile Development, Linda Hayes, Worksoft, Inc.
  • Agile Retrospectives: A Team Leader's Guide Esther Derby, Esther Derby Associates, Inc
  • Just Enough Metrics: Instant-On Methods for Benchmarking, Quality, and More Michael Mah, QSM Associates
  • Behind Closed Doors: Secrets of Great Management Johanna Rothman, Rothman Consulting Group, Inc., and Esther Derby, Esther Derby Associates, Inc.
  • Agile Estimating and Planning, Mike Cohn, Mountain Goat Software
  • Establishing a CMMI-Compliant Measurement Program Steven Lett, The David Consulting Group
  • FIT for Requirements Collaboration, James Shore, Titanium I.T.
  • Finding Ambiguities in Requirements, Richard Bender, Bender RBT
 
   
   
   

 
Wednesday, April 05, 2006
 
 

Microsoft Sofware Quality Metrics (SQM)

 
 

Mary Jo Riley from Zif Davis has written an interesting article in the latest eWeek about the delay of Windows Vista due to quality. The delay is not the interesting part (that's old news now), but what peaked my interest was that Microsoft has a pledged to re-engineer software development with an internal project named Software Quality Metrics or SQM.

There's not much info on the details of what SQM is but sources say that it is capable of reporting quality of service and usage, real-time feedback on the impact of UI changes, and aggregating quality data into cubes and data warehouses that can be manipulated.

Microsoft is keeping this on the down-low at the moment, so we'll have to be patient to see what SQM is really capable of.

 
   
   
   
 
Wednesday, April 05, 2006
 
 

The end is near: Windows XP on a Mac

 
 

"Apple® today introduced Boot Camp, public beta software that enables Intel-based Macs to run Windows XP. Available as a download beginning today, Boot Camp allows users with a Microsoft Windows XP installation disc to install Windows XP on an Intel-based Mac®, and once installation is complete, users can restart their computer to run either Mac OS® X or Windows XP. Boot Camp will be a feature in “Leopard,” Apple’s next major release of Mac OS X, that will be previewed at Apple’s Worldwide Developer Conference in August"

Boot Camp will be available as a feature in OSX 10.5 "Leopard", but you can download a trial preview of Boot Camp now. Read more at Apple.com.

 
   
   
   

 
Tuesday, April 04, 2006
 
 

Microsoft makes Virtual Server free

 
 

Microsoft has made their Virtual Server software free. It'll be interesting to watch VMWare and Virtual Server battle. Any of us who have used virtual machine software know that performance can be really annoying. Has anybody seen any good performance comparisons?

 
   
   
   
 
Tuesday, April 04, 2006
 
 

House Committee approves The Data Accountability and Trust Act

 
 

"The Energy and Commerce Committee of the U.S. House of Representatives unanimously approved The Data Accountability and Trust Act (H.R. 4127), a bill that requires companies to launch nationwide notification campaigns if the security of sensitive consumer information, such as Social Security Numbers, drivers license numbers or financial data, is breached and could be used for identity theft."

"The Data Accountability and Trust Act recognizes that encryption is a fundamental enabling technology for protecting electronic data and fulfilling regulatory compliance"

This is progress in protecting your identity! Read more here and here.

 
   
   
   

 
Sunday, April 02, 2006
 
 

SWExplorerAutomation (SWEA) generates tests for NUnit

 
 

Alex's latest addition to SWEA is the ability to do NUnit test generation using his SWEA TestDriver. The SWEA TestDriver gives you the ability to run SWEA script files (*.hsc) as NUnit tests.

Integrating with NUnit is REALLY simple now. All you have to do is record your test using the SWEA Designer and then click the "Generate Unit Test Code" icon. When you click the icon a SWEA project, script, and C# file are generated for you. After SWEA does the generation, you can then easily add the C# file to a Visual Studio Project, add the SWEA TestDriver and NUnit as references, and then run the test in NUnit. Adding new/additional tests can be done through the SWEA Designer (which will add them to the already created .hsc file).

After working through the fact that SWEA requires the latest version of Nunit (2.2.7) I was able to have a simple test created and running in NUnit in just a few minutes. Really cool! Download the SWExplorerAutomation V1.7.8.2 (with NUnit test generation) here. Download my sample Visual Studio project here. Download the latest version of NUnit here.

The power of automating functional testing with NUnit as a test harness is growing. It's really cool and very productive when developers and QA can use the same tools to test (Developers can write there unit tests for NUnit and QA can tack on their automated functional tests by using SWEA). Here's another cool thing to think about, instead of attaching screenshots and writing meticulous steps to reproduce in your defect you can attach your SWEA *.hsc and *.htp file for the developer to re-create the issue...

GoogleNUnit_updated.zip (98.26 KB)
 
   
   
   
 
Saturday, April 01, 2006
 
 

Microsoft /AOL attempt to cut the phishing season short

 
 

FREEZE! DROP THE PHISHING POLE. PUT YOUR HANDS BEHIND YOUR HEAD AND SLOWLY BACK TOWARDS MY VOICE. I SAID SLOWLY MOTHER PHISHER! MOVE SLOW I SAID. THAT'S RIGHT KEEP BACKING TOWARDS MY VOICE. I DON'T WANT ANY PHISHY BUSINESS OUT OF YOU. Okay, drop to your knees. Do you have any phish hooks or spears on you? IF I POKE MYSELF WITH A HOOK I'M GONNA KICK THE PHISH OUT OF YOU MOTHER PHISHER.

Microsoft and AOL take legal action against phishers