Thursday, 19 September 2013

Testing Principles-

Testing Shows Presence of defects-
Software testing shows the presence of defects & not the absence. Like if no fish get hooked in the fisherman's hook, doesn't states that there is no fish in the pond. As a software test team,we can only reduce the probability of undiscovered defects but can not give the guaranty that the software is bug free or there will be no defect in a tested software.

Exhaustive testing is impossible-
'No amount of observations of white swans can allow the inference that all swans are white, but the observation of a single black swan is sufficient to refute that conclusion'. Same happen with software testing, after a lots of testing,we can not say that the software is bug free , we can only find the maximum possible bugs. We can not test all possible input combinations with all possible preconditions except for trivial cases.

Early testing-
First understand then focus & then start....
It is best to start testing as early as possible in a software development life cycle. The most useful benefit of this concept is that it reduces the cost of bugs & give a strong base to the software.

Defect clustering-
By 80/20 theory of Pareto Principle – 80% of the bugs caused by only 20% of the code . It means that a small number of modules contain a large no of defects in a system. These small number of module become defect prone & are also responsible for most of the operational failures.

Pesticide paradox-
We can not laugh again & again on the same joke because our mind get prepared for the end result & we lose interest Similarly,if we repeat same set of test cases again and again ,we will not find any new bug. To reduce/manage this pesticide paradox effect we need to review the old test cases regularly & to add new changes in the software & also review the area of the software to be tested to find more defects.

Testing is context dependent-
We need different tools & skill for fishing than for hunting of a lion. In same way we need do different type of testing of different application. The treatment of a banking application will be surely different than a free educational website. We will be more serious about the security of the banking application than its look but it is opposite for the free educational website.

Absence-of-errors fallacy-
We can not give a local travel bus instead of a car , to a newly married couple for sweet romantic drive. No matter both ( bus & car) are used for traveling, having working engine & covered place to sit. Ideally there is no issues in the working of a bus but it is not fulfilling the requirement of its user. Similarly the software will be of no use if it doesn't fulfill the customer's requirement though we have find & fixes almost all the possible bugs/defects.

Thanks !!! :)

Wednesday, 11 September 2013

Software Testing Concept-

Software Testing is to find out a way for- Knowing your customer's requirement completely for making a software under the budget & time defined for project to meet the customer's needs exactly.

Software Testing validates( means -are we making right software) & verifies ( means – are we making the software right) the software,for following conditions-

1- The software made, is exactly the replica of the agreement signed between customer & company for design & development.

2- The customer will be completely satisfy with the working of software at his end after implementation .

( According to IEEE-STD-610 -
Validation: The process of evaluating software during or at the end of the development process to determine whether it satisfies specified requirements.
Verification: The process of evaluating software to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. )

According to ANSI/IEEE 1059 standard, Testing can be defined as -A process of analyzing a software item to detect the differences between existing and required conditions(that is defects/bugs/errors) and to evaluate the feature of the software item.

There are many methods of software testing. Depending upon these methods,we (test team)decide that at which state of software development life cycle,we will involve software testing. But it is always considered good to involve testing as early as possible so that we can reduce the cost of bugs.

It is like a game , where test team tries to find out all the odd behaviors(The behavior which is not needed) of the software made by development team by knitting a strong trap by using different test strategies & It is Fun to knit traps for those who are having great mind & strong skills & are able to use their commonsense to it's fullest .

Thanks !!! :)

Friday, 6 September 2013

Doubts About Software Testing....?

As a new member in testing world , My mind was surrounded by thousands of questions like-

1-Why do we need software testing?
2-What if , we remove testing phase from software development model?
3-Is testing really important?
4-If The developers have already big brain & more skillful (as people thinks) then why they do mistakes?
5-Is there any guarantee that tested project will never get fail? …. & so Many......

There is a big difference b/w 'Guru Ji' & 'Paid Faculty' & unluckily I always got paid faculty whose passion was money & not the education, So it was only my experience who can help me in finding the answer of above question But it may take a long time.... :(
I'm lucky that God gave me a bug inside me who never allows me to sit idle & wait for the things so I started reading/participating Blogs, books , article ,groups , communities to find the answers..

Now as my current experience , I can summarize my answers as -

1- Software testing is the process of validating & verifying that software will work as expected & surly will satisfy the need of the customer/user. This is the end object of any software development investment. So we can say that We Need Software Testing to achieve the end objective of Software development.

2- Software testing itself removes the bugs/issues or we can say the unexpected behavior of the software so if we remove this phase we may get the software with unexpected behavior or it may also get fail .

3- Yes, Yes & Yes... testing is really important to insure that the chances of product of getting fail have been reduce to a great extend & the product will work as expected under defined terms & conditions.

4- There is no comparison b/w a developer & a tester because they work in two different ways for achieving a same goal (but as a team).The developer uses his brain & skill in creating a thing while a tester uses his brain & skill in insuring that the thing is as expected.

5- Testing shows the presence & not the absence of the bugs. So there is no guarantee that tested project will never get fail but there Is a great probability that the software tested perfectly,will not get failed under explored failing areas (till now). But if a tested product get failed under defined terms & conditions then there may be the chances of getting new ,unexplored areas of testing,which may give a new direction or idea to testing world.

These are the answers based on my experience , knowledge & research till now, I found for my questions. But testing is the process of learning. Still I’m a learner in this field & I’ll talk after some time about above question after gaining more knowledge ,more experience & after doing lots of researches.

Thanks !!! :)

Saturday, 31 August 2013

The Hot Seat....

Tick tock.. tick tock ..tick tock , I was finding my way by following H R’s shoes … I don’t wanna make eye contact with anyone while noticing every thing around me & finally I reached my work place .She gave me a pen ,paper pad & few log-in details. My managers & team gave me a formal introduction then they left me with my hot seat . It was a comfortable seat but don’t know why I was not comfortable.

