Saturday, October 25, 2008

TEST 2008

I got invited to TEST 2008 conference recently. The conference was conducted on 15th and 16th of October 2008 at Gandhi Darshan Complex in New Delhi, India, and the invitation was extended to me by Mr. Vinay of PureConferences.

It was a privilege to be invited to this conference. The training sessions conducted by the whos who of the software testing industry as well as the panel discussions on various hot topics related to our industry were really stimulating and thought-provoking. I not only got to learn a lot about the recent advances in software testing but also came across a lot of differing viewpoints on concepts already known to us. The meetings with the heads of national testing boards (affiliated to ISTQB) of different countries, especially Sweden, Denmark and Israel, were a real pleasure. In short, it was an experience, of which I enjoyed every moment and would be eagerly waiting for the schedule for TEST 2009 to be announced.

Thanks, Vinay, for extending an invitation to me for attending this wonderful event! I look forward to attending the next session and recommend you to attend the upcoming session in 2009 as well. It will be an experience to be remembered.

Sunday, August 24, 2008

Rational Test Automation

Has any one of you ever been involved in test automation using IBM Rational suite of tools? If yes, which products did you use and why? Were there any specific reasons for choosing a particular product over other products from competitors? e.g., Why did you choose Rational over HP Mercury products? Also, what sort of issues did you face while working with Rational products or, even during their installation? And finally, what benefits are available by using Rational tools over open source tools?

Let us start discussing all these topics here. Feel free to share your opinions and experiences with me. Hopefully, our discussions will go a long way in getting resolved issues faced while using Rational tools.

To kickstart this discussion, let us talk about the latest versions of Rational tools that you have used in your assignments. Do drop me mails with your answers and, as I have already said, feel free to share any issues that you want discussed here.

Sunday, August 10, 2008

Interactive Puzzle - for Software Testers

Here is another interactive puzzle for all of you:

http://www.acutest.co.uk/acutest/interactive-puzzle

Let me know the time it takes you to solve this puzzle, as well as the approach you adopt in order to solve it.

An interesting article on solving a problem - using a tester's approach

Visit the following link:

http://eurostarcommunity.blogspot.com/2006/10/testing-puzzle-that-asks-you-identify.html

and see as to how a problem should be studied and analyzed in order to solve it using the appraoch of a testing professional.

Share with me your feelings after reading this post.

CSTE - Sample Questions

I have come across the following site while browsing the web for information related to software testing.

http://csqa.info/cste_questions_till_2006

Hope it is of help to CSTE aspirants.
Note: I have not verified the contents of this site and can not guarantee their accuracy.

Wednesday, August 6, 2008

Crossword on Software Testing

Have you ever felt bored testing software? How about a bit of relief from this tedious work? How about a little bit of fun as well as learning?

Register yourself at the following website in order to complete a challenging new crossword puzzle on software testing every week.

http://www.accenturesoftwaretestingchallenge.com/activityCornerCP.php

This activity is really enjoyable and fun!

Tuesday, August 5, 2008

How do you feel about software testing?

If software testing is not your cup of tea, why not visit the following website?

http://www.softwaretestingsucks.com/

Irrespective of whatever the title suggests, this website has some information about software testing you might want to go through. However, there is a lighter side also. Visit the 'Testing Jokes' section when you get tired of the serious stuff. I really liked this section. Enjoy!

Testing Strategies (Approaches)

The test approach (or strategy) to be followed for a particular testing assignment needs to be decided during the planning phase and should be finalized after considering all factors which may affect its selection (including risks, business requirements, regulatory requirements, testing objectives and, availability of desired skills). It is a strong determinant of success in the testing effort.

One factor used for classification of different test approaches is based on the relative time at which a majority of the test design work is started. Primarily, the approaches can be classified into preventive approaches vs. reactive approaches. As the names suggest, a preventive approach involves early analysis of the test basis and attempts to minimize the number of errors slipping on to the test execution phase whereas a reactive approach concentrates on detection of defects after the sytem or software has already been produced.

Following are the major test strategies (along with brief descriptions), which are commonly followed in software testing assignments. Remember that there is no best approach and that it might be advisable to use a combination of different test appraoches:

