Friday, 22 March 2013

Learning to Share

Hi Readers.

I will be sharing with you the lessons I will be learning and that which will have an impact on the way we test software and from a wider perspective.
If you wish to be a guest writer, do leave a comment here. We can collate our learning 's and post it. 


If you are excelling at one thing, the actions and results of act1 will have a profound impact on the other walks of life too.  The goodness of action1 reflects on action2 and vice versa. 

The beginning: 
  • Begin by unburdening from the idea of bifurcating or saying it 's not my forte. This helps to not to be blinded and biased. 
  • Be open to get into an argument and accept a challenge. At the end of which there is always a lesson learnt. 
  • Begin to contribute now though you are not an orator or an established writer, you can eventually qualify to be one.


2 weeks after I thanked my first recruiter for my first job. (I precisely said this "Thank you for recruiting me as a Software Tester"). I chanced upon meeting with people that would help me learn more about it.
I mean to say "Am thankful for all my opportunities". They have all contributed in their own different ways.

I remember my confidence sky rocketing when I introduced a flow for testing at my first job, which was welcomed with wow by the senior members and I had felt good about. We were performing performance testing and all of us had assembled to discuss on how to go about testing the flow. We were a mix of developers and testers, it was essential to maintain a discipline because every action of each of the tester (comprising of both developers + testers) would help in contributing to capture the appropriate results. An idea can boast your products performance.

An enthralling experience at my second job. Great discipline at this place. As a newbie in the team, an eye opener kind of a day it was for me.
Had unearthed a bug (lurking for quite some time there) and there were the stalwarts in the team who had to convey this to the client. Tuesday came and we had a call with the client. The team announced the same.
The client’s questions followed:
Why was it not found earlier? (Heard this one before?)
Who found it?

These two days and the rest of the time that has elapsed since then have helped me learn, this about Software Testing and Myself.

  • Be yourself, be bold. No, you will not be penalized for doing what is expected of a tester. Yes, there could be consequences and I don't know how these consequences are derived.
  • Report every bug. Introduce this bug to your peers.
  • Ask questions (lots of them) and clear the doubts (Yes. Even if you think it is naive or if you are thinking someone else will think it is silly).

I felt a lot shy to clear my doubts while in a lecture/class until my botany teacher once told me this 'You have an unimaginable imagination'. I think he was encouraging me to ask questions. Though there are no answers. Ask.
  • Take the bug in question to a forum to discuss whether the bug is a fake or genuine.
  • Keep your head held high though its a reject.
  • Get busy testing. The end of the world came and left while you were busy unearthing bugs.
  • Encourage the new comer in the team. Do not despise.
  • Keep learning every day.
  • Welcome change.
  • Observe and Learn.
  • Observe and Unlearn.


When you set out to learn:
Carry your books, notes and your attitude with you.
Some soon presume that attitude is bad/negative! Where did this perspective stem from?
I was once told I have an attitude. I think everyone should have one.
How is it without having an attitude? Who am I without an attitude?
I am in the likelihood of knowing what attitude means to me. 
Is there any other definition of attitude? What does attitude mean to you?
  • Help others learn. Experience the joy of reading out to others.
  • Love to share your learning's. I am glad that I do not know the harmful effects of sharing the lessons learnt. By now am sure, there are none.
  • One can be strong in all areas.
  • Express yourself. 

Let the tester in you, sing songs worth a Grammy.
Let the tester in you, perform roles worth an Oscar.
Yet, if you feel caged for reasons specific. Find and meet up with someone like you. Help them and help yourself. Build your community and set yourself free.
  • Break the barriers.  
  • Bring your own ideas to the table. Never mind if its trashed.
  • Note your test ideas. They will be a treasure for you and others in another context. 

Do share your experiences and lessons learnt with others. 

Tip to every tester:
Break it, if it can be. So it can be built better. 

Thursday, 14 March 2013

Cruising into Proxy

Hi Readers. 
When I started, the intent of this post was to draw ideas upon HTTP Proxy Testing. In the process, this is what I learned and here I have shared my learning.
About HTTP Proxy testing itself, I will try to jot it down in the following write up’s and/or we can get together to learn about it! 

Thanks to Shameel Karol for sharing and being my combined study partner.
Thanks to me for re-reading, getting out of the shell and connecting with people.

