Sustained excellence is possible....

Following is an article which I got in mail .. I liked it so I am sharing it with all....


Excellence is self-explanatory. Where there is excellence, explanations are not required. Where explanations are required, rarely do you find excellence.


What's okay is okay and what's not okay is not okay. However, we have a tendency to explain, justify, reason and rationalise what's not okay as okay. Hold it. Once you develop this tendency of using your mind to make what's not okay look okay, you press your own self-destruction button. The mind that gets trained into justifying lack of excellence learns to settle for compromises - it learns to live with compromises.


If you have scored 88 out of 100, the fact remains that you have fallen short by 12. How much ever you explain, you've still fallen short by 12. Communication cannot make up for the 12. You are attempting to explain as though 88 is actually 100, though you yourself know that 88 is only 88.


The saying goes - a lie told a thousand times becomes the truth. To others, it may appear to be the truth. You can do your best to make it look like the truth, but you will always know that it is a lie. Even when I am not comfortable with myself, I can tell the world - "I am on Top of the World." But I know the truth of the matter. For how long can you make a cat look like a lion? You can neither hide the fact from yourself, nor hide yourself from the fact. What is short is short. Explanations can never make up for the shortfall.


If your target was 40 lakhs and you did only 36 lakhs, then you've fallen short of your target. If the delivery was to be made by Monday but it happened only on Friday, then you have failed in your commitment. If your appointment was for 11.00 and you turned up only at 11.15, then you are late. Much after you have explained everything in every possible way, the fact remains that you didn't achieve your target, that you failed in your commitment and that you didn't respect punctuality.


Of course, it is soothing to justify non-performance. It acts as a psychological pain balm. It relieves you from the burden of hurt. However, self-consolation for lack of excellence will hurt you very badly in life. Time and again, it will make you fall short of the mark and you will eventually fall short of what you are capable of. Wake up. What's not okay is not okay. 6.01 is not 6.00; Monday alone is Monday.


'Zero defect' is possible. Precision is possible. Sustained excellence is possible. It all starts with the attitude of refusing to settle for anything but the best. It's a funny thing about life that if you refuse to settle for anything but the best, it often gives it to you. Lack of excellence should hurt. That which hurts, instructs. That which instructs, creates. Get created. Create excellence.




Communication with developer

Better communication is an ability which the tester should possess to understand the product better and hence achieve a smoother release. Simple formula is to 'Ask a lot of questions'. How tight the situation be. One has to clear all doubts about the functionality before proceeding with the testing.
If we lack to understand the functionality or what the product is supposed to do, in an appropriate manner, it will result in catastrophe.
I would like to narrate an incident which happened during the initial stage of my career..
I tested the functionality with so much enthusiasm that, within 5 mins I got 5 bugs in the application.. :-). I stopped the testing for a while and I thought,something is fishy here.. either the developer is a dumbass or I am extra genius. Bugs which I caught were not the one which needed a genius, those we simple..too simple.

At the initial stage of my career I did not have the courage to judge the developer. I stopped my work there. I took a notebook and pencil, and went directly to the developer. He explained me the whole functionality. There it turned out that most of the bugs( as per my judgment) were features :-).

Did you see..what brings communication to a process...to the methodology of testing.


Should code be made visible to the tester ?

This question arose to me when I was suffering very badly, thinking of the influence of a particular task to the application. I felt every time that these test cases are not sufficient..I have to create more test cases.After testing those, again the same kind of feeling ..(the term 'deja vu' is suitable :-) )
I feel, "Yes, why not!". Now to explain why I strongly support we need to consider all the ill-affect of not giving access of the code to the tester.
Tester's life revolves around the test cases. Let it be any testing type..functionality, regression, re-testing so on..
If we want to cover all the details of a particular test we will have infinite number of testcases.
Even if you are very much experienced in that application you are prone to waste some amount of extra time for testing a particular change, because you are unaware where the code is changed, what are the sections getting affected by this change, and hence clueless about what to test which results in the 'Deja vu' experience I explained above.
Now lets say, the code is accessible to the tester and the tester can view the code change, if it is in a particular function you can search the entire codebase for that function call and check out where all it is getting called and depending upon the tester can plan how to proceed the testing. The severity of the task or the change is directly proportional to the number of times that particular function is getting called.
As the code is visible to tester a better, effective, cleaner and precise the test cases become, which leads to saving of lot of time and frustration of the tester.
Now there is a confusion here..is this a whitebox testing type ??
That depends on the perspective of the tester. If he is interested in the internal business logic and more concentrated on the naming or say the coding conventions or the loops and conditions involved in the code he is doing white box testing.
If the tester is satisfied by the boundary of the change associated with the task or the scope of the code change and creates his testcases keeping them into consideration. Then what the tester does is a blackbox testing.


