Welcome to MSDN Blogs Sign in | Join | Help

Software testing in a flat world

I have been in Europe for the past 2 weeks presenting at conferences in Germany and visiting our offices in Vedbaek, Denmark and Dublin, Ireland.  When I travel to various locations I make a habit of finding children’s books about folktales and legends from that country for my young daughter because I want her to gain a broad perspective and appreciation of the world around us. I had the privilege of living (spending more than 2 years) in 4 different countries, and have travelled to many other countries around the globe. So, not only do I want to expose my daughter to diverse cultures, I also know that by the time she is an adult the world will be much smaller than it is today.

At the conference in Dusseldorf I got to spend some time talking with Theresa Lanowitz from Voke Consulting and also Dr. Victor Basili from the University of Maryland. Both had mentioned a book entitled The World is Flat by Thomas L. Friedman. So, when I saw this book in the bookstore in Copenhagen I figured this would be good for the trip back home again. I was wrong! I started reading the first chapter and could hardly put the book down. Talk about a captivating, enlightening, and thought provoking book.

In the first chapter Friedman captured my attention relating a conversation he had with Jaithirth “Jerry” Rao about accounting practices. Mr. Rao described how U.S. tax preparation (400,000 in 2005) was being outsourced to India, and the impact on accountants in the United States. Rao stated “What we have done is taken the grunt work. You know what is needed to prepare a tax return? Very little creative work. This is what will move overseas.” He also stated, “The accountant who wants to stay in business in America will be the one who focuses on designing creative, complex strategies like tax avoidance or tax sheltering…”
 
As with the accounting field, unless you have been in a cave for the past 5 years or so you should recognize a similarity between the above conversation and software testing and development. The off-shoring of software testing is real, but does that mean that I am afraid that someday my job may be outsourced as well? Perhaps it will be. But, by that time it may not be such a bad thing because I would have ‘retooled’ my skills and acquired the knowledge necessary to compete and continue to add value to my professional pursuits. Brad Silverberg once said, "The role of every Microsoft employee is to work themselves out of a job." What he meant was that we should find ways to eliminate fire drills and provide solutions so our jobs "just happen." Once we achieve that in our current role, we are then able to move on and strive to resolve larger problems. The world is in constant change, and with it I must constantly change. I know I can never rest on my laurels (whichever I think they may be) because the moment I do, the world will surely pass me by. This statement has even greater relevancy in the technology sector.

I constantly tell college students and new employees the execution of tests is ‘grunt’ work. Some of the real challenges in software testing (and encompassing the enitre development process) in the future are in:

  • Effective test design (from both black and white box perspectives)
  • Results and risk analysis
  • Defect prevention

A discussion of each of these topics could easily expand multiple posts, and I don’t want to diverge. But, these challenging areas of software testing require the ability to innovate, to design, and to critically analyze data and other information. Testers must be as technically acute as software developers, and perhaps even more creative. Testers need the ability to understand the system (hardware architecture, operating system internals, network protocols, etc.) as well as the detailed domain space (data decomposition, algorithm designs and patterns, programming language syntax and its limitations, etc). Testers must also be able to perform root cause analysis down to the code level in order to isolate patterns of defects and then be able to develop tools and influence processes to either detect defects before they get into the product through static analysis, or at least very early in the development cycle via dynamic analysis.  A good example of this at Microsoft is the static analysis tool FxCop to identify a majority of globalization type defects, followed by a tool that pseudo-localizes builds for dynamic analysis to ensure the software can be easily localized into any language version. (Within Microsoft a few teams have eliminated the need for on-site localizers creating ‘pilot’ languages (usually German and Japanese) at Redmond with zero bug bounce and resulting in more efficient localization processes and reduced costs.)

Testing is a creative process that requires a diverse set of skills and knowledge, but it is much more than simply finding bugs. Testers in a flat world will require an even broader set of skills, knowledge, creativity, and capacity to innovate than ever before.

Published Thursday, May 03, 2007 2:56 PM by I.M.Testy

Comments

# re: Software testing in a flat world

Hi Bj,

Thanks for this thought-provoking post.

Ever since I have been in the IT world, I have been a software tester. AND I find myself running after learning one or the other concept. Much of this learning was beyond sometimes-defined 'software-testing' boundary. Many a times, I myself or my friends used to wonder, do I really require to build such knowledge being a software tester? I have got the answer in the form of this post of yours. I was right! Everyday has been a learning for me of one sort or the other. Everyday, I feel that I am just a beginner and there is a long way to go! After this reassurance, I hope to continue this learning with much more passion.

I have become a regular visitor to your blog, because of three things-

1. The quality and diversity of posts

2. Your out-of-box thinking, which breaks most of the software testing myths and traditions floating around.

3. Your responsiveness to the comments posted for your posts

I look forward to your guidance and support in becoming a better tester.

Regards,

Rahul Verma.

Friday, May 04, 2007 2:35 AM by Rahul Verma

# re: Software testing in a flat world

Hi Rahul,