(1) Analytical Approach: This test approach is based on an analysis of some factor, which strongly effects the testing environment, e.g., Requirements might be analyzed in order to design a test approach such that the most important requirements get tested first and test cases for other requirements get designed / executed later. Another exercise commonly performed is Risk Analysis, where tests are designed and proritized such that the critical risks get eliminated at the earliest possible time. This approach is an example of preventive test approach, since we are analyzing and prioritizing test cases early on, based on an analysis of some factor contributing to the testing environment.

(2) Model-based approach: Here, the tests are designed based on some mathematical or stochastic (statistical) model of the object functionality. As an example, if a model predicts the failure rates of a particular system (or software) under some conditions, and the failure rate of our product is as stipulated by the model under the specified conditions, then our product is assumed to be working fine. This approach pays emphasis on identification and selection of the appropriate model during the early stages of SDLC and is a preventive test approach.

(3) Methodical Approach: This test approach depends heavily upon following a pre-determined method to perform testing. The method used can vary widely, ranging from adherence to certain checklists to error guessing and experience-based approaches. Here, tests are designed, executed and implemented in accordance with the selected method. Actual testing effort may get started early on or later during the SDLC when following this testing approach.

(4) Process-or Standard-compliant Approach: As the name suggests, this testing approach recommends designing and creation of test assets based on some externally developed industry standard, e.g., Tests could be designed based on IEEE 829 standards. As an alternative, one of the agile methodologies, such as Xtreme Programming (XP), might be adopted. Again, actual testing effort might get started early on or later during the SDLC when this approach is selected.

(5) Dynamic (Heuristic) Approach: This test approach involves performing heuristic testing. Exploratory testing is a good example of the type of testing performed, when this approach is followed. Here, the tests are designed and executed simultaneously, and hence, it is a reactive test approach.

(6) Consultative Approach: This test approach advocates dependency on the advice of business domain and/or technical experts outside the test team in order to drive test coverage and design. Testing here may be dictated by the end users of the system or else it may be directed by some outside technical experts (e.g., experts on security testing etc.).

(7) Regression-averse Approach: This approach recommends designing tests such that regression defects get detected at the earliest. This may involve extensive automation of functional regression tests as well as re-use of existing test material.

All these test strategies should be considered and the best one selected for any given situation, based on the circumstances in which a testing project is getting executed.

Brainbench Certification in Software Testing

This is another certification exam that is really good. Consiting of a total of 40 questions, it tests your knowledge of various software testing concepts in a holistic manner. I really recommend that you try appearing in this exam as well. As of now, this exam is priced at $49.95. However, keep a look on the website and you will encounter some promotional offer when you can appear in it free of cost. (Brainbench offers some of its certification exams free of cost as a promotional measure at different times of the year).

I am also Brainbench certified in Software Testing and would like to let you know that the experience of appearing in this exam itself is unique (it is an online exam and you can take it from the comfort of your home). Details are available at: http://www.brainbench.com. Please let me know if there are any queries.

Software Testing Videos

I have added some videos on software testing to my blog. Please make sure that you go through them as soon as you get a chance, in order to familiarize yourself with the best practices in our discipline. These videos have been delivered by the experts in software testing and contain really useful information for practitioners of our field. Besides, they will force you to think over the software testing practices being followed by you and improve upon the same. Do let me know if there is any particular topic you would like to learn more about.

Difference between ISEB and ISTQB certification

I have received a query regarding the difference between ISEB and ISTQB certification. I will point you to the authentic source of this information, so that you do not get confused or misled by anyone else.

Please visit the following link:
http://www.bcs.org/server.php?show=ConWebDoc.3324&viewPage=1

If there are any more queries, please share them with me.

Thursday, July 24, 2008

FL Exam - Basic Info

Today, I shall be talking about the basic information for ISTQB Foundation Level exam. Again, this information is for the exam conducted by Indian Testing Board. It might be different for exams conducted by other national testing boards. Please refer to the websites of your respective national testing boards for details.

