Tuesday, October 16, 2012

WAAT (Java & Ruby) with JS_SNIFFER is out of the box

I have pushed in the latest changes to WAAT to get over the limitation of not working in a pure https environment (http://essenceoftesting.blogspot.in/2011/06/waat-and-https.html).

The solution is creating a new type of plugin - called JS_SNIFFER.

This plugin requires the user of WAAT to do a little more work than before. 

They need (to work with their development team) to figure out what JS script they need to invoke in the browser to get the URL of interest that is sent as a pure https request over the wire. WAAT then takes this request, and does the tag matching for you.

This generation of the JS script is a one-time effort - unless the way the tags are reported changes in the product. Then the test framework can work in a seamless fashion as before to test this is working consistently in an automated fashion. 

Another advantage of this is that with this approach, we do not need to install jpcap or run the tests as a "super-user" - a restriction posed by the network packet capture library.

The WAAT_v1.5.0.jar is available on here (https://github.com/anandbagmar/WAAT/tree/master/dist) on github.

Similarly, I have also updated the WAAT-ruby gem (WAAT-1.5.0.gem). This gem is not yet pushed out to rubygems.org - as I am still testing it out. However, if you are interested, you can download it from here.

As usual, feedback / comments / suggestions most welcome!

Wednesday, September 26, 2012

Error in building native extensions on mac / ruby?

If you encounter errors when a ruby gem on your mac (error in building native extensions), read more for a solution that worked for me.

I was trying to install ffi on my mac and got the following error:

sudo gem install ffi -v '1.0.7'


Building native extensions.  This could take a while...
ERROR:  Error installing ffi:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/ffi-1.0.7 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/ffi-1.0.7/ext/ffi_c/gem_make.out


Here is what you need to do resolve the issue:

  • Install xcode
  • Install the "Command Line Tools" from xcode -> Preferences -> Downloads -> Components

Now you will be able to install the gem and build its native extensions on your mac.

An important UPDATE from my good friend Oscar Reiken:

Oscar Rieken5:52 PM (edited)
good tip ;) but that only works with newer versions of mac OSX where the latest version of Xcode is included, you might also want to add that if you dont have access to the latest xcode you can use brew(http://apple.stackexchange.com/questions/38222/how-do-i-install-gcc-via-homebrew) or install GCC directly(https://github.com/kennethreitz/osx-gcc-installer) 

Tuesday, September 25, 2012

New version of WAAT-ruby gem available

I finally got around to pushing out a new version of WAAT-ruby (1.4.1) on rubygems.org. The only change in this version is the removal of a dependency on a particular version of bundler. See the WAAT-ruby project on github for more information.

Watch this space for a new version of WAAT-ruby that overcomes the limitation of doing web analytics automation for https urls.

Monday, September 10, 2012

vodQA Pune - Going Beyond the Usual

The next edition of vodQA is coming up on Saturday, 13th October 2012 in Pune. The theme for this edition is "Going Beyond the Usual". There is going to be focus on functional and cross-functional areas like Security, Usability, Scalability and Performance, within industries such as Manufacturing and Banking, among others.

You can register as a speaker here, or as an attendee here


Saturday, September 8, 2012

Whats next for WAAT?

It has been quite some time that I updated WAAT. The released version has been working well - but it does have its limitations as listed in the FAQs on github.

The biggest limitation I feel about the current release version of WAAT is that it does not work in a pure https kind of an environment. (http://essenceoftesting.blogspot.in/2011/06/waat-and-https.html)

Of late I have been spiking out different ways to overcome this limitation. I have experimented to create a HttpsSniffer, and hit various different road-blocks in that. That has forced me to look at another strategy. 

So I have changed direction in coming to a solution. I am looking at creating something like a JSInjector / JSSniffer plugin - which executes a javascript in the browser from where the action is invoked. This is not as straight forward to use as the earlier approaches. The user of this plugin will need to understand the DOM and some javascripts better, maybe take help from the development team, but then once the way to retrive the basic information is known, then we are in calm waters again :)

If you are facing this similar issue in a pure https environment for web analytics testing, look out for more information in this space.

My plan is to update WAAT, followed-by WAAT-Ruby and then lastly release a new version of the WAAT-Ruby gem following that.

vodQA - The ABCs of Testing

I am late in writing about this, but if I do not share this, I am sure I will be feeling very bad later on.

I am very happy to write the next vodQA is happening in Bangalore on Saturday, 8th Sept 2012. The theme for this event is "The ABCs of Testing (Automation, Big Data Analytics, Could Testing)". Also look at our vodQA group on facebook for more information.

There are great topics lined up by great speakers. There are going to be sessions across multiple tracks, fish bowl sessions and am sure a lot of thought-provoking interactions.

I will write an update with links to presentations, pictures and videos after the event. See you all there!

Wednesday, August 22, 2012

Google Has Open Sourced Octane, a New JavaScript Benchmark Suite

Posted from: Google Has Open Sourced Octane, a New JavaScript Benchmark Suite

Should now make it easier to test for performance more seamlessly and regularly.

----------------------------

Google has open sourced Octane, a JavaScript benchmarking suite consisting of 13 tests measuring browser performance.
Google has open sourced Octane, a JavaScript benchmarking suite consisting of 13 tests meant to measure the performance of browsers loading and executing complex and large JavaScript applications such as games, interactive and rich web pages and online tools. Octane consists of 8 tests found in the initial V8 Benchmark Suite plus the addition of 5 new ones – pdf.js, Mandreel, GB Emulator, Code Loading, Box2DWeb - that are meant to measure performance areas not covered yet by other tests:
  • Richards - OS kernel simulation benchmark, originally written in BCPL by Martin Richards (539 lines).
  • Deltablue - One-way constraint solver, originally written in Smalltalk by John Maloney and Mario Wolczko (880 lines).
  • Raytrace - Ray tracer benchmark based on code by Adam Burmister (904 lines).
  • Regexp - Regular expression benchmark generated by extracting regular expression operations from 50 of the most popular web pages (1761 lines).
  • NavierStokes - 2D NavierStokes equations solver, heavily manipulates double precision arrays. Based on Oliver Hunt's code (387 lines).
  • Crypto - Encryption and decryption benchmark based on code by Tom Wu (1698 lines).
  • Splay - Data manipulation benchmark that deals with splay trees and exercises the automatic memory management subsystem (394 lines).
  • EarleyBoyer - Classic Scheme benchmarks, translated to JavaScript by Florian Loitsch's Scheme2Js compiler (4684 lines).
  • pdf.js - Mozilla's PDF Reader implemented in JavaScript. It measures decoding and interpretation time (33,056 lines).
  • Mandreel - Runs the 3D Bullet Physics Engine ported from C++ to JavaScript via Mandreel (277,377 lines).
  • GB Emulator - Emulate the portable console's architecture and runs a demanding 3D simulation, all in JavaScript (11,097 lines).
  • Code loading - measures how quickly a JavaScript engine can start executing code after loading a large JavaScript program, social widget being a common example. The source for test is derived from open source libraries (ClosurejQuery) (1,530 lines).
  • Box2DWeb - Based on Box2DWeb, the popular 2D physics engine originally written by Erin Catto, ported to JavaScript. (560 lines, 9000+ de-minified)
The benchmark runs in Chrome 14+, Firefox 13+, IE 10, Opera 12 and Safari 5.1.7+ on the desktop, and in the mobile versions of Chrome, Firefox and Opera. It does not run in IE 9 because Microsoft’s browser does not implement WebGL's Typed Arrays, and in several mobile browsers which fail to execute some of the tests: Android Browser, Chrome on iOS 4 (due to iOS restrictions), and Safari on iOS 4.
Octane is more comprehensive than other JavaScript benchmarking tests such as V8SunSpiderKraken or Dromaeo. Google mentioned their intent to keep improving the test suite, inviting users to fill in issues reporting performance areas or applications that can be used as a base for more comprehensive JavaScript testing.
The source code of the Octane benchmark is available under a New BSD License.


Monday, July 30, 2012

Do we have rules for story writing?


I came across this interesting article from Pixar - The 22 rules of storytelling, according to Pixar


It got me thinking - this applies to our Agile world of Software Development too! 
  • Anyone writing story cards - do you have certain rules / criteria in mind? I think quite a few things from the Pixar article apply in our world too!
  • For us Testers, do we think about the functionality in the story cards based on these rules? Or, simply put, do we think about the new functionality in the story card affects the end-product? Do we think about the big picture enough?