TrainingConferencesAbout UsContact UsAdvertiseSQE.comRSS Feed

StickyMinds.com: brain food for building better software

Log In
 Clarify Your Search Criteria

Tips on Using Our Search Feature(s)
 
StickyMinds.com Home
ResourcesTopicsCommunityPowerPassBlogs
Home  >  Detail: Start a Revolution

Viewing 2-11 of 1769     Collapse Descriptions

Sort by:   Date Posted  |  Title  |  Content Type


This is Free Content ARTICLE: Writing Plugins for RDesktop
Author(s): Sergey Yakimenko
Summary: This article is written mostly for Linux developers in which the author gives a method for writing out-of-process plugins so that its code may stay closed to open source software.

Date Posted: Feb 5, 2010

This is Free Content Original
COLUMN: Negative Positive
Author(s): Fiona Charles
Summary: Testers who point out project risks are often perceived as "negative" thinkers. In this week's column, software test consultant Fiona Charles (an optimist by nature and a pessimist by trade) writes about how a culture of unthinking optimism pervades our organizations and our society, and describes some of its detrimental effects on software projects.

Date Posted: Feb 5, 2010
Comments on this contentComments: 3

This is Free Content Original
COLUMN: Empowering Self Organization and Energizing Project Planning with the Commander's Intent
Author(s): George Schlitz/Giora Morein
Summary: Things change, and when they do, it's best to be ready to change with them. The best plans are doomed to fail if they aren't malleable. In this column, George Schlitz and Giora Morein take a look at the military concept of "Commander's Intent" and how it can apply to non-military project planning.

Date Posted: Jan 29, 2010

This is Free Content ARTICLE: Industry QA/Test Estimation Approaches
Author(s): Ranjit Shewale
Summary: This presentation discusses some estimation approaches for software QA/testing used by practitioners based on the research in software engineering and actual experience.

Date Posted: Jan 29, 2010

This is Free Content ARTICLE: How to Forbid Unauthorized Access to Window's Clipboard
Author(s): Vladimir Shamray
Summary: Though Microsoft's Office Clipboard is one of the fundamental parts of the Windows operating system, there is little information about how it works, especially in the low level. In this article, Vladimir explains the Clipboard internals by showing how you can forbid access to it. He simplified the task as much as possible to focus on the most important parts.

Date Posted: Jan 29, 2010

This is Free Content Original
COLUMN: Pragmatic Personas
Author(s): Jeff Patton
Summary: Knowing who will use your software is important to the software development process. Having the end user in mind helps you develop features that fit the user's needs. And, figuring out your end user, as Jeff Patton reveals, is indeed easy. In this column, Jeff details stereotypes to avoid, questions to ask, and how to implement this pragmatic persona in your development process.

Date Posted: Jan 22, 2010

This is Free Content ARTICLE: White Paper: Requirements Traceability
Author(s): John Simpson
Summary: To some, traceability may sound complicated and like it entails a lot of work. Is it really worth the effort? Good question. The short answer is yes. And, here's why it's so important: Change happens. In this paper, the authors demystify traceability and its related concepts and provides five practical tips to help you take control and keep everyone in sync.

Date Posted: Jan 22, 2010

This is Free Content ARTICLE: Crowdsource Testing
Author(s): Yvette Francino
Summary: Through the power of the Internet, people around the world are working together to solve problems in a faster, more cost-effective way than ever before. Crowdsourcing is a term that has been used to describe the process of requesting a crowd to perform a task rather than hiring consultants or contractors. There have been various models used to harness the collective brainpower of the masses, and this article delves into three examples. Thanks to the power of Web 2.0, publicity is easily spread world-wide to recruit participants who will take part in competitions or collaborative events aimed at solving a problem or completing a task.

Date Posted: Jan 22, 2010

This is Free Content Original
ARTICLE: Finding Nuggets in the IT Gold Mine
Author(s): Clarke Ching
Summary: Development teams often are unaware of the commercial impacts of the software improvements they deliver. Often, the prioritization of work is done based on technical, rather than commercial, considerations. Based on a real-world example, this story explores the commercial benefits enabled by delivering in short release cycles and prioritizing according to bottom-line benefits.

Date Posted: Jan 13, 2010