Target Audience: ISTQB Foundation Level exam aims to evaluate the understanding of basic software testing concepts gained by an individual. It helps everyone use a common terminology for discussing software testing issues and is useful for all team members of a software project. It is equally useful for developers, testers, project leads as well as project managers.

Examination Format: In India, the Foundation Level exam consists of 40 multiple-choice questions. Each question is worth 1 point and you need to answer at least 26 questions correctly in order to successfully clear the exam. This is a closed book exam, meaning you are not allowed to take along with you any books or other study material with you in the examination hall. Also, the candidates need to physically visit the examination center in order to appear in the exam. The exam is not administered online presently. A total of 90 minutes are available to answer all the questions. However, one good news is that there is no negative marking. So, make sure that you do not leave any question unanswered, even if you are not sure of the correct answer.

Examination Fees: The examination fees for general candidates is Rs 4000/-. However, for candidates from accredited training institutes or employees of affiliated companies, the fees is Rs 3500/- (please look at my previous posting for details). Once deposited, the fees is non-refundable. However, you can request for a change in the examination date or venue at least one month prior to the scheduled examination date.

Re-examination Fees: You need to pay Rs 2500/- for re-appearing in the FL exam, if you are not able to clear it in the first attempt.

Results: Examination results are usually available within 2 weeks. All candidates, who clear the exam successfully, should receive their certificates within 8 weeks.

Validity: ISTQB Foundation Level certification is valid for life.

Difficulty Level: Based on my experience as well as that of my friends, I can say that the exam is not really tough. Even though you might be coming across a number of posts in which aspirants are looking for study material and books for the FL exam, I sincerely believe that a thorough study of the syllabus and glossary of terms available at the ITB website is enough to help you successfully attain this certification. However, experience always helps. Even though no experience is officially required to be eligible for sitting in the FL exam, I would recommend that you work for at least 6 months in a software testing role before appearing in this exam. This way, you will be able to relate the concepts that you study, with your experiences in real life as well as increase your chances of success in the exam.

Wednesday, July 23, 2008

Registration for ISTQB Foundation Level Exam

The coming ISTQB Foundation Level exam is scheduled to be conducted on 24th of August, 2008 at major centers in India. Registration for this exam is in progress. The process for registration is described on the 'Registration' tab of the FAQ page on Indian Testing Board's website (http://208.116.30.129/faq.htm).

Primarily, the process is as follows:


(1) You need to fill in and submit the online enrollment form available at: http://208.116.30.129/enrollment_form.php.
(2) You will receive a confirmation e-mail containing further instructions.
(3) As per instructions, you need to send a DD for specified amount in favour of INDIAN TESTING BOARD, payable at 'NOIDA', to the Noida or Bangalore Office of Indian Testing Board by postal mail (or through courier). The addresses of these offices are available at:
http://208.116.30.129/contact.htm. (As per a recent notice on ITB's website, they are experiencing problems accepting registered mails. Hence, you are advised to send across the DD through courier / speed post only).
(4) You will be informed of the timing and procedure of the examination. Keep this information handy for quick reference.

Note: The amount of fees to be paid for Foundation Level exam is Rs 4000/- for general candidates. However, 2 types of discounts are available: The first type of discount is given to candidates who have attended training from an accredited training provider. This discount is given when the training provider forwards the names of the candidates. These candidates pay Rs. 3500/- instead of Rs. 4000/-. The second type of discount is available to the companies that tie up with ITB to get their testing staff certified. Candidates from these companies also pay Rs. 3500/- instead of Rs. 4000/-. A list of these companies is available at:
http://208.116.30.129/affiliates.htm.

Once the registration process is complete, you need to appear in the exam on the date and time provided to you. Make sure that you carry along your photo identity card, when you appear for the exam.

In case of any queries while registering for the exam, you may fill in and submit the online enquiry form available at:
http://208.116.30.129/enquiry.php. You may also request me for help with any query and I shall try to get your query resolved at the earliest as well.

Tuesday, July 22, 2008

ISTQB Certification

