Testing express

Testing express

Saturday, May 19, 2012

Adding power to browsers - node.js

As a tester I need to keep myself updated with the latest technologies and tools, So I thought of putting down my learning experiences here

There is a new technology in the javascript land called "node.js", it is being used in one of our projects. This gave me some motivation to explore it.

I was thinking, where does node.js fit in the knowledge/information I have? I started with browser as a starting point. The main basic elements of a browser are HTML, JavaScript & CSS. I will be referring JavaScipt as js, because I may need to use it often. 
what problem does js solve?
Html can serve only static webpages, js can serve dynamic webpages.
I tried to find out more information about js:

1) js is an interpreted language with object-oriented capabilities 
2) js runs in a single threaded environment, meaning multiple scripts cannot run at the same time 
3) Each of the popular browsers use different js engines
IE – Chakra
FF – SpiderMonkey(built in C++), Rhino(built in Java)
Safari – Nitro
Chrome – V8

What is node.js?
"node is a bunch of sugar on top of virtual machine v8" --Quote from Ryan Dhal, creator of node.js

It means node is a tool built on top of google's js engine v8, this is the same engine which chrome browser uses.

What problem does node.js solve?
js has concurrency issues, it is not possible to do several things at same time, node addresses this concurrency problem. you can run multiple scripts at same time. It means response times are fast.

Eventhough node solves this problem, it has some limitations
its still young and immature, you can listen to this video to know more about node from the creator ryan dhal http://www.youtube.com/watch?v=jo_B4LTHi3I

Important points
  • generally js is executed in browsers, with node you can execute js from outside a browser
  • node has a command line tool/console, similar to irb in ruby
  • you can execute javascript file from the command line tool/console using node command
For testers this can be a important tool in the toolkit for learning & exploring js, which is an important element of a browser.

Friday, May 4, 2012

Automation - The buzz word

There is a flood of automation tools in market in the past few years. "Automation" has become a buzz word. Every manager wants his team to find automated solutions to speed up the testing efforts.

From a tester's perspective, what does it mean?

1. Opportunity to explore and learn new tools
2. Learn a new scripting language that can give  new insight to a tester
3. Break routine patterns as a tester. Eg; thinking beyond black box
4. Chance to think from a development perspective

From a management perspective, what does it mean?

1. How much do we save with automation
2. Can we automate everything?
3. Can we move testers to other projects, because automation will free up their time
4. There is a new automation tool in market, can we do a quick POC and implement?

There are lot of expectations that cannot be fulfilled because the perception is "Automation can solve all problems on click of a button"

This cannot be true, because automation is similar to development effort and can be complex if you plan to automate big projects.

Few questions to ask before thinking of automation:

1. What are the testing requirements?
2. What tools are available that suit the testing requirements?
3. Is the product stable enough to start automation?
4. How much do we want to automate?
5. Does the tool support automation for the application under test(AUT) or do we need testability in the AUT ?
6. Are the testers skilled enough to do automation?
7. If testers don't have automation skills, is company ready to groom them or hire people with skills?
8. What value does automation add? 
9. What are the expectations/timelines for automation efforts?
10. How mature is the automation tool?
11. What community support does it have?
12. Is the tool open-source or commercial?

Automation is not bad, It can be a powerful tool in a testers toolkit, if used effectively. Over use and hype of "Automation" will not solve problems. Thinking and Implementing smart automation solutions is the need.