Every one going here & there looking at me and I was feeling like an alien . My soul was shouting loudly inside that I’m a normal human being like you. If you wanna know something about me ,ask me but not to my team mates whom even I don’t know.

I decided that I’ll never behave like this with any new member but what about me this time :(

I was feeling so lonely & missing my friends...wait a minute....No I'm not a kid , I have done my graduation , I was never a introvert person in my collage …. what happened to me ...i asked hundreds of questions to myself within a second.

I boost up myself by analyzing my past experiences , it made me feel better.

I thought that from tomorrow I'll -

-Not hesitate in making eye contact
-Ask what I don't know
-I'll feel that I’m also the part of this organization

Within one weak , I managed all mess around me & after few weeks, I became one of them & also feel comfortable on the same seat allotted me very first day , The hot seat ;) .

Thanks !!! :)

Friday, 30 August 2013

Software Testing is easy …

Usually the people who don't know about actual testing ,say this. The main resource of this rumor is few small companies of software development. They don’t want to spent so much money on quality. The main objective of the tester in these companies is to just check that the functionality developed by software developer is working or not. No one knows their name in the market so they never concerned about brand .If customer say something they update the things,as he want.

Now both the customer and Owner of the company are happy. Customer got the software under his budget & the owner got his benefit excluding all company expenses. The customer has no visibility due to less knowledge of software that he is in loss because the product he purchased will work only for few months or few years,What after that? Who is responsible?The company owner will say that I have delivered the product as per agreement now as per your current requirements I’ll update the software at extra charge.

Now what could be the solution of this situation so that the customer feel satisfied and can run his business as he thought & told every one about that software company and the company get a positive publicity and walks towards establishing a brand name for years ??

There is just a simple one line answer – Involve 'software Testing' instead of 'checking'.

The people who say that testing is easy unknowingly talk about checking the software. If testing were involved as defined, the above problem will never comes. Testing means – delivering the quality product as per the requirements with a wide known visibility discussed with customer.

And the responsibility of ' delivering the quality product' is not an easy job with so many challenges like-

1.You can not copy & paste the test cases, test plans from any search engine like Google .
(but developers do that)
2.You can use only experience & few templates of last project
(developers can reuse the controls and function of previous project)
3.You must have the complete knowledge of the domain of project .
(Developers just need an idea about the domain)
4.You should have the knowledge of database, js errors & development platform like .net,c++ etc.
(Developers have no need to understand tester's work, they just follow the bug life cycle)
5.You are responsible from requirement analysis till satisfaction of customer.
(Developers are responsible for their particular code)
6.You must have a wide visibility about success of product.
(Few developers care about it but not all)

There is a long list but leaving it here, i'm mentioning my most favorite that is a number of issues in developer's work are acceptable but a tester must be answerable for even a single issue in his/her work. Still people say it is an easy job,If you can't be a developer or any thing else be a tester.But after reading this be careful ,you will blame yourself whole life for choosing this sector if you do not love testing and thought that it is an easy job & everyone can do it  perfectly.

Thanks !!! :)

Wednesday, 28 August 2013

Search For The Dream Job !!!!

Years ago, in my final semester of B. Tech. .. what was there in my mind!!!! My friends, my result & a JOB.....!! Job the most important thing but where, in which domain for which designation ???? Aaaah ..No Idea :(

After Completing my collage life , I decided to search a job. Just a job criteria has been decided yet. It may be in networking, software development , database administrator or a lecturer. I was a normal student & I could survive in any domain .. that was my quality but all those fields were not attached with my soul & even I didn't know about that ;) because my focus was on getting just a job.

Finally , I got a job in software development & I was happy :) .
After few months , I noticed that I’m just surviving & not enjoying my work then how I’ll be a successful person without loving my work. Again a big question mark ???????????
I decided to give sometime to myself to think about.

There, everyone was noticing something except me....That was... I was more concerned about the quality instead of creating the application & I always see the application from the user's point of view ...the most uncommon behavior of a developer !! My colleagues call me to check the pages before submitting in project & I test those pages by giving extra time with a big smile. They gave me a name 'First tester' because I test before the test team
( unofficially) ;) .

After few months I realized that I can be a better test engineer than a good developer, I love this work , I can give some unpaid extra time when I test , people around me know me for my quality and not by name or post & this was the feeling for which I was looking from my last semester.

The search ends here. I have joined as a test engineer , my dream job..... attached with my soul.

Thanks :)   !!!!

Tuesday, 27 August 2013

Let me explore the name- way2softwaretesting!!!!

When a passionate new test engineer enters in the world of software . He imagine the world which is similar to the definitions he has gone through. But what he finds a new world with customized definitions as per the comfort level of profit view, business analyst view & then developers view .

Now what to do as a fresher ,knowing something something but have no experience....

There is no other way to follow the process (way '2' instead of '1' ) silently to contribute in the project delivery on time. Sometimes the new testers try to add some quality in the process but what reply he/she gets-- Dear,you are new & have no experience .First , gain some experience & help to deliver the project on time then we will sit together and talk about quality. After delivering the project, new requirements/enhancements comes & then new dead lines & so & so on....

Now is there any loss or side effect ??

From the business point of view may ( creating a brand name) or may not be ( only to look for present or for few years).But the Major side effect of that is a 'passionate test engineer turns into just a test engineer ' & its just too sad.

It's A request to senior persons to please do not kill the passion of a beginner. Talk to him & appreciate for thinking & willing to do something about quality. May be as a beginner he/she is not right , tell him/her to improve but not to follow everything as it is without understanding. It may take your few extra minute of your schedule but it will surly be a great contribution for software word !!!

Thanks :)  !!!!