Wednesday, 6 June 2012


Email Testing : Inbox Inspection and Spam Filtering

Inbox Inspection : It is a technique using which we can see the preview of our mail in various mail service providers without physically installing all the mail service providers in our machine.
Checklist for Inbox Inspection :
-Font types and sizes are showing up correctly in all major email clients.
-Hyperlinks are getting displayed properly.
-Proper line breaks are visible in all email clients.
-None of the content of the mail is getting missed in any of the email clients.
-No extra characters and contents are getting added on their own in any email clients.

There are web application which provides such services. One of them is https://www.litmus.com .

The first thought which comes to mind is which email clients should we test on? In order to get a rough idea, this chart might help us:



Web applications like https://www.litmus.com provides us the preview of our mail content in these major email clients with very nominal charges and plans. This type of web applications are easy to use and they have tutorials too which might be helpful if you are a new to email testing. Its upon our need which type of email client we need to test, it may be the following : 

Desktop Email Clients : Apple Mail, Lotus Notes, Outlook, Thunderbird.
Mobile Email Clients : Android, Blackberry, iOS, Symbian, Windows Mobile.
Web Based Email Clients : AOL Mail, Gmail, Hotmail, Me.com, Yahoo! Mail.

We need only to check the check boxes for which email clients we want the email testing to be done. Enter the content of your email > Run the test > You simply get the preview of your email in all the email clients you have selected. We can also generate screen shots of all the previews and save them in a zip format.




We can see the preview in all email clients by clicking on the respective screen shots. The preview are initially shown in forms of thumbnails which we can view by opening it in a separate tab.



Let's say you want to view your email in BlackBerry8900, then you just need to click on the second thumbnail and you will see something like this:



This is how we can easily inspect our mails in our respective email clients easily and effectively. Its quite Simple!!

Spam Filtering : It is a technique through which various spam filters decide which content of the mail is spam alike and on the basis of that, gives score to it. If the score is safe enough then we simply receive the mail, otherwise it is blocked assuming it as a SPAM.

The various SPAM filters which are used by most of the email clients are:
  • Spam Assassin is a very popular open source spam filter. Spam filter scores out of 10. A score of below 6.3 is considered a pass ans it means its safe to have it in our inbox. This may vary at an organizational level.
  • MessageLabs is an expensive corporate server side spam filter. It has its own scoring mechanism.
  • Postini is another server-side spam filter now owned by Google. And there are many more spam filters.

Let's see some screen shots displaying the result of test run for SPAM filtering using some of the SPAM filters:




How SPAMS are filtered :
Like humans, the first thing which these spam filter does is checking the subject of the message if it contains some suspicious words. As an example, we can say that it might search for strings like
-Viagra, Porn, Buy Now, Free, Lowest Price, Click here etc.
-Flashy HTML like large fonts, blinking text, bright colors etc.

Many SPAM filters compare the amount of suspicious text to the total amount of text to make a good wise decision so that an entire 12 page papers won't gets blocked just because the filter found some suspicious words, strings and patterns.

How can we prevent our mail contents not getting marked as SPAM :
  1. Try to minimize the use of large fonts, colored fonts and ALL CAPS including in your signatures. These might raise your spam score.
  2. Try to use a bit descriptive subject so that it doesn't matches with the strings which SPAMMERS use like “very urgent” etc.
  3. Try not to send attachments with following extensions: lnk, asd, hlp, ocx, reg, bat, chm, cmd, cpl, exe, dll, vxd, pif, scr, jse, shm, shb, shs, vbe, vbs, vbx, wsf, wsh, wmf etc.But if there is really a need of sending attachments with file type as one of these, then the best way is to archieve the file in a zip format and then attach it to your mail, this will surely help your email to reach to its destination crossing all the SPAM filters.


Hope It Helps ! 
Regards,
SK Srivastava

Tuesday, 5 June 2012

Responsive Web Design and how to test RWD Online


The idea of Responsive Web Design was coined by Ethan Marcotte which implies that our web site should adjust its layout and design to fit in any device that chooses to display it. This RWD concept freed us from building separate design for mobile and desktops screens , the same design is served to all the devices including desktops, mobiles, tablets, e-readers and even gaming consoles. Using RWD technique the layout magically adapts all the devices based on the screen resolutions. The website makes use of fluid grid, fluid images and media queries etc which enable the application to automatically adjust itself according to the devices.

As the information world is now accessible everywhere and on many devices, we can't build the web design for all the devices separately, so its obvious that most of the websites today are RWD enabled. Now there must be some mechanism to test these RWD enable application, we will discuss some of them here in this article. Yes its true that nothing replaces than checking your application on the actual device but for designers and testers, some creative developers have made some online applications to get quick quick peek of the layout with various resolutions on your computer. As it is very tedious to change the browser resolutions manually and check the layout every time so these tools can be very effectively used to test the layout with ease.

There are many applications available online to test if the web design of the AUT is rendering fine on its targeted devices. Some of the applications which I found to be useful while doing Responsive Web Design testing are as follows :


All of the above applications are very easy to use where we just need to give the URL of the web site whose design we want to test on different devices with different resolutions.

- Nearly effortless, just paste in a link and scroll
- Lots of different device previews
- Nice visual representation that clients will understand
- Software UI dimensions are clearly accounted for


- Has to load several instances of each site
- No way to explore sizes that are not listed


http://quirktools.com/screenfly/ : Features
- Different sections are separated as Desktop, mobile, tablet and television
- Easy to use
- Allows scrolling under the display


http://quirktools.com/screenfly/ : Limitations
- Limited options are available
- There is no way we can add our own resolutions


http://responsive.is : Features
-
Clean, minimal interface that focuses on the content
- Only one instance of the test site is loaded
- No need to scroll, simply click on an icon to change the viewport
- Built in testing options