-------------------Let’s go. Oh! Wait up------------------
Before we start here’s a heads up to the readers. I have framed this post in the format of Questions and Answers.

-----------------START LINE----------------

As we move ahead, we will learn about Proxy Servers.
Go grab a mug of your favorite beverage, while you wait for this page to be delivered to you.
(If this page was rendered via the Proxy Server, you would not have had the time to grab that cup of your favorite beverage)

Proxy Servers 
Q) Let’s see what is cool about the Proxy Server and why do Clients and Servers require it?
•    Protects a Client’s identity on the internet.
•    Grants access to certain resources which are blocked by another Proxy server. (How do you think you could access blocked sites like Twitter, Facebook from your company network?)
•    Educational institutions - to restrict access or impose the ban on certain sites.
•    Corporate offices - for the purpose of Security.
•    Hacking community - to ensure Anonymity.
Q) Will the message received by a user/Client forwarded to 1 or more Proxy Servers?
•    Anywhere on the internet
•    Within the Internal network with respect to a Web Server (Reverse Proxy)
•    Your Internet Service Provider (E.g., Airtel/Reliance in India) will have this information.
•    Every ISP will have different proxies/IP addresses.
•    Yes, a Proxy Server can be configured to handle different communication mediums like HTTP, HTTPS, and FTP.
•     Different Proxy Servers can handle different communication mediums; this will help in balancing the load on the Server.
Q) By being in the vicinity of a Web Server, can a Proxy Server access the resources on a Server?
•    Poor hardware configurations
•    Network traffic
•    Having one Server to cater to a wide range of IP addresses
Proxy Server has a time scheduler, which times out after a certain period of time. That‘s when a Web Server returns a timeout error.

Interesting reading this week:
Allows or disallows access to the resources on the internet. 

A) It acts as a firewall, restricting access to certain sites and users. 
Here is what they did:
They ringed the ISP (Internet Service Provider) and asked them to include certain sites and block them.
But then there are other Proxy Servers via which you can still access these blocked sites. 
Here’s what you did:
 Fired up the browser and included those Proxies in your browser’s
Tools --> Internet Options--> Connections --> LAN Settings --> Proxy Server --> ‘IP’ address of the Proxy Server and Yahoo! Opens.

Q) Now that we got a fair idea on what the Proxy Servers are. What else can they do?
A) Proxy Servers are used to:
Perform filtering and caching.

Q) Who uses it?
A) Proxy Servers are used by:

--------------------------Shifting Gears-----------------------------
--------------------- Hurrah! There‘s a Gateway ahead-----------

Q) What is a Gateway?
A) Requests received from the Client are unmodified and are sent as is to the Web Server.

-----Proceed, turning up the music and singing to the tune of your choice of music-----

A) Depends on how many Proxy Servers are configured. Different Proxy Servers can be configured for these communication mediums (HTTP, HTTPS, and FTP).

Q) A Proxy Server relays the received requests to 1 Server or many?    
A) Web Servers like Proxy Servers can be more than 1 in number. Web Servers are configured as primary, secondary, etc. This is done in order to achieve load balancing. What is it? If the primary Web Server goes down, then the request is not sent to the primary Server but the request is diverted to the secondary Web Server (Requires to be configured this way). The response is submitted to the Proxy Server and subsequently to the Client.

---------Check out the Informatory sign board ahead---------------

Q) Where is the Proxy Server located?

--------------HALT. We need to apply the reverse gear here-----------

In a reverse Proxy, the Client requesting the resource from a Web Server (whose Proxy Server is located within the internal network of a Web Server) is unaware of the presence of a Proxy Server. 

-------------Do you see a bypass ahead? ---Let’s take that-------------

Q) Why bypass Proxy Server?
A) In order to facilitate faster access to the IP addresses within a network.

Q) Why Proxy Server should not be used when connecting to the local IP addresses?
A) Bypassing the Proxy Server for local addresses will reduce the delay if any.

Q) Can the Proxy Server get the internet protocol address of a Client?

Q) Do Proxy Servers cater to all websites or to a selected group?
A)If the requested resource is accessible, then the Server responds with a response for the request. If the response to that request is blocked by a Proxy Server then the  Server sends out a restricted access message.

-------------Did you get a ticket yet for speeding? No. Let’s speed up ------