Depth of Testing

Testing is more about heuristics than its about the computer science.A testing professional has to keep his eyes and ears open.
Complete testing is not something which you can gauge with some tools and you can tell "Yeah, I will complete it in a week". Hah...no way..what you can do is, you can judge the test cases and tell, what test cases can be ignored or 'not be carried out or documented'.But for that you need experience, shrewdness and better understanding of the software application you are testing.

When we consider the software application, you cannot tell what exactly is going on, what it does, whom is it for. Now don't tell me you can get the details from the requirement analysis, I would say no! you cannot get the exactness of the application. You need to derive from the requirement document consulting with the clients and the developers. You, as a tester need to churn out the details by tuning the minds of the stakeholders, those who are associated with the application.



As I am a certified tester(CSTE), people have a hell lot of queries regarding the certifications...at my work place, my friend circle and so and so ..So i thought of creating an FAQ for all the aspiring CSTE candidates..


Q. What is CSTE?

A. CSTE is Certified Software Tester. This is a globally approved certification administered by Quality Assurance Institute, USA (QAI) and is mainly intended for the Software Quality Professionals.

Q. What is the eligibility Criteria for CSTE Certification?

A. To qualify for candidacy, each applicant must meet one of three prerequisites:

1. A bachelor’s degree from an accredited college-level institution,

2. An associate’s degree and two years of experience in the information services field, or

3. Six years of experience in the information services field.

The application requires the applicant to provide details supporting the option selected.

No formal proof of education or employment is required at the time of application; however, you may later receive a request for verification of education, or verification of employment, or both, depending upon a compliance sample selected according to program criteria. If selected for verification, such verification must be supplied to the program prior to sitting for any necessary examinations.

Q. What is the Syllabus for this certification?

A. Syllabus for CSTE changes as per the industry demand and is not consistent. This syllabus is updated in CSTE CBOK (Common Body Of Knowledge).

Q. What is the exam format?

A. The four and a half-hour exam is made up of four parts; two parts multiple-choice and two parts essay and short answer. You will have forty-five minutes to complete each of the multiple-choice sections and one hour and fifteen minutes to complete each of the essay and short answer sections. There is a ten-minute break between each part.

Q. What is the passing Criteria for CSTE?

A. Scoring 75% individually in all the four papers.

Q. Is CSTE study material available easily?

A. All applicants will receive a CD of the Guide to the Common Body of Knowledge. Bibliographic references are included in the applicable Body of Knowledge description for information purposes. Candidates are expected to know and pursue other and more recent resources.

Q. Does one have to attend any preliminary courses before giving this certification exam?

A. The examination presumes that you have had a broad exposure to quality practices and have reviewed and read the current literature available on quality management in their particular area. The Quality Assurance Institute, as administrator of Software Certifications, does not infer that attending specific courses or programs will significantly enhance the your chances of passing the examination.

If you have extensive experience in the quality practices described in the knowledge domains of the Body of Knowledge (CBOK), the examination should not be difficult.

Q. Would CSTE be valuable if I am a manager?

A. Yes, CSTE CBOK contains domains, which are building blocks that contribute towards good project management since they address fundamental issues of sound quality assurance and testing practices, and other significant skills needed for Project Managers.

Q. I am proficient enough in my work, then why is the need of Certification?

A. Acquiring the designation of Certified Software Tester (CSTE) indicates a professional level of competence in the principles and practices of quality control in the IT profession. There is a set of code of ethics, which QAI expects the CSTE professional to follow.

Q. What are the benefits of becoming a CSTE?

A. Following are the benefits of being certified.

  1. For the Individual
  • CSTE certification is proof that you've mastered a basic skill set recognized worldwide in the Testing arena.
  • CSTE certification helps to achieve more rapid career advancement.
  • Results in greater acceptance in the role of an advisor to upper management.
  • Assists individuals in improving and enhancing their organization's software testing programs.
  • Motivates personnel having software-testing responsibilities to maintain their professional competency.

  1. For the Organization
  • CSTE is expected to be a 'change agent', someone who can change the culture and work habits of individuals to make quality in software testing happen.
  • Aids organizations in selecting and promoting qualified individuals
  • Demonstrates an individual's willingness to improve professionally.
  • Defines the tasks (skill domains) associated with software testing duties in order to evaluate skill mastery.
  • Acknowledges attainment of an acceptable standard of professional competency