http://responsive.is : Limitations
- You’re limited to six generic viewports
- No specific dimensions listed
- May be trickier for clients to figure out than The Responsinator


http://responsivepx.com/ : Features
- You decide the preview dimensions
- Perfect for finding breakpoints
- Remote and local testing
- Easy to share specific test cases

http://responsivepx.com/ : Limitations
- Mostly for developers, use a different option for clients
- The toolbar UI could use some work


Now depending on our need, we can go for any of the above application to test our RWD enabled AUT to check if the layout and design are rendering fine on all devices with different resolutions.

Reference : http://designshack.net
Hope this helps !
Regards, S.K Srivastava

Tuesday, 27 December 2011

False Positives and False Negatives!


False Positives and False Negatives because of improper environment set up

Let’s begin with a real life scenario, I went to a doctor for a regular check up and I got to know that I had been suffering from ‘Cancer’. I had never imagined that I would be suffering from CANCER   I believed it just because the report said. Now my friend Mr. XXX consoled me and told me to visit the doctor again and tell him that I wanted a Recheck up. I found his idea a good way to confirm if I was really suffering from CANCER. I went to the doctor and after we were done with Recheck up, surprisingly but luckily I had no CANCER, actually there were some flaw in the instruments which generated a false result.
This is a false positive, because on account of some flaw in the instruments, I had been informed that I had CANCER.
Why called False Positive?

Expected Result as per me: I was totally fine and healthy.
Actual Result as per Doctor: I had CANCER.

As there is a deviation between the ‘Expected Result’ and ‘Actual Result’, it means there is a failure as per me.
When I asked the doctor what I would call such a fake report then he suggested me to call it  a ‘False Positive’. False because it was not as per my expectation and Positive because doctors are born to identify problems and symptoms in our body which my doctor has done by giving me a report of CANCER which he believed was true because he referred to a medical report.
Now what would be a False Negative??
A test which is marked as PASS but there still is a problem and under ideal conditions the test should FAIL.
It means if I had CANCER and the doctor left me by saying that I am fine just because of some instrumental flaw, then that would be called as a ‘False Negative’. 

Now let’s come to the Software’s False Positives and False Negatives scenarios.

We a group of software testers are testing an application ‘A’ under a set of environments say B, C, D etc.  We set up the environments properly and we started testing our AUT (Application under Test) under the desired environment. We started finding bugs and reported simultaneously. But over a week we noticed that the ‘Defect Rejection Rate’ was too high as per previous statistics. The development end people just updated their status as ‘Working Fine at Our End’. Then we planned to reset the environments and did it accordingly but with more cautions this time. Now all our own issues started to pass at our end also.

This was ‘False Positive’ in software testing. False because ‘Actual and Expected’ were not matching.  And Positive because we found the bugs at our end (Our job as a tester is to find bugs and we did it so a positive for our side).

But it is for granted that if we found some false positives then there must be some false negatives.  It means we passed some tests just because of environment set up issue. This is where the quality of software is affected. Because False positive when goes for fixing or debugging to the development guys they found it working and hence we can close the issue after proper environment set up and retesting.

But what will happen to the False Negatives that we didn’t find and hence didn’t report because it was working fine in our environment which was not properly set up?
 
                                We should always try to cross check the environment set up by us and the environment needed to test the application. Once we commit mistake at this point, it means we already degraded the quality of application because it would give rise to a lot of false positives that leads to wastage of time and money (resources)  for debugging and retesting and similar number of false negatives which are very difficult to find out, because no one notices it.

Monday, 19 December 2011

A blogging ovation to all software testers ....


 
I am an infant(just 6 months old) in the field of software testing and I called myself an infant not on the stand of 'Experience' but for my stubborn attitude which always wished to play with things around it fearless of the fact that it might break. I am like any other baby who wish to play with every toy he has been offered to and doesn't care even if the toy breaks while playing.

I have been thinking of blogging right from the day I started following some awesome blogs by James Bach, Pradeep Soundararajan, Shrini Kulkarni and many more on an occasional basis but then somehow I used to struck in between as if I have no thought in my mind.I told I play with the application and tries if it breaks, and that's I found is a part of exploratory testing.So if we keep doing things, we might encounter that it is already a part of defined piece of statement but who cares!! after all the matter of fact is 'If we are doing what we are supposed to do?"...i.e. implying our basic understanding and concept of testing to create and innovate more and more ways of doing same thing like I got SBTM(Session Based Test Management) from James Bach.

I thought of giving a standing ovation to all the champions (cannot resist myself to put some names like James Bach and Pradeep..there are many more too) of the great game of Innovation and Creativity called Software Testing but I couldn't, because for that I need to meet them and that can be possible only when I deserved it.Then I started thinking how to deserve it...some questions were crawling in my mind then:
  • Will I deserve to meet those champs if I do good testing what am I learning from them, their books and their blogs? 
  • Will I deserve to see them if I keep generating my own raw ideas and implementing them at my workplace?
These questions crawled a lot but ultimately I got my answer and that was...."Nothing in this world is free" . If we learn from someone or a community then the best way to keep it and enlarge it is to give it back to the community so that newbies like me can feel like someone is there for them who keeps stroking the keys of their keyboard just for their sake and partly for themselves too.

Now comes the appropriateness of title of this write up where I realized that it would be better to give them a blogging ovation rather than a standing ovation because blogging is the only tool that can catalyze our community to grow even further and keep blooming  in the future too. May all of us keep on doing 'Better Testing'.....sharing things up and enlarging this magic arena of testing......I hereby take an oath to do some good testing and to share in the best possible way 'the things I am learning'.....what about you??
Happy Testing
Cheers..:)