This is Free Content Original
ARTICLE: The Right Business Analysis Tool
Author(s): Matthew Leach
Summary: The continued rise of the business analysis profession has led to a surge in software tools specifically designed for the business analyst. Find out what types of tools are in the marketplace today and how to select the right business analysis software tool for your organization.

Date Posted: Jan 13, 2010

Sort by:   Date Posted  |  Title  |  Content Type

Viewing 2-11 of 1769 
Collapse Descriptions

Viewing Item 2 of 1769


A StickyMinds.com Original
Article Picture
Start a Revolution

By Linda Hayes

Send This Content to a FriendGet a Short Link to This ContentPrint This ContentSee User Comments About This Content

Summary: What is a software tester’s main responsibility? If you think that it’s to find as many bugs as possible, you might be surprised to read Linda Hayes’ column this week. She looks at the question from a different angle. Read on and see if you agree with her.


ThoughtWorks
I don’t think that it’s a tester’s job to find bugs.  
 
There, I said it. I have been wanting to say it—even shout it—for a long time, but I was finally compelled to do it by Lee Copeland’s column “Institutionalizing Poor Quality” and the many comments it received. Remember the example he gave where a QA person pops up to inspect the pastrami you are about to buy? He offered this example, among others, to point out that we routinely expect a certain level of quality from most professions, so why don’t we expect it from programmers? 
 
Let me take it one step further. Let’s say that you are forced to wait on your pastrami while it is inspected—and you are getting hungrier by the minute—then once it is over, your purchase receipt reflects a 20 percent surcharge for the inspection. It might prompt you to question the value of this service. After all, having it too thick or too thin might not matter that much to you. The reason it is worth it, you are told, is that the inspectors are also looking for E. coli bacteria, which could make you seriously ill or even kill you.  
 
Okay, now quality has your attention. But, as you think about it, you would likely wonder why the E. coli inspection doesn’t happen much earlier—say, when the meat is slaughtered or packaged. Or, maybe the butcher’s premises should be inspected routinely. Wouldn’t that be much more time and cost effective than inspecting every single slice? Of course it would. 
 
All of this leads back to the difference between quality assurance and quality control. I used to think people who emphasized this distinction were being anal retentive, but I have come to see their point. Quality assurance is about building quality into the process, and quality control is about inspecting the end result.  
 
As Lee concluded, “In our world, the process that needs to be improved is the development process.”  
 
But if you are a tester, what does this mean to you?  
 
First, let’s face the facts. Testers did not ask for the product, did not design it, did not build it, will not pay for it, and will not use it. So it’s fair to ask…what does testing bring to the party? If the answer is “to find bugs,” then I think you are doomed to being overworked, underpaid, and under-appreciated, if not downright vilified. Why? Well, for the simple reason that you can’t prove a negative.  
 
Think about it. What you are saying, essentially, is that there are an indeterminate number of bugs in unknown locations of unpredictable severity, and at the end of the project all you can say is which ones you have found but not how many are left. Is it any wonder it’s hard to put a high value on this service? 
 
If I were to play the role of the customer, who is having the software developed at great expense to meet a critical business need, here is what I hear you saying: “I want you to pay me to delay your use and enjoyment of this critical software so I can see how many things I can find wrong with it.” Not very appealing, is it? 
 
Don’t get me wrong—there are most likely bugs out there, and some of them might be bad, but the problem is that we just don’t know, and it’s hard to get someone to pay for something that can’t be measured.  
 
So what’s the alternative? 
 
It’s the requirements, of course. Customers don’t have software developed so that it will be bug-free, they do it so that it will meet a business need. In fact, companies use software every day (and so do you) that has bugs in it that are known and—in some cases—have been for years. As one customer told me recently, “We have a bug that has been in our system for over ten years and everyone knows about it, but every time we prioritize requests for enhancements and fixes, this bug is at the bottom of the list.” 
 
So instead of making it your mission to find bugs, make it your mission to verify the requirements. Now you might say, and rightfully so, that the requirements are either missing, obsolete, or incomplete. But so what? Make it your job to find them out, because that is what the customer is really paying for. 
 
