Automating everything is a major part of the Fastrackanization process. It is the best way, in my opinion to make sure that features are fully covered and we are ok for liftoff. With Fastrackanization, automation tests must run before the feature reach production. In order to answer this requirement, we must follow two rules. First, the manual tester must write tests as soon as the feature reaches the development team. Second, those tests must be executable for automation.
A big gap exists between the way manual tests are written and the necessity to have them executable. Attempting to narrow the gap was a challenge much harder than anticipated. I was (or wished to be) somewhat of a negotiator between the two sides; However, from the manual tester eyes, being a developer, meaning being pro automation. Even though I've tried to explain that my thoughts and insights are pro tester (whether manual or automated) and not pro automation, it was really hard to convince that my intentions are pure. I only hope that one day I’ll be able to convince the manual testers that "I come in peace".
Here are the guidelines from the “Delver Summit of Automation Quest 2011”.
1. Test must be readable and easy to understand
Your grandfather should be able to can read it, understand it, explain it, and finally execute it.
In order to make sure that the test is readable we must make sure that the test case, the root, is also readable.
Name – Should explain the mechanism or flow which we are checking
Description - Usually from the name of the test case we should be able to deduct what we are going to test. Adding a description is a good way to verify if the name actually describes the test. This is a good description - The purpose of this test is to check that the liking mechanism is working.
Priority + Explanation - The explanation is very important in order to understand why the tests are registered under a specific priority. You can be sarcastic, but don’t forget it is also important to explain to the person who is reading the tests what was on your mind. For example: “I’ve decided on a priority 3 and not 1 after a conversation with the Product Manager, in which he explained that even if the test will fail we can still go live”
A cynical example – “The priority is 1, because if the liking mechanism is not working the whole site is not working! Dah!”
2. Test should check one thing
This is very easy to follow, just make sure that you are not using the word "and" in your assertion.
In order to make sure that your test is readable and check one thing I would suggest this naming convention for the test [Action] - [Result/Assert].
Name:
Click like button - post appear in the newsfeed
Actions:
Go to homepage
Enter random text
Click like button
Assert:
That the post appear in the newsfeed
3. Review the tests with automation tester; this is where the magic starts
Before we are sitting with the automation tester we must review the test case with another manual tester; that is to make sure that what we are testing makes sense.
Usually, the automation tester will suggest minor changes. If are emotions will overwhelm us, we won’t gain any benefit from the review. In order to control are emotions we must remember that the automation tester wants to automate our tests, and we want him to automate them.
The job of the automation tester is simple, write the code as readable as the tests we wrote.
As the manual tester works extremely hard in order to help automate the tests, the automation tester must work extremely hard in order to make the tests readable. The manual testers are not developers and they think differently than the automation tester. Make your code readable for grandpas!
Hopefully these guidelines will help you as they are going to help us!
Usain Bolt holds the world record in a 100 meters sprint. In 2008 he ran 9.69s. Amazingly, in 2009 he improved his record to 9.58s! This 0.11s improvement equals to the improvement from deploying in 3 weeks to deploying in less than 10 minutes. Both are unbelievably hard to achieve yet one earns great honor merely for trying. This methodology is called Continuous Deployment. Over the last month the company which I work for (Delver) is striving to widely incorporate this procedure.
Continuous Deployment is a big and radical change, to the extent that people find it difficult to believe it’s possible. People fear change therefore the transition should occur in stages. We call this transition “Fast-Track”.
Fastrackanization is a way for achieving deployment as fast as “The Lightning Bolt”.
In one of my upcoming posts I will try to explain the pros and cons of Fastrackanization. I find more cons than pros, yet believe that if this is the way to achieve Continuous Deployment than this is how it should be done.
Today I watched the movie "The Joneses". This movie is about a group of individuals which is hired to “sell” products to their neighbors. I was really surprised that this movie is not another scamming movie. They are “selling” the products by recommending them or by making other neighbors envious.
Sounds familiar? Isn’t this the whole concept behind social shopping?
Social shopping (by Wikipedia) is a method of e-commerce where shoppers' friends become involved in the shopping experience.
Social shopping attempts use technology to mimic the social interactions found in physical malls and stores.
Shopping communities bring like-minded people together to discuss, share, and shop.
Recommendation engines allow shoppers to provide advice to fellow shoppers.
Social selling (by yours truly) is a business model of some social e-commerce. If your purpose is to make money by selling products or by participating in affiliating programs than your site is a social selling site. If your purpose is pure, and you have no benefits from the social interaction of the users than your site is a social shopping site.
Understanding what you are will help you create a better product and gain the trust of your users.
“Lying” to your users and maybe to yourself, well, we all know how it is going to end.
Are you going to be the friendly neighbor or the friendly salesman?