What Is Software Testing?


Getting Started

If I’m going to start a blog category on software testing, it seems that I should begin with a simple, “What is Testing?” entry to make sure we’re all on the same page.  There have been countless blog entries, books, etc, written on this topic, but here is my two cents to throw to the world.

Gretchen and Zoe wrote a great post on what a SDET is. You should definitely read it before continuing to read here, so you get a better understanding where I’m coming from.

What Is Software Testing?

I have an uncle who loves to ask me questions about things I do at work; however, my answers have to be in the form of a simple non-technical one sentence response. Since I know my uncle at one point in time will read this blog entry, let me answer his question now in the acceptable manner,

“Testing is finding bugs in the software product.”

There are so many different aspects of software testing, but at the end of the day, our job is to find bugs. There is the automation testing aspect, the regression testing aspect, the buddy-testing aspect, specification testing aspect, but all of these aspects still lead to the same result: finding bugs, whether we’re finding them ourselves, developing tools for others to find the bugs, or finding them before they are ever introduced into the product.

How to test software is where this area gets interesting and where all of us SDETs spend the majority of our time. It is in the how to test software that we start to see all of the different aspects come into play.

I remember getting ready for my campus interview (instead of a phone screen, I was interviewed on my college’s campus) and I was reading the job descriptions of a SDET, SDE, and PM. There might have been a STE position, I’m not sure. What is interesting is that I put down SDET has my last choice. I wanted to be a developer (SDE). During my interview, the interviewer asked me which aspect of the software development cycle did I find to be most critical during my work experience with WebTOP. Without even thinking about what my response was going to be, I passionately said, “Testing! By far,” and continued to describe why it was so important to test our modules before the students got them. It wasn’t until I got a callback to come to campus for an interview for an SDET position that I realized the significance of my response to the recruiter.

Knowing what I know now about what it means to be an SDET, it definitely would have been my first choice all those years ago. After reading the job description, I just had this misconception that testing was this monotonic motion of hitting the same keystrokes over and over and over again or writing those boring test plans from the CS courses. If I could tell myself 3 years ago what software testing really is, or if there is someone else in a similar situation, this is what I would have to say,

Finding bugs is the best job ever. It is a position like none I’ve ever encountered where it is your job to be super-critical (of the product you’re testing). The job never ends and you will never catch all of the bugs. It’s an extremely interesting problem space where you have this black box (or white box) staring at you, and you have to test for a certain number of scenarios (usually in the 100s for 1 given tester) times a certain number of machine configurations, setup configurations, operating system, languages, and so forth, and you will never have enough time to do this manually, let alone test everything through automation. How do you ensure a high-quality product for your users?

Although I just made up the last paragraph as I typed, I’m sure someone out there is asking some variation of this as an interview question. It is in this problem-space where SDETs get to use their creativity, development skills, and testing skills to come up with more efficient ways to test to find the most number of bugs in the shortest amount of time.

Comments (9)

  1. Adam Kinney says:

    Very nice, I’m looking forawrd to this category (column?). As a developer/tester I’m looking for ways to improve how I test our product.

  2. Stephane Rodriguez says:

    Customer environments : how often do you replicate them in-house? how do you anticipate customer bugs ?

    Replicability : how often are your machine refreshed (reghosted) ? how much your machine is really a high-end customer machine rather than a dev machine (if for automation purpose, you have the C++ run-time installed, perhaps VisualStudio, and a few other thingies, then how does this environment still qualify for testing?) ?

  3. mprchoudary says:

    fine it’s wonderful but if u add some more then it’s really wonderful.

    here what i mean is

    testing means finding of bugs in s/w ok. it also makes presence of value in the application.

    that means minimization of defects and maximization of value(user friendly ness).

  4. mprchoudary says:

    fine it’s wonderful but if u add some more then it’s really wonderful.

    here what i mean is

    testing means finding of bugs in s/w ok. it also makes presence of value in the application.

    that means minimization of defects and maximization of value(user friendly ness).

  5. JYung says:

    That’s a great article,

    By the way, i would like to add a comment too,

    testing engineers are the person who finding bugs in all possible ways (spec, software,plan,schedule). on the other point of views, it is used for ensuring the application(project) can be delivered with high value, high confident and acceptable timeline.

  6. Anand says:

    not only finding bugs but see to that it gets fixed

  7. shiva says:

    hi

    the main thing u all forgot is always the tester should have negitive thinking, then only he can get more defect and that  can be fixed as a bug

  8. considering_testing says:

    Hi,

    I came to this page accidently on info about what Software Testing is all about. However, after reading this blog, I am still not convinced that it is a fun job to do…but eveyone is different and different aspects of jobs motivate or excite people more than others.

    Testing is great because it does contribute greatly to higher quality software…but I’d rather be at the user end with the finished product creating/doing something rather than the person trying to find the bugs.

    I’ve always imagined software testing to be a bit like accountancy; very high attention to detail with a meticulous manner in checking and ensuring everything is in order. Personally I would find this fustrating and iscolating as you are forced to spend most of your time indoors speaking to same people everyday.

    Bascially, I admire those who choose this career path…confused of why they find it such a desirable job but glad that there are people out there who do enjoy it, and in that sense I wish you all the luck in the future of making software the best it can be!