Q) How do I know which Proxy to apply if I have to ban certain sites from my home network?

Q) Will the Proxy Server mask the identity i.e., the IP address of the requestor?
A) Yes, this information is not required nor submitted to the Web Server.
(Edited) : However server logs do contain the requesters IP address for a while or longer (if logging is enabled). It is recorded that proxies carry the IP address of the client in the header. 

Q) Can the same Proxy Server be used for different protocols (HTTP, HTTPS, and FTP)?

A) No, physical presence means nothing unless the Proxy Server is configured to handle requests and responses from a Web Server.

----------------Caution------------- traffic ahead-------------------

Q) What could be the reason for the cause of overhead on a Web Server?

Q) Is Load balancing of Servers done by a Proxy Server?
A) Yes, by shifting loads to different Servers which can cater to the needs of the request.

Q) A Proxy Server sends the received requests from a Client to 1 Server or many?
A) All Web Servers are capable of handling the requests, the Web Server needs to have appropriate configurations to recognize the website/URL and serve the web pages to the Client.

Q) How are the requests and responses handled between a Client and a Server?
A) The Client request is sent to a Proxy Server. The primary Web Server receives the request and responds. If the primary Server fails to respond, the secondary Web Server is configured to act as a primary Web Server. 

----------Caution: Deviation 50 meters ahead-----------

A Proxy Server sends out the HTTP requests received from the Client Server to the Web Server, but it’s up to the Web Server to grant or refuse to render the HTTP responses/resources.

--------------------------- Halt & Proceed -----------------
Let us halt here and pick up the topic again in another post.

-------------------- Take that turn now and------------- STOP-------------

I will stop here with the intention of making this learning session interactive by connecting with you. (The above-noted points are open for discussion and we can connect to explore and learn).

After my first post on this blog here: This is what happened.

•    To start off with, I made new friends. Being connected with like-minded people is a luxury in itself.
•    I was biased about approaching people who were unapproachable (or I thought so as I had not tried enough). But when I took up to writing this post, I found that my questions remained unanswered and I had to go and look elsewhere (other than the Internet). And I found myself approaching those unapproachable people and Voila! They are only happy to share (Yes, they had questions too). This initiated them and me to go find answers to those questions.
•    I was approached to write for a tech journal.
•    I learned that:
a)     I can add value to the testing community with my writing (inspired by the other writers).
b)    It‘s not how much or less you know about a topic. It‘s about the willingness to learn and share.

Tip to every tester:
Do the unexpected, un-limit yourself! Find your own style of testing.

--------------------------FINISH LINE---------------------------

Monday, 4 March 2013

Reflections of a tester.

Here I have penned down my thoughts on my journey so far as a tester.
This is all my perspective, if found resemblance to anyone living or dead is not purely co-incidental. It simply is a ‘me too’ experience.
I had bagged a job in a company, where there was a lot of scope for learning, as test engineers me and the rest of the team who had joined, our first assignment was to evaluate test automation tools. Till this day there has been no such opportunity in the other two firms that I have worked/working with. Reasons could be many but the one on top of my mind is due to lack of faith in the employees.
Just out of college and full of confidence, many engineers are released into the world, who would want to embark on the journey of their best times ahead in the professional world. One such was I with an attitude that could not be broken easily. But after 1.5 years I was losing my attitude and I quit my first job, reason being I thought I lacked people skills. I was beginning to realize that Honesty is rarely appreciated. I was going to office to serve my notice period and a few days before I quit I was diagnosed with chicken pox and I had to prove it to my manager for him to believe it.
Next job, I was happy with the way the interview went. It made me realize that I deserved another chance to be myself at what I was going to be doing there.
3.5 years of my journey in the firm ended where I pushed myself to leave the firm because it was going great but there was no scope to express me as myself.  In one meeting I conveyed this to the CEO. Post that meeting when I was confronted by an HR with the comment: Oh how brave! I replied I was speaking the truth. It did not require courage at that point.
Moving on, my third job I did speak with the higher management regarding the concerns that many of us had, but it fell on deaf ears. The climax is a sad one. I don’t know why some of us are so stuck up on few(silly) things like ego, gender bias, like there is no tomorrow, bring him/her down to make your way up, old thoughts are enough, you can‘t do your tasks without me/my permission, I know it all, you have to obtain my approval to attend a training, we don’t have funds... this coming from a ‘big’ company, it is ok to live with problems, there is no other way out, you can’t install this feature into your brain without my knowledge, it is OK to salute someone to get the job done. Many of us have for sure heard one or more of these. And finally when you gather all your energy to bring yourself together and try again there’s the ‘who told you to do it’.
Did I Survive and how?
I stuck to being myself in spite of these tantrums. It is HARD. You will have fewer friends and fewer opportunities. More complaints and you will be the easy target and more at the receiving end.
I spent a considerable amount of time and effort to tell the others that this is NOT how it is! And it’s OK to stand up for your own self but in-vain. Most of us are tuned to one frequency, anything else is just noise.
And then I met another learner who reassured me that am headed in the right direction and to continue to tread that path in style. I was introduced to more knowledge sources and my learning in the past week included.
Concepts of web testing:
1. Fiddler (Web Debugging - Functional and security)
2. Web Traffic
3. Search Engine Optimization (Business Perspective)