Thank you for your kind words. Since becoming a software tester at Microsoft in '94 I developed a strong passion for testing. Although I no longer work in the product groups at Microsoft I retain that passion, but it has been transformed into a desire to train others about our discipline, the challenges we face, and to hopefully motivate them to find solutions to some of the daily 'fire-drills' so they can move on to solve some of the bigger issues.

(By the way, I think this passion and desire is shared among other notible individuals even though sometimes our perspectives, approaches, and motivations may be different.)

We all learn new things everyday (or at least hopefully we do), and many of those things influence many aspects of our lives. Aquired knowledge can help us become more effective or more efficient in life's tasks, and sometimes completely change our views, opinions, or beliefs.

So, in that regard, we are all just beginners and we all have a long way to go.

- Bj -

Friday, May 04, 2007 6:48 AM by I.M.Testy

# re: Software testing in a flat world

BJ,

You seem to be missing one point (or it is implied here) while listing down the list of skills for "new age" tester.... You used a word - "diverse" skills - that is important.  I am expanding that word here...

"Cognitive skills like critical thinking, reasoning and analyzing abilities"

Most testers seem to operating in today’s world with the hard disk of their mind computer switched off and fall into routine way of doing things. I think in today's world of testing – “thinking” is the most ignored aspect. Focus on Programming, Business domain and other technical skills - all is good - but a tester has to be a better thinker first.  Ability to question, articulation, precise communication and in general all cognitive abilities are important ones for testing profession.

I have seen very few testers these days investing in time in improving their thinking and questioning abilities. It is key and basic skill - one has to practice to be good at it before jumping to other areas like Technical, business domain and Software engineering process. A good thinker is a good learner and can grasp things faster hence picking up on the things like system internals, code coverage, usage of various tools, programming, and root-cause analysis - will not be a big issue.

Many times I argued with people who said "You can not test this app as you do not have required domain knowledge" OR "You can not do good testing as you can program, code and speak our technical language"

I strongly protested saying – “I have faith in my thinking, analytical, cognitive skills more than anything else. I will not be handicapped by the lack of domain skills - instead I use that to my advantage to uncover hidden assumptions, problems that so_called domain experts have taken for granted. I question basic assumptions and their validity. In many ways in initial days of my testing, as I learn the domain I will be useful and then it will be just a matter of time before I become as good as any domain_expert. My thinking and analytical abilities will help to learn new things deeper and quicker”

I agree that domain skills (Technical, Business and Software process) are important but a skilled (thinking) tester would not like to use them as crutches.

Shrini

Friday, May 04, 2007 4:07 PM by Shrini

# re: Software testing in a flat world

Hi Shrini,

No, I have never overlooked the point that testers must think creatively and critically; it is tacitly implied.

Perhpas, dissimilar to your experiences, but the majority of the testers I have had the pleasure to work with, or meet at conferences all possess amazing congnition and the ability to think critically, logically, and analytically. Therefore, I do not assume that most testers are not mindless morons who simply execute 'scripted' tests against some specification, and are incredibly creative and brilliant thinkers.

Microsoft's typical interviewing practices devote a significant portion of the interview to evaluate an individual's abiility to think critically, to analyze problems, to think logically, and have the capacity to learn and apply new concepts very quickly (e.g. in the span of an interview).

Personally, I have never met anyone who has said that someone cannot test something because of a lack of domain knowledge or a lack of technical or programming skills and knowledge.

However, I (and others) have said that a lack of in-depth domain and system knowledge, and a lack of strong technical and programming skills and knowledge significantly impact a person's ability to engage in various aspects of testing such as code reviews, coverage analysis, root cause analysis, debugging, and designing and writing test automation. Thus, their overall contribution to the organization and organizational goals is limited. (Let me be crystal clear here: it is not that their contribution is not considered valuable, but in the context of what we expect from our testers their potentiality is limited.)

Your statement "A good thinker is a good learner and can grasp things faster hence picking up on the things like system internals, code coverage, usage of various tools, programming, and root-cause analysis - will not be a big issue." is not necessarily true. In fact, I have met many individuals who have been in the industry for more then 3 years who still do not know the difference between a parameter and a variable, or the difference between a menu and a drop-down list box. (You mentioned (and I agree) precise communication are important abilities.) I have met many non-programming testers who after more than 3 years have not learned to read or write code effectively, or who cannot effectively decompose data into equivalence class subsets, or model state machines. And, I have met countless testers in the industry who have never read more than one book on the subject of software testing.

(BTW...I don't think reading books on software testing inherently makes a person a better tester. I think books on software testing provide additional insight and various perspectives of practices specific to our profession and individuals who are good thinkers can assimilate that additional knowledge and information and apply it to become more effective and more efficient in thier chosen profession.)

In my experience, some 'good-thinkers' simply ignore change, or fail to learn what is required to remain competitive in a dynamic environment.

- Bj -

Saturday, May 05, 2007 2:38 AM by I.M.Testy
Anonymous comments are disabled
 
Page view tracker