Wednesday, December 9, 2009

YAGNI

You ain't gonna need it.

Yesterday we were doing a DB design in our project which is just in its first sprint. I was paired with my team mate for this task and we were just going into discussions shaping our DB structure. Normalizing it and so on.

At one point I suggested a point from the perspective of extensibility in future. My team mate who is also our SCRUM master suddenly said YAGNI. And he started laughing. I was wondering what was that. Which language? Latin? Greek?

He quickly googled for the word YAGNI and the all the results said - "You ain't gonna need it". Instantly I recollected the SCRUM phillisophy of NO Big Design Upfront - NBDU. Just be in present do not worry a lot about future.

We laughed for while and continued back to work.

Thursday, December 3, 2009

Acceptance TDD

1. In acceptance TDD we first define the specific user- or customer-valued functionality we want our system as a whole to exhibit and only then implement the said behavior,most likely using TDD.

2. Acceptance test are:
-Owned by customer
-Written together with customer, developer, tester
-It is about what and not about how
-expressed in the problem domain -consize, presize

3. The requirement is to achieve correctness at feature level and not at code level.

4. Dev Cycle:
-Select a User Story
-Write Acceptance tests for the story
-Automate above tests
-Implement the story to pass teh above automated acceptance tests.

Back to SCRUM...

Long time.. almost 7-8 months.. I was missing SCRUM actually.

Thanks to my new assignment in my new job :). I am back to a SCRUM team, playing the role of the tester. I am happy that I can use all my learnings from my Waltham University :) for my new team and project.

Right on my first day I heard back all things about SCRUM, which I was forgetting slowly being out of touch since last few months. I had my first standup meeting today and people are talking about TDD and Acceptance TDD. Cool.

Tuesday, November 24, 2009

Meditation is not...

  1. Meditation is not about doing:

It is easy to be in meditation, but it is extremely difficult to do meditation.

Imagine how difficult it would have been if we had to do breathing. Like all natural processes, meditation is spontaneous and effortless.

  1. Meditation is a state:

It has a very great advantage of being a fact and not a fiction

- Socrates

Meditation is the state of silence where we can introspect without either guilt or pride. In the state of deep meditation, we can correct even the fundamental flaws of our personality effortlessly.

Meditation is a state that extends much beyond mere relaxation. It is the experience of a state called as ‘thoughtless awareness’ where we are not hindered by the thoughts arising from the worries of the past or the anxieties about the future and being in the present where we experience our true nature.

  1. Meditation is not an exercise:

Breathing exercises or stretching exercises do not constitute meditation. They are merely techniques that can be used to enter into meditation.

  1. Not all who talk, know:

Stop thinking and talking about it and there is nothing you will not be able to know

- Zen Koan

People who talk about meditation sometimes have never actually experienced it. And even if someone has experienced it, it is of little value to us unless we can experience it ourselves too.

  1. Meditation has no prerequisites:

It is not mandatory to have a silent room or peaceful settings to meditate. If there is noise outside, meditation will make you silent inside. It is possible to meditate even in a crowded train or during a crisis.

  1. Meditation is not giving up on life:

We don’t need to renounce our day-to-day activities in order to meditate. Instead, meditation helps us to do things better. Proper meditation does not make us passive; instead it makes us dynamic and energetic.

  1. Meditation is not for sale:

Look and you will find it - what is unsought will go undetected

- Sophocles

You cannot buy meditation. You cannot sell meditation. You cannot do meditation. You cannot force meditation. Like all natural processes – like flowers blooming and seeds sprouting – meditation is spontaneous, effortless and always born out of the individual’s desire.

While it is easy to believe that more you pay, better the product/service you get, it is often untrue with meditation. People who spend millions usually learn nothing of value. Nowadays, a lot of ‘commercial yoga’ techniques are available in the market that promises extraordinary things but usually is observed to deliver nothing of much significance.

  1. Knowing is not the same as being:

The story is about you

- Horace

Listening to lectures on meditation is not the same as the actual meditation itself. No amount of books can teach you to swim unless you jump into the water.

A second’s experience is worth more than years of study. Direct perception is worth more than hours of listening to second-hand knowledge. To be is much greater than to know.

  1. Abnormal behavior is not meditation:

It is no proof of a man’s understanding to be able to confirm whatever he pleases; but to be able to discern that which is true is true and that which is false is false, that is a mark of character and intelligence.

