Thursday, July 7, 2011

Ruby Test Automation Framework Technology Stack Survey

WAAT  - Web Analytics Automation Testing Framework is currently available for java based Test Automation Frameworks. (http://essenceoftesting.blogspot.com/search/label/waat)

I am now working on making this available as a Ruby gem.

In order to support WAAT for a good-mix of test environments, I would like to understand the different environments and technology stacks that are typically used by teams in their Test Automation Framework.

Thank you for your time and help in providing this information.



Wednesday, July 6, 2011

RubyMine (and Cucumber) caching issue

I use RubyMine to write and implement my Cucumber features on Linux.
I have noticed one weird behavior at times.

Though my step definition is correct, and the test also runs fine, RubyMine flags the step as not implemented. For some reason, it is not able to find the corresponding implementation in the .rb step definition file.

On a haunch, I selected the "Invalidate Cache" in RubyMine's File menu, and selected the "Invalidate and Restart" option. Presto .... things started working properly again. 

Now I am wondering why did the RubyMine cache get messed up in the first place .....

Monday, June 27, 2011

WAAT for Ruby on its way

I have started work on creating a Ruby gem for WAAT. This is going to sit on top of the version created for Java. Hopefully will be able to get it out soon.

Watch this space for more information.

Friday, June 24, 2011

Test Trend Analyzer (TTA)

There are many tools and utilities that provide ways to do test result reporting and analysis of those results. However, I have not found a good, generic way of doing some Trend Analysis of those results. 


Why do I need to Trend Analysis of the test results?

Long(er) duration projects / enterprise products need to know the state of the quality of the product over time. One also may need to know various other metrics around the testing - like number of tests, pass %, failure %, etc. over time.

The reports I have seen are very good about analyzing the current test results. However, I have not really come across a good generic tool that can be used in most environments for the Test Trend Analysis over a period of time.

I am thinking about developing a tool which can address this space. I call this - the Test Trend Analyzer (TTA).

Here is what I think TTA should do:

Supports:
  • Work with reports generated by common unit-test frameworks (jUnit, nUnit, TestNG, TestUnit, style of reports)
  • Provides Web Service interface to upload results to TTA
  • Test Results uploaded will be stored in db
  • Will work on Windows and Linux

    Dashboard:
    • Creates default TTA dashboard
    • Customizable TTA dashboard
    • Dashboard will be accessible via the browser

      My questions to you:
      • Do you think this will help? 
      • What other features would you like to see in TTA?
      • What other type of support would you like to have in TTA?

      Tuesday, June 21, 2011

      WAAT and HTTPS

      While most sites use http to report tags to the web analytic tool, there are some cases where http is disabled and all traffic is using https only.

      In such cases, there may be a problem in using the generic solution provided by WAAT.

      I did some research, analysis and experimentation and here are my findings:
      1. jpcap captures raw packets. It does not differentiate about http / https
      2. There is no problem in WAAT. All it does it matches packets based on patterns you specify in the tests.
      3. Since the requests are https based, WAAT is not able to match the packets, unless you specify encrypted packet identifiers and encrypted data in the xml file. firebug / fiddler / ethereal / wireshark / charles / burp / etc. does something extra in this regard to decode the packet information and show the raw content in the browser / tool.

      So the question is what can be done next?
      1. If it is possible for you to get the configuration in the test environments changed to have the web analytics request sent out on http (maybe along with https) request, that can resolve the issue. Once in a while you can then verify manually if requests are going out on https.
      2. You can use Omniture Debugger - but the limitation in your case is that it will be available for Omniture only and not the other web analytic tools.
      3. You can extend the HttpSniffer class (,say HttpsSniffer), and provide implementation to decode the captured packets before doing the validation. However, note that this will be a expensive operation as you will be decoding all the captured packets on the network interfaces on your machine and the packet(s) of your interest will be fractional of those captured.

      Tuesday, April 19, 2011

      WAAT (Web Analytics Automation Testing Framework) is alive!!!

      [UPDATE]  Check related post here (http://essenceoftesting.blogspot.com/2011/04/waat-web-analytics-automation-testing.html)

      I am very happy to announce that the first release of WAAT is available for general use.

      WAAT is hosted on github (https://github.com/anandbagmar/WAAT)

      WAAT v1.3 can be used to test *almost any type of Web Analytic solution. Tested with Google Analytics and Omniture. This is platform dependent.

      Binaries:
      You can either get the code base from git@github.com:anandbagmar/WAAT.git, or, get the binaries available in the dist folder.

      Documentation:
      Documentation for using WAAT is available in various different formats:
      > WAAT Readme.docx
      > WAAT Readme.doc
      > WAAT Readme.pdf
      > WAAT Readme.html

      These files are available in the docs folder.

      The documentation is also part of the binary file downloads.

      I am looking forward for your usage and comments to make this better and more usable.

      Saturday, April 16, 2011

      WAAT release update

      I am almost ready with my first public release of WAAT. Some finishing touches remaining which is causing the delay for this.

      For those not aware, here is what WAAT is:
      > WAAT stands for Web Analytics Automation Testing Framework
      > Developed as a Java jar to be used in existing testing frameworks to do web analytics automation
      > Phase 1: Implemented for Omniture using Omniture Debugger -> Status: Completed
      > Phase 2: Can be used to test *almost any type of Web Analytic solution. Tested with Google Analytics and Omniture. This is platform dependent.
      -> Status: In progress. Documentation to be updated.
      > Phase 3: Make WAAT available for Ruby / .Net testing frameworks. -> Status: To be started.


      Look at my earlier post for more details on WAAT.

      Wednesday, April 13, 2011

      Interesting webinar coming up ... "Where Exploration and Automation meet: Leveraging..."

      There is a very interesting and informative webinar on how to utilize automated functional testing within your organization.

      This is scheduled for Thursday, April 21.

      See this link for more information.

      Saturday, April 9, 2011

      Agile QA Process

      After doing testing on multiple Agile projects, I have come to realize certain aspects about the process and techniques that are common across projects. Some things I have learned along the way, some, by reflection on the mistakes / sub-optimal things that I did.

      I have written and published my thoughts around the "Agile QA Process", more particularly what techniques can be used to test effectively in the Iterations. The pdf is available here for your reading. (http://www.slideshare.net/abagmar/agile-qa-process)

      Note: A process is something that should be tweaked and customized based on the context you are in. The process mentioned in the document should be taken in the same light.

      Friday, April 8, 2011

      WAAT - Web Analytics Automation Testing Framework

      [UPDATE]  See my post about how you can get WAAT here (http://essenceoftesting.blogspot.com/2011/04/waat-is-alive.html).

      Problem statement:

      On one of the projects that I worked on, I needed to test if Omniture reporting was done correctly.

      The client relied a lot on Omniture reports to understand and determine the direction of their business. They have a bunch of Omniture tags reported for a lot of different actions on the site. Manual testing was the only way this functionality could be done verified. But given the huge number of tags, it was never possible to be sure that all tags were being reported correctly on a regular basis.

      So I came up with a strategy to remove this pain-point.

      Approach:
      I created a framework in our existing automation framework to do Omniture testing. The intention of creating this framework was:
      1. There is minimal impact on existing tests.
      2. There should be no need to duplicate the tests just to do Omniture testing.
      3. Should be easy to use (specify Omniture tags for various different actions, enable testing, etc.)

      How it helped us?
      1. We provided a huge and reliable safety net to the client and the development team by having Omniture testing automated.
      2. Reduced the manual testing effort required for this type of testing, and instead got some bandwidth to focus on other areas.

      Next Steps:
      I am making this into a generic framework - a.k.a. WAAT - Web Analytics Automation Testing Framework to enable others doing Omniture testing to easily automate this functionality. This project will be hosted on github.

      Phase 1 of this implementation will be for Omniture Debugger and input data provided in xml format. This framework will be available as a jar file.

      Phase 2 also now complete includes support for any Web Analytic tool. I have tested this with Google Analytics as well as Omniture (NOT using Omniture Debugger). This uses a generic mechanism to capture packets from the network layer and processes them appropriately. Given this generic approach to work with any Web Analytic tool, the framework does become OS dependent.

      Watch this space for more information (instructions, links to github, etc). Also, please do contact me with ideas / suggestions / comments about the same.