ISTQB (International Software Testing Qualifications Board), responsible for conducting the ISTQB certification exam, was officially founded in Edinburgh in November 2002 and is represented by various national testing boards in different member countries. Presently (as of March 2008), 38 national testing boards are members of ISTQB and are responsible for conducting the certification exam in their respective countries. Indian Testing Board (ITB) is the ISTQB approved national board for India.

ISTQB certification currently consists of 2 levels of certification, with the 3rd level currently under planning. The 2 levels of examination currently operational are the (a) Foundation Level, and, (b) Advanced Level. The syllabi for exams at these levels are available at the websites of ISTQB http://www.istqb.org/download.htm) as well as Indian Testing Board (http://208.116.30.129/syllabi.htm). Besides, the standard glossary of terms used in software testing available at both these sites also forms an important component of the material to be understood in order to prepare effectively for these exams.

While the Foundation Level certification requires the aspirants to successfully qualify in a single exam, the Advanced Level certification consists of 3 exams. These are (a) Functional Tester, (b) Technical Tester, and (c) Test Manager. Successfully qualifying in either of these 3 exams makes the candidate eligible for a certificate for the corresponding specialization. However, qualifying in all the 3 exams at the Advanced Level makes the candidate eligible for an additional certificate (the ISTQB Certified Tester Advanced Level certificate). Also, successfully qualifying in the FL exam makes a candidate eligible to use the CTFL (Certified Tester Foundation Level) suffix with his/her name while qualifying at the Advanced Level makes one eligible for using the CTAL (Certified Tester Advanced Level) suffix with his/her name. Besides, successful candidates can download and use corresponding logos. While the Foundation Level certificate is valid for life, the validity of Advanced Level certification in India is 3 years. The final level of certification still under planning is the Expert Level certification. Details about this level are likely to be made known in 2009.

The next ISTQB Foundation Level exam is planned to be conducted at a majority of centers in India on August 24, 2008. Registration for this exam is already in progress. Details are available at the Indian Testing Board's website. I shall talk about this procedure in my next post.

Monday, May 26, 2008

Testing Certifications

I have seen a recent craze amongst software professionals to get certified. Seems as if everyone in the industry wants to prove his/her competitiveness by earning some relevant certification. Both the development and testing professionals are in a race to get certified. While the MCP certification is a valuable add-on to the resume of a developer and a DBA (working on Oracle) prefers being an OCP, software testing professionals are going in for CSTE or ISTQB certifications. While the former is an established certification and is highly valued specially in the Americas, ISTQB is rapidly gaining recognition and is already a much sought-after certification in India. Keeping this trend in mind, I am going to start posting regular posts to help software testers attain ISTQB certification. I am myself an Advanced Level certified tester and hope that my knowledge and experience in this industry will be of help to profesionals aspiring to attain this certification.

Tuesday, January 29, 2008

Importance of Software Testing

Welcome back, friends!

I was planning to write this introductory blog earlier but got bogged down by various pressing issues. Anyways, I am here and shall try to post a new blog quite frequently now onwards.

Today, we shall get introduced to testing and understand the significance of this activity.
Please feel free to post your questions. Also, I shall be eager to receive your bouquets/brickbats. So, let's go ....

Let us start with an understanding of the term 'Testing'. What does testing really mean?
What do we mean when we say that we need to test something? How does a person test something or someone?

The first thing that comes to my mind when I think of testing is the numerous tests / exams that I have appeared in throughout my school and college years. Are those tests related in any manner to the 'Testing' that we are talking about? Think over it! My answer is a resounding 'Yes'. Those exams were meant to test our understanding of the material taught to us during the corresponding period and helped the examiner evaluate if we were fit to be promoted to the next grade.

