Wednesday, October 23, 2013

Why I miss Airtel and hate BSNL...

When will BSNL overcome its shortcomings and come at par with its competitors like Airtel, Tata, or Reliance in providing broadband connection? Well let’s just leave reliance too, since they are equally bad.
Pros – BSNL has most widespread area coverage and feasibility
Cons – Poor service quality, Costly plans, Corrupt Linemen who only work if they get paid some amount, and sometimes even then they will not work.

The only reason I switched to BSNL was because Airtel was not available in my new locality.
Since I have mainly used Airtel (used for 3 years, then changed house in an area where feasibility was not there), I would like to compare all the Cons of BSNL which are actually strengths of Airtel.


Comparison point
Airtel
BSNL
New Connection process
Getting a new connection was so easy with Airtel; everything was done from home. All I had to do was raise a request on their website and next day I got a call and same day my documents were collected. And I got net within 3 days.
Even after 20 days, net has not been provided and getting landline connection was no easy process either.
Even though they have built a website and provided features like online lead request for new connection etc., these requests are not attended quickly. The webpages have JavaScript issues which cause failure in form submission multiple times. Finally, I had to visit a CSC and fill the form all over again. Then also, no one called for 1 week and only after going to CSC again some person was sent after 3-4 days to give the connection. That fellow only did the wiring and took money stating wire cost and work done by two people. Even then I had to call him multiple times to start the landline and net have not yet been activated.
Lineman / Service Quality
Trained Professionals.
The service people would always stick to their SLAs, spoke politely and NEVER ask for bribes. They were even ready to visit to rectify problems on times which suit the customers but were after their office hours. Biggest advantage is that all this service is free of cost from Airtel. No hidden cost.
Totally un-professional behavior. First they will work only from 10-5 from Mon-Sat, so most of us have to either take off or wait for Sat to let them in. Then also they need money just because they visited your place, irrespective of if the problem is rectified or not.
(I am thinking about filing a written complaint against them)
Lodging a Complaint for dead phone
You can raise request from Airtel mobile or any other mobile by calling customer care.
There are no customer care numbers which can be dialed from mobile. All numbers are given which can only be dialed from another BSNL landline phone.
Costly Plans
Since plans keep changing, so I will not quote any plan here. But Airtel provides same speed in almost half or three-fourth of the cost, compared to BSNL.
 
 
All in all…I just want to say that I miss you …my Airtel broadband. Next time when I switch house, I need to check the Airtel feasibility first.

Friday, February 8, 2013

Unit Testing tips for developers

Whose responsibility is it to test the code you write?
I get this question in my mind so frequently these days. Having been part of various projects, I got a chance to interact with many senior developers. Without commenting on their knowledge level, all of them had one thing in common – they did not know how to or did not want to test the code they write.

Is it too difficult to perform basic unit testing? No, it is not. People simply verify the happy path testing and release their code for testing team. They forget to include some small but crucial negative scenario, which if encountered can generate high priority defects. Then follows the meetings and several mails from managers and clients as to why code failed in Production.
So, I just thought of putting down some scenarios that should also be verified before releasing the code, especially if your code might be accessed in different browsers.

1.  Testing input fields on the form
a.  What happens when only spaces or value with leading & trailing spaces are entered – to check if you need to code the trim() logic.

b.  What happens when special symbols having special meanings for browsers are entered? Example: hash (#), apostrophe ('), ampersend (&) etc. – These become even more crucial, when these input values are used as querystring and sent through the URL. Some Browsers like Firefox will consider their special meanings and break the URL flow.

c.  When user enters the value with caps lock ON? – Sometimes, the values entered are correct, but only because their case is different than what you have coded, your logic fails.

d.  Input fields having regular expression validation like Email, must also be tested for above combinations, although these are relatively safer and less prone to bad input values.

2. Testing navigation related scenarios
If your form allows user to select some values and then navigate away and return, it becomes important that your code retains the user-selected values on return. For example: You have an online shopping website and user has selected to view items in descending order of price, from a particular city and in a given price range. When user moves from one page to other, you need to retain those preferences.

3.  Database and Screen field length Testing
Most fields on an input form are mapped to a database column. In many projects with large teams, these are coded by different individuals. Chances of a mismatch in coded values are more. Thus each field should be validated for its maxlength (maximum allowed character limit).
Now, do you think these should not be part of Unit level testing and it should be a developer’s responsibility to validate at least such scenarios instead of waiting for a Testing resource, who may have more than one project to handle, to identify such flaws in your coding.