What did I learn?
Testing types, techniques and tools:
a. Accessibility testing and tools used – Ability to access an application/system by the differently-abled. Wave is used to an extent where it captures a few of the features built in to the web application/system for the differently-abled/for the end user.
b. Adware – advertising ware
c. Alexa – – site information. Searching pattern of the users can be used to derive keywords for a website.
d. Bots – What are robots.txt? It’s usage. Where the file needs to be placed and how can it used for security testing.
e. Bug advocacy – Get the dev team to fix the bug if it affects the end user in any which way. How to put forth your case? help them to fix it And in the process save the cost and building credibility.
f.  Captcha – What is captcha, can it be automated, – to decode the captcha, how to remove it from the browser.
g. Checking v/s Testing
h. Client Side validations
i.  Database auto -increment – Why is this used in a DB query? Where is it applicable? If not what happens? What are the other approaches?
j.         Data generation –
k.        Ethical Hacking
l.         Fav icons
m.      File and Image types
n.        Firefox (Mozilla) and its add-ons
o.        Google Adsense, Google analytics
p.        Grub – Grand Unified BootLoader – allows the user a choice to boot one of the multiple OS.
q.        Heuristics to Test the Login Page
r.         IETF – Internet engineering task force
s.         Mind maps – Usage
t.         Moolya – About the testing community, weekend testing, talks, people.
u.        OS and its history
v.        OWASP - Open Web Application Security Project
w.       Profiling –
x.        Rapid Software Testing
y.        Section 508 –
z.         Security testing
aa.      Server requests
bb.     Server side validations
cc.      Short cut keys – Alternate keys
dd.     Spider – Crawler – Keywords used on the webpage’s to fetch the result page based on the user search criteria.
ee.     Testability – Is the version released for testing worth being tested.
ff.        W3consortium – Standardization of html code

And about: http status codes, content-type, different browsers, html tags, Google analytics, security testing, concept of ethical hacking, functional testing, installation testing, types of keyboards.

ADD ONS for Mozilla Firefox:
ColorZilla – Used to capture the pixel, a colored dot on the screen and areas on the page that which requires to be reported as a bug.
FireBug – Used in RST, unearthing client side validations, to gather if there are any comments in the source code that which needs to be excluded from the source code. (Inspect, selecting each element on the webpage to learn more on the same)
FireShot – To capture screen shots and formatting which helps reduce steps to reproduce while reporting a bug and help understand the problem.
IMacros – Used for performing functional, load and security testing.
TamperData – Alter real data before submitting the data to the server... Used for security testing and for the purpose of ethical hacking.
  Web Developer Tool

Links for reference:

Apart from this I did learn the below:
  Building credibility
  Having a vision and being an agent of change
  How a combination of tools like excel, notepad++ can be used for the purpose of checking and rapid software testing
  How to learn, remember and revise
  Implement the learning’s to tackle life and work and in general help improve life
  That there are more than one ways to solve a problem
  To start living with zeal and to never give up no matter what and
  Yes the trick on how to boot the laptop with a disobeying charger :)

A tip to every tester:
Don't be shy when it comes to admitting something you don't know. Grab every opportunity to introduce yourself to the way of unlearning and learning the new age testing approaches.