Let us now think of something else. What process do you follow when you purchase a
high-value item (say a laptop or a plasma TV)? And, what do you do when you purchase an everyday item (say, a pencil or a toothbrush)? You might be inclined to say that you do not follow any process in either case. But think over it again! When going in for purchase of a laptop, don't u first make sure that the item is in a perfect working condition? Don't you ask the shopkeeper to first verify proper functionality before packing it for you? This is an example of a UAT (User Acceptance Test) that we shall talk about later. Even though the laptop (as well as all of its components) has been tested many times over in the labs where it was manufactured, we still make sure that the product works in front of our eyes before agreeing to purchase it. Now, think about the steps that you follow when you purchase a pencil. Do you really follow any steps in this case? I, for one, don't. As long as the shopkeeper provides me the pencil that I have asked for, I really do not care much. Why this difference in behavior? Simply because in this case, we do not consider testing the pencil (e.g., sharpening it and writing with it) worthwhile enough. We accept the risk that the pencil might turn out to be a defective piece and that we might have to forego the money spent on purchasing it. This behavior is an example of Risk Management. We shall also talk about it when we discuss software test management.

So now we understand that testing is as much a part of our everyday life as it is a specialized software engineering activity. The only difference between the two is that the testing conducted in everyday life is performed in an ad-hoc manner and usually does not get documented. On the other hand, testing of any software product is well-documented as well as planned for.

Let us now understand as to why software testing is required. Why can we just not avoid it? Would it not be nice if we did not have to test any software at all? Well, let us see!
Firstly, the software development team is also composed of human beings and 'To err is
human', thus any software product, irrespective of the competence level of the team developing it, can not be assumed to be free of defects. In order to remove those defects, we first need to identify them, right? That is exactly why testing is required. If we miss out on defects in any product (Always remember that testing can never ensure the absence of defects), what would happen? Would it have really serious consequences? Let us see!

Have you even seen anyone undergoing treatment for cancer? What happens there? A controlled amount of radiation is focused on the cancerous tissue in order to burn out the malignant cells. Right? What would happen if the amount of radiation is too huge? Healthy tissues in the body of the patient might get destroyed as well. On the other hand, what would happen if the amount of radiation is too less? The malignant cells might not get destroyed fully, thus not fully curing the patient of the disease. Let us consider another example. Have you ever traveled by air? How does the pilot charter the aircraft through dense clouds and high mountains? He is guided in these activities by the instrument panel in front of him. Further, these instruments are controlled by complex software embedded in them. So, we know that there are a variety of applications, which are controlled through software, and whose improper functioning can lead to huge losses of life/property. It is precisely to prevent losses like these that it is mandatory to test software. Let us consider another example. How about a banking product? Let us suppose that a bank is supposed to pay interest @ 5% per annum to all its customers, who have opened savings accounts with it. Now, what would happen if this software was not tested and the interest rate was inadvertently specified to be 50% per annum? Individual account holders might make a fortune for a while but the bank will soon go bankrupt. Now, consider the reverse case. What would happen if the interest rate got stored as 0.5% per annum? In this case, individual customers will lose initially and the bank might not even know about this bug till someone points it out. On the basis of all these examples, we can easily understand the significance of software testing. In fact, the importance of software testing can not be overemphasized.

That's it for the day, friends! Do let me have your feedback!

Friday, January 11, 2008

A Warm Welcome to all of you!

Dear Friends,

This is Raja, a new entrant in the world of blogging!

Software testing has been my area of interest since times immemorial (I don't remember how long I have been fascinated by this field of work). I really enjoy testing different applications and have now thought of sharing my knowledge and experience with the world through this blog.

Let us first ponder over what really is testing. Does it refer to verification of what an entity should do or should it verify if a thing is correctly doing whatever it is doing (irrespective of what it was supposed to do)? Seems connected to the concepts of 'Verification' and 'Validation', terms which appear so often in interviews for software testing pros, right? Well, they are! Let us discuss these and all others terms used in our world (the world of software testing, of course) here. I would love to discuss all types of testing .... functional testing, performance testing, security testing, database testing etc. etc. ... and share my views with all of you. I would be more than delighted to hear back from you, all bouquets and brickbats are welcome! Developers are also welcome to share their expertise / knowledge with their testing brethren here.

I have also been involved in managing many testing projects and so would also like to have some discussion on the process of test management. In addition, let us discuss about various certification options available to software testers and their merits as well as demerits. In short, I am going to write about anything and everything related to testing and you are welcome to commend / criticize me.

Hope to receive support from all of you!

Raja