- Emanuel Swedenborg

Mind going blank, losing consciousness, doing weird things are things that are neither spiritual nor meditative. Many believe that anything that is paranormal is spiritual. However, from my experience, I have come to understand that true meditation is not something abnormal. It is a profound state of inner silence that helps us understand ourselves better. It is natural and uncomplicated. And has no price tag associated with it.

  1. Meditation, a fashion statement?

The supreme happiness in life is the conviction that we are loved

- Victor Hugo

The ability to love oneself and other human beings equally is the most beautiful and attractive quality a human being can have. Meditation has the capacity to trigger this beautiful quality and thus is an eternal fashion statement. Meditation can never go out of fashion as long as humans desire for love and compassion.

Testing Framework Review

Overview:
I was invited to review the existing automated testing solution created by the testing team of Equifax project. They are facing problems related to QARun tool and clear understanding of testing methodology and framework creation.

Objective:
Review the existing framework of automated tests for a group of J2EE applications. Define a strategy for creating automated regression test suite to increase efficiency og testing team.

Application Architecture:
A set of application related to user credit details. All the data and logic handled within Mainframes. Multiple small J2EE applications basically taking care of reporting and some decision making using reports.

Data Flow:
Input Web Forms => XML => C++ => Mainframe Flat File => Mainframes Processing => Mainframe Flat File => C++ => => XML => Output Report on Web Screen

A very good set of test data is already available and is maintained by the test team. This is a great positive point.

Problem:
1. Tool being used is QA Run. It is incapable of identifying the objects on the web screen required to validate the test criteria.

Current Solution (Using QA Run):
1. Fill up the form in browser
2. Submit to generate report on screen
3. Select all the data on screen using Select All command.
4. Copy it to a txt file
5. Save it to a folder as baseline.
6. Next release repeat all the above steps.
7. Compare the two files generated above and validate of each and every character in the txt files match in terms of its location and value.
8. If they don't match look up the root cause manually.


I identified the following problems:

1. No Clear distinction of GUI and Data validation test cases.
2. Current methodology is fragile.
3. No clear boundaries for the data inside txt files to help validate reliably.

Solutions Discussed:
1. Define Gui validation test cases and data validation test cases separately.
2. Get them signed off by the stake holders for priority and importance.
3. As discussed with the DEV team, get an XML generated from existing DOM object within code which is being used to generate the report.
4. Using XPath and VBScript (under QA Run) code the data validation scenarios as automated test scripts.

Additionally:
1. Define naming conventions for test script files / test objects
2. Setup process for getting signoff from stakeholder
3. Educate the test team regarding the naming conventions and use of SVN.
4. Synchronize with the DEV team to get their help as and when required.
5. Team to learn and try XPath

Next Steps:
1. Undersand the gap between the DOM Object and the result report web page if any.
2. Create simple test script using an XML as input data and the test condition created using XPath in VBScript.
3. Present to stakeholders.

This was a very interesting exercise for me and hope this to leads to a win win kind of a solution for both the test team and the stakeholders.

Thursday, November 12, 2009

Drive Towards Excellence

Badminton. Wow!!! What a game. I just love the moments every morning I am with my badminton playmates. These 30 minutes of my daily mornings since last 6 months enrich my entire day like nothing else.

The laughter, the fun, the positive spirit of competition, sometimes conflicts and what not. We share and enjoy so much in these moments. And today I realized something which I had read and heard before but never experienced.

Four of us - Mr. Uday Kumar, Dubey Ji, Raj and myself were playing a match of 15 points. The play started and was going bit dull. Myself and Udayji on one side and Raj + Dubeyji on the other. We started scoring points whereas Raj and Dubeyji stopped on there first point. The score reached 10:1. The game was losing fun.

I thought of trying something at that point to give the game a fun lift. I started returning the shuttle to Raj and Dubeyji simply on their rackets rather than trying to dodge them to get more points. Soon I could see their confidence building up. They started scoring quickly. On our side Udayji was trying hard at his end but wasn't able to manage increasing our points because of my support to our opponents.

Soon we reached equilibrium. We were at 11:11. Now I came back to the killing sporting spirit of our original game. And all four of us were giving our best to win the game. The last 4 points till 15 gave us so much fun and excitement, we enjoyed like nothing.

I heard Raj and Udayji say, ohh it was great feeling reaching 11 from 1, the feeling as if we had already won. And ofcourse we on our side were joyous of the win.