Q. What is the fee for Certification?

A. The initial fee for the CSTE and CSQA is $350.00 (USD); this includes the application processing fee, administration fee, your initial sitting fee and a CD of the Guide to the Common Body of Knowledge. If you sit for the exam the first time and do not receive passing marks, there is an additional fee of $100.00 (USD) for each retake (limit two).

The above-mentioned fees can differ. It is requested to check the following link for any updates in fee structure. http://www.softwarecertifications.org/qai_apply.htm - 003

Q. What is the validity period of CSTE Certification?

A. Validity of the Certification is 3 years.

Q. What I have to do for extending the validity of CSTE Certification?

A. You can extend your CSTE status through Recertification, either by gaining Continuing Professional Education (CPE) credits of 120 points in 3 years or by taking a Recertification Examination.

Q. I want to know more about CSTE Certification?

A. You can visit http://www.softwarecertifications.org/ .


Automation Testing.

Automation Testing is the use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions. Commonly, test automation involves automating a manual process already in place that uses a formalized testing process.

Over the past few years, tools that help programmers quickly create applications with graphical user interfaces have dramatically improved programmer productivity. This has increased the pressure on testers, who are often perceived as bottlenecks to the delivery of software products. Testers are being asked to test more and more code in less and less time. Test automation is one way to do this, as manual testing is time consuming. As and when different versions of software are released, the new features will have to be tested manually time and again. But, now there are tools available that help the testers in the automation of the GUI which reduce the test time as well as the cost, other test automation tools support execution of performance tests.

Many test automation tools provide record and playback features that allow users to record interactively user actions and replay it back any number of times, comparing actual results to those expected. However, reliance on these features poses major reliability and maintainability problems. Most successful automators use a software engineering approach, and as such most serious test automation is undertaken by people with development experience.

A growing trend in software development is to use testing frameworks such as the xUnit frameworks (for example, JUnit and NUnit) which allow the code to conduct unit tests to determine whether various sections of the code are acting as expected in various circumstances. Test cases describe tests that need to be run on the program to verify that the program runs as expected. All three aspects of testing can be automated.

Another important aspect of test automation is the idea of partial test automation, or automating parts but not all of the software testing process. If, for example, an oracle cannot reasonably be created, or if fully automated tests would be too difficult to maintain, then a software tools engineer can instead create testing tools to help human testers perform their jobs more efficiently. Testing tools can help automate tasks such as product installation, test data creation, GUI interaction, problem detection (consider parsing or polling agents equipped with oracles), defect logging, etc., without necessarily automating tests in an end-to-end fashion.

Disadvantages of Automation:

Test automation is expensive and it is an addition, not a replacement, to manual testing. It can be made cost-effective in the longer term though, especially in regression testing. One way to generate test cases automatically is model-based testing where a model of the system is used for test case generation, but research continues into a variety of methodologies for doing so.


Soak Testing.

So many types of testing!!...and whats now.. Soak testing?? Some one asked me this question during an Interview..I was like "Which testing???" :-)

Soak Testing is a type of testing where we run the application or system at high level of load for prolonged period of time. This type of testing is needed to verify the memory leaks* in the application. Load testing and stress testing may not find such issues because the time duration for stress and load testing is very less.

*Memory leaks: It is the accumulation of the memory resource by the application and not releasing it after its use. This may result in breaking down of the application.


Regression Testing

There is always a risk associated with the change introduced to an application, to reduce this risk, regression testing(RT) should be carried out during every stages of testing, after a functional change.

Today I came across a quote regarding RT...it was funny but there is a great truth in it..
"Regression testing is to keep a check that your software is not moving a step backward" ......
How true...
To sum it up, "technically",
Regression Testing is a quality control technique by which tester ensures that changes done in the application or software complies with the requirements and the introduced change doesn't inadvertently affect the other parts of the application.


software testing!! what is that ???

hmm... name sounds nice .."Software Testing"...what is it exactly??

Lets define it.

Software Testing is a disciplined field which deals with the validating of the software in a controlled environment for normal and abnormal conditions.

My first blog!

I was curious about this "blogging thing" till I started my own blogs...

Today I started this blog which will deal with software testing, which I am professionally into. I want to share my views with the world.