And you might also say, and experience will back you up, that there may be really nasty bugs out there that are on the fringes or even outside the expected pathways, and you will never find them just testing requirements. Again, so what? You can’t guarantee that you’ll find them even if they are there, and if you do find them you can’t be sure that the customer will even care about them so long as they can be worked around or avoided. 
 
Back to role-playing. Now, here is what I hear you saying: “I want you to pay me to assure that this major investment will meet your business needs without jeopardizing critical operations.” Now you’re talking.


About the Author
Linda Hayes is the founder of three software companies including AutoTester in 1986, which delivered the first automated testing program for the IBM PC. Linda has pioneered automated test tools. Her new company, Worksoft, offers Certify, which represents the next generation of enterprise-level test automation. Worksoft also offers a free online newsletter called "Reality Check," which provides links to articles, white papers, and other compelling information on testing. A frequent industry speaker and award winning author, she publishes the monthly Quality Quest column for Datamation, wrote the Automated Testing Handbook, and co-edited Dare to be Excellent with Alka Jarvis on best practices in the software industry. You can contact Linda at Linda@worksoft.com.

Back to Top
 

StickyMinds.com Weekly Column From 7/22/02 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by Jenny MacLeod 7/31/2002

I became a tester to help software for people and not for developers etc. At the end of the day any system can be relatively bug free and you can still have a whole group of users who cannot use the system and management who are not happy because the system is not what they wanted. In some cases it may be that they did not understand the requirements that they signed off and in others it may be the case that the system developed has not met the requirements. By all means testers should look for and record bugs but this is secondary to making sure that the system does what the user needs it to do. In today’s work place it can be...Read On

 
 
Comment:    
by John Vencill 7/30/2002

I agree completely with you with regard to formal testing, acceptance testing, CSCI testing, or whatever you label the task of testing whether the product meets its requirements. Back when MIL-SPECs were popular, Requirements Specifications stated Requirements in Section 3 and Qualification (or testing) Requirements in Section 4. Many of us felt that there should be a one-to-one correspondence between each requirement in Section 3 and the method of testing it in Section 4. However, formal testing is the last step of the test process -- previous ones being unit testing and integration testing. While formal testing is typically performed...Read On

 
 
Comment:    
by Tek Wallah 7/26/2002