Now the moral I derived from this unplanned and spontaneous incident was basically my control over the game was such that I allowed me to take it in whatever direction I want. I decided to infuse fun and excitement in the game and was able to successfully add it for all of us.

Drive towards excellence.

Monday, September 28, 2009

Intelligent and dangerous Virus.. Wow!!!

My NAV just caught and removed a virus, and after going thru the virus details, I was a little overwhelmed..

Please read the following URL for details of what this virus can do to any system..

http://securityresponse.symantec.com/security_response/print_writeup.jsp?docid=2008-123015-3826-99

Monday, September 21, 2009

I love music...

http://www.midomi.com/index.php?action=main.profile&username=rijukansal&tab=recordings

DRY - Dont Repeat Yourself

I learnt this thumb rule while learning Ruby On Rails. I liked Ruby very much and found it very intelligent and smart. Whatever may be the reason for not pursuing with Ruby but I liked this concept of DRY.

I found this has nothing in specific with any development language but a general principle to increase efficiency at whatever you do.

An effort once invested should be preserved in such a way so as it can be re-used by you or someone next time.

Tuesday, May 26, 2009

Message / SOA Testing...

Recently I have started working for a testing project in the financial domain. The application we need to test uses a lot messaging architectur {SOA}. So basically a number of systems interact with each other by sending messages to each other and receiving responses in asynchronous fashion.

So automating the testing for the messaging framework is very crucial. We are using a licenced software called Green Hat for this task. In this tool we basically create publishers and subscribers to various Queues. We create XML messages and send them to Publisher Queues and verify the responses using Subscriber Queues or Database calls.

This Green Hat being licenced tool I was wondering if we can find out an open source way of doing this. And I found the following link in the very first search results.

http://www.ibm.com/developerworks/websphere/library/techarticles/0808_vandekuil/0808_vandekuil.html

This is basically using JMeter for the same purpose.

Tuesday, March 17, 2009

What is Recession?

This story is about a man who once upon a time was selling Hotdogs by the roadside. He was illiterate, so he never read newspapers. He was hard of hearing, so he never listened to the radio. His eyes were weak, so he never watched television. But enthusiastically, he sold lots of hotdogs.
He was smart enough to offer some attractive schemes to increase his sales. His sales and profit went up. He ordered more a more raw material and buns and sold more. He recruited more supporting staff to serve more customers. He started offering home deliveries. Eventually he got himself a bigger and better stove. As his business was growing, the son, who had recently graduated from college, joined his father.
Then something strange happened.
The son asked, "Dad, aren't you aware of the great recession that is coming our way?" The father replied, "No, but tell me about it." The son said, "The international situation is terrible. The domestic situation is even worse. We should be prepared for the coming bad times."
The man thought that since his son had been to college, read the papers, listened to the radio and watched TV. He ought to know and his advice should not be taken lightly. So the next day onwards, the father cut down the his raw material order and buns, took down the colorful signboard, removed all the special schemes he was offering to the customers and was no longer as enthusiastic. He reduced his staff strength by giving layoffs. Very soon, fewer and fewer people bothered to stop at his Hotdog stand. And his sales started coming down rapidly and so did the profit. The father said to his son, "Son, you were right". "We are in the middle of a recession and crisis. I am glad you warned me ahead of time."
Moral of the Story: It's all in your MIND! And we actually FUEL this recession much more than we think.

Thursday, March 12, 2009

Monday, January 19, 2009

Using the right DB increased test coverage 10 times !!!

I have not worked on any web application which doesn' t connect to database. If we intend to write our application thru our tests or even vice versa, it becomes quite necessary that the DB we are using gives a great deal of support to the fact.
What support?
- Quickness
- ease of rebuilding
- smooth to handle with a programming language

I worked on an application recently which had no unit tests. When I joined the team I spoke to the team about benefits of tests - both unit and acceptance. The project had good amount automated acceptance tests though.

We tried the idea of in-memory DB - HSQLDB. This is a light weight database made in Java language. Using ANT (with hibernate) we created tasks like -
- generateSchema
- createDatabase
- populateDatabase
- deleteDatabase
Using these tasks we had great control over the DB. Moreover the DB being light and in-memory made writing tests very quick. We even configured it in Cruise Control.
Initially before we started with HSQLDB 10 days back, our test coverage was 3% and now it is 30%, growing exponentially.