Thank you so much for stating the case so clearly. I agree with you 100%. Simply treating bugs as scalps -- the more the better -- does miss the point that all deficiencies in software are not equal in the consumer's eyes. A product which is useful but flawed, will always outsell a perfect but useless one. (Let's take it as a given that anyone who reads this site hates imperfections with a vengeance.) But usefulness is determined very early in the development cycle, long before QA is normally involved. Vendors typically start with a general idea of where a release or new product is going, and the requirements documents are refined (ie.Read On

 
 
Comment:    
by Erik Petersen 7/25/2002

A good metaphor for testing today is like an adviser to a ancient king planning an invasion. Sometimes we are like a fortune teller, we have looked into the stars/bones/tea leaves and we think we our army (our system) has this level of quality and this level of risk. This is typically based on the information we have from the bugs. If we take on a role of an intelligence chief as well, we can get more information about what our army has to achieve (its requirements) through spy reports/prisoner interrogations/etc. This way we are able to both verify and validate, but beyond both of these, we have to be able to communicate it in a way that...Read On

Author's Response:
7/26/2002    
I like your analogy, Erik, but I like to think of it as telling them in a way that they will listen - instead of "sweettalk/sugarcoat/ highlight/exaggerate", just convert what you are saying into time (schedules) and money (budgets). That's how managers are measured, so that is how they evaluate.

 
 
Comment:    
by Bradley Kerth 7/25/2002

Good Fun with all this. The article and comments points out the clear difference between Testing and QA (or SQEngineering). Testing is a subset of QA/SQE. QA/SQE is looking at, and changing, the complete picture of how a group is producing S/W from the git-go. The goal of QA/SQE is to prevent bugs, not just hope to find most of them. In my group, the SQE folks evaluate, and write bugs against, the written requirements. We are working on getting developers aware of coding practices that inherently reduce bugs. We are working on getting everyone looking for bugs prior to testing (peer code reviews, SQE looking at coding practices,...Read On

Author's Response:
7/26/2002    
HALLELUJAH, Bradley. You give me hope.

 
 
Comment:    
by Laura Dilbeck 7/25/2002

After over 10 years of testing software (appointed to tester admin because I was the best at finding defects) I have witnessed the natural evolution to testing requirements. We matured from running test cycles to verifying requirements, at the same time the development processes grew and stabilized also. This type of testing forces requirements to be better, of higher quality and also promotes a quality product design. I am trying to revolutionize the test processes at my current job by focusing on requirements and performance measurements using automated tests and tools. Unfortunately we become the tail that wags the dog when you try...Read On

Author's Response:
7/26/2002    
Hooray, Laura. Comments like yours make me hopeful. We have to think, act and talk like business people.

 
 
Comment:    
by Hui Di 7/25/2002

I agree with you that a tester would be better if he/she knows customer's requirements. However, I think that it is beyond tester's responsibility to know the customer's requirements. Sometimes, customer's requirements could not be totally implemented. According to customer's requirments, developers develop their software design docs. We, as testers, need to test software against the software design docs(story board) instead of general customer's requirements. Hui Di Statistic Software Tester JMP Division, SAS Institute

Author's Response:
7/26/2002    
I hope you don't mind if I disagree, Hui. Testing against only the development design can miss errors in development's intepretation of requirements. Without customer involvement you can release a product that works the way it is built but not the way it will be used.

 
 
Comment:    
by Linda Hayes 7/25/2002

Please forgive my lack of comment QA, Sherry (not Sharon).

 
 
Comment:    
by Sherry Heinze 7/24/2002

I really liked this article. I hope you do start a revolution. Actually, I will concede that finding bugs in code is part of my job, but I don't think it's the most important part. Preventing bugs is more useful than finding them, and the earlier we can prevent them, the lower the cost. Every project I have worked on for the last several years has had someone screaming over the high cost of testing and the time required to do it. I once upset my manager by suggesting that if the client didn't want to pay what we estimated for testing, the best way to reduce the cost was to keep the tester scheduled during analysis and design, and eliminate...Read On

Author's Response:
7/25/2002    
That was a brilliant suggestion, Sharon. Amazing how no one disagrees about the increasing cost of finding defects later, yet no one behaves as if it is true!

 
 
Comment:    
by Valentine Ezike 7/24/2002

There is definitely a misconception outlined in most of the comments about this article. Linda - correct me if I misconstrue this as well: The point being purported is one of " Increased Testing in the initial stages of the development cycle (Quality Assurance) and Decreased Testing in the later stages of the development cycle (Quality Control) ". Any experienced tester should know that the cost of finding and fixing a defect in the later stages of the SDLC increases exponentially with time. More time is devoted to gathering and refining requirements as well as to analysis and design, hence it makes logical sense to test increasingly in this...Read On

Author's Response:
7/25/2002    
Great summary and explanation, Valentine. Thanks for the clarification!

 
 
Comment:    
by Sandy Flann 7/24/2002

I can't believe someone actually said, "a Tester's main function is to fend off accusatory comments from offended developers and engineering management types that need to find a scapegoat for project over-runs and delays." That sounds like a seriously hostile, pass-the-buck environment you're working in. What a horrible way to view the primary role of a Tester.

Author's Response:
7/25/2002    
Whoever said that is obviously suffering from the lack of process.

 
 
Comment:    
by Duncan Henderson 7/24/2002

I really liked the article. Testing against requirements was a light that came on for me about 10 years ago and it has been my guide through murky project waters ever since. On the project that I am working on now, nearly all of the problems that QA or the customers have found over the past years have been root-caused to insufficient or unclear requirements. QA does get involved in the requirements creation process and another of QA's roles has become to provide automated scripts to the developers, ensuring that by the time the product gets to System Test it has already met most of the requirements. This implies that the main dialog...Read On

Author's Response:
7/25/2002    
I'm glad you liked it - I liked your comments and agree about the dream. I think dreams can come true, I've met people who have taken control of their destiny as a test organization and addressed their challenges in a productive way.

 
 
Comment:    
by David Beamer 7/24/2002

I disagree with the basic premises of Linda's article. First, it is neither wise nor correct to compare software with pastrami, cars, CD players, or anything else that's "real". Software is, by its nature, abstract. You can't poke at it, smell it, etc. Leaving out code reviews (and "proof of correctness") for the moment, you can't do anything to software that is analogous to testing pastrami for bacteria. The only way you can find out whether software "works" (however that might be defined) is by running it. Second, I'll just say that I agree with most of what Joe S. posted. Lists of requirements rarely have items like "lack of...Read On

Author's Response:
7/25/2002    
David, I love your passion and I respect your right to disagree. I think part of what we have to do is rethink how requirements are defined and by whom. If a requirement is really a test case, then it allows testing to be integrated throughout the entire life cycle...as it should be.

 
 
Comment:    
by Richard Whitehead 7/24/2002

Wow - pushed some buttons there. For all those who think that the opinion stated by Linda is extreme or off-track, I'm afraid you need to catch up with the progress that's been made in the last 30 years. Quality control is a set of activities that runs parallel to, and contemporaneously with, the rest of the development lifecycle. Testing requirements starts during requirements gathering. Planning and designing integration and acceptance tests starts when system architecture and design starts. And the test team has to be involved in all those activities. Software development is a team sport, and the testers are part of the team. An...Read On

Author's Response:
7/25/2002    
Richard, you are dead on. That's a succint way of putting it: testers work for the customer, not for development. The beauty is that is that the money is coming from the customer, not from development.

 
 
Comment:    
by Terry Horwath 7/23/2002

Hum... Interesting perspective. But once the *major* requirements are understood [which is often the most time consuming part of the tester's job] it then becomes the focus of *cost-effective* testing to find all of the *critical* bugs that will inhibit the use of the software product to meet those requirements. While you can make a case that gleening the requirements is priority--so that effective testing can then be designed--finding critical bugs must be considered priority 1.1 in my book.

Author's Response:
7/25/2002    
I agree, Terry. The trickiest part is to define what makes a bug critical so that you can prioritize your time and resources.

 
 
Comment:    
by Andrew Raybould 7/23/2002

Linda, Why not have the testers write the code as well, then there won't be any bugs to find, right? The fact is that there are many aspects to creating high-quality software, and one of them is running it to find out if it actually does what is needed - i.e. testing - and if you are not feeding any discrepancies found back into the development process - i.e. finding bugs - then you are not doing the job. This article seems to be predicated on a false syllogism: Testers are QA professionals. There are quality issues in all phases of development. Therefore, testers should be doing [pick a development phase]. The fact is...Read On

Author's Response:
7/25/2002    
I agree that the conflict is over whether testing and QA are the same thing. While they are different, they are also inter-related. You can't test quality into a product; without a good process all the testing in the world can't help you.

 
 
Comment:    
by Harold LeDrew 7/23/2002

Linda, I personally feel that you are to some extent correct but not totally. More accurately, a Tester's main function is to fend off accusatory comments from offended developers and engineering management types that need to find a scapegoat for project over-runs and delays. Since no one really likes to have faults identified, reproduced and demonstrated, it is easy to convince senior management and other bean counters that the project problems are caused by testers trying to break the software. (Amazingly, many senior management levels actually believe this crap.) I actually solved this problem on one project by having the software (a...Read On

Author's Response:
7/25/2002    
Harold, I feel your pain. I agree that if management believes that testers are just trying to break the software (another word for finding bugs) then the situation is intolerable. Unless they understand the value, you are doomed. But it's your job to educate them...

 
 
Comment:    
by Sundar Ganesh 7/23/2002

Linda, in your article, you have mentioned that the next step or what else for tester is to move towards requirements. I was under the impression all along that testing is about requirements or specifications and validating them to figure out whether the product satisfies the customers needs or intended purpose. I believe the next step to the tester is to identify “WHAT THE CUSTOMER COULD NEED” which is not there in the requirements. Sundar Ganesh

Author's Response:
7/25/2002    
Sundar I agree that there is never an end to identifying requirements, so long as your focus is on the customer's needs whether defined or unchoate.

 
 
Comment:    
by Victor Pierre 7/23/2002

E Coli can kill someone, so we don't have a Choice with meat, but remember that the developer or IT can say yes we know about it and will correct it in the next release....V1R1M0......

Author's Response:
7/25/2002    
True, but it should be a business decision whether to accept a defect, not the developer's.

 
 
Comment:    
by Robert M Melendez 7/22/2002

Linda, I believe you've touched on a central dilemma of testing. 1. Software systems cannot yet be proved correct. Research efforts continue. But the small proofs that are believed to work are frequently longer than the proven program. Then, proving the proof leads to a still longer proof and the process never completes. 2. Given the combinatorics, it is not possible to know that a tester has found all of the problems with a software system. There may always be some left, no matter how many tests are run. +A tester can't prove a system correct, so all he can do is look for problems. But a tester can't find all the problems. ...Read On

Author's Response:
7/25/2002    
True, Robert. Granted, you can't prove it works, but you can't prove you found all the bugs either. What you can prove is that identified critical functions work.

 
 
Comment:    
by Joe Strazzere 7/22/2002

Sorry, Copeland's column was off-base, and this one has followed his path of flawed analogies. You don't think your bill for pastrami already includes a surcharge for inspection? Perhaps you think meat inspectors work for free? Ok, so we don't want to inspect every slice of pastrami. Are you suggesting we should only inspect software occasionally, perhaps every 5th release or so would be sufficient? No matter how you slice it, meat is not like software. If it were, then slicing my pastrami too thickly might cause salmonella in your sandwich - you could never be sure. And you would first have to write up detailed requirements for...Read On

Author's Response:
7/25/2002    
Joe I enjoyed reading your comments. Again, it depends on how you define success. If you say success is finding bugs, then you are right. I just don't agree with that definition - there are bugs everywhere. The key is to find the ones that matter the most.

 
 
Comment:    
by Ernest Trimborn 7/22/2002

"Testing is the only software quality activity that directly observes system behavior and reports what it does." This was from one of the excellent articles on your web-site. You make some good points about emphasizing the need for better quality up front in the life cycle but I also believe that testing is an essential component of any SDLC. It provides us with a risk assessment of the product so that Management may make better informed decisions for a product release.

Author's Response:
7/25/2002    
Thanks, Ernest. Testing is not only a critical component of the SDLC, it is integral to every phase, especially the decision to release.

 
 
Comment:    
by Bret Pettichord 7/22/2002

I think that testers should both be working with the team to define key tests that can be used to verify features as well as to hunt for bugs. I've seen requirements such as "the system shall not lose data." How can i test this except by trying my best to seek out scenarios that might cause data loss?

Author's Response:
7/25/2002    
In that case you are in fact verifying a requirement, no? A requirement is not necessarily defined as a positive outcome.

 
 
Comment:    
by Paul Tsuda 7/22/2002

Linda, even though I feel your frustration I think the article would be better named "Keep the Counterrevolution Going." The first words fired for quality appeared back in 1975 in a little book by Fred Brooks called The Mythical Man Month. In a section titled "Product Test" Mr. Brooks said, "The project manager’s best friend is his daily adversary, the independent product-testing organization. This group checks machines and programs against specifications and serves as a devil’s advocate, pinpointing every conceivable defect and discrepancy. Every development organization needs such an independent technical auditing group to keep it...Read On

Author's Response:
7/25/2002    
Paul, I hope you feel better by saying it, as I did. But ironically, the paragraph you quote describes what I consider to be the full SDLC approach that most processes advocate.

 
 
Comment:    
by Dave Liebreich 7/21/2002

Linda, While I believe your analysis holds true for software developed in-house or on-contract for a business customer, I don't think it's a good approach for other testing situations. Yes, testing against requirements (and testing the requirements) are part of customer-acceptance testing (or customer-acceptance testing by proxy, as would be the case for COTS, some OEM deals, and some embedded systems). But there is more to the testing (or QC) part of our jobs that relates directly to the process improvement (QA) part. Testing is a measurement activity. We should strive to know as much as possible, in quantifiable ways, about the...Read On

Author's Response:
7/25/2002    
Good point, Dave. For a vendor the requirements might be economic or schedule-based instead of operational.

 
Back to Top



 
Ads By Google
What's This?
 
 



Home   |   Resources   |   Topics   |   Community   |   PowerPass



© 2010 StickyMinds.com. All rights reserved.
StickyMinds.com is a division of Software Quality Engineering.
Privacy Policy    Terms & Conditions    Link to StickyMinds.com    Feedback


TechExcel, Inc.




STAREAST 


Better Software Conference