|
|
Don't get trapped by Rogue Anti-Spyware software!
Recent computer problems raised my suspicions that a hijacker or other malware program had infiltrated its protective software. Too many crashes and program hang-ups were taking place to be normal. Yes, there really shouldn't be any problems in a...
New Spyware Software That Detects & Safely Removes Spyware & Adware Before It Ruins Your Computer
NEW
Webroot Spysweeper 4.5 takes another leap ahead of the
competition. As the leading anti-spyware product available, it
detects and completely removes the nastiest spyware out there
like Elite Keylogger, LOP, Trojan Backdoor-Haxdoor...
The Use and Abuse of the Internet
One small change made a huge impact in a day in the life of Zardinia Zaffas. I can see you right now. You’re sitting at your desk staring into the computer screen, the Internet is connected and the information is flowing like a river. If you are at...
Troubleshooting Printer Problems
Printers are great when they work but when something goes wrong all of a sudden they are "crappy printers", "piece of junk" and so forth. Actually the technology is pretty impressive and if you ask me I think it's nothing short of magic. All that...
Web Conferencing Services - Types
You may already have recognized the need for web conferencing within your organization. You have heard all about the many benefits and have decided it is the way forward for your company. Now all you have to do is decide which type of web...
|
|
|
|
|
|
|
|
Testing
One of the hardest tasks for any IT department is that of testing. This is, in my experience, the area where we have the greatest failures (next to estimating the cost and length of a project) and where we have incredibly room for improvement.
I have been in the business for a long, long time, and the lack of testing never fails to amaze me. There have been times when I've received "finished" programs from developers which didn't even run! Obviously the code had never been tested, at least not in any meaningful way.
Before any testing can begin (and obviously this should also be done before coding starts) you must have a thorough analysis and design. You see, a program or system must be tested against the specification and a set of standards. It cannot be done arbitrarily or randomly.
Your specification explains what your systems are trying to accomplish. The specification might say something like "a standard URL will be accepted in the address field". Your standards would state that all buffers must be checked for overrun conditions, URLs in a valid format, and so on. The standards apply to ALL testing, while the specifications apply to the specific program or system.
A very critical fact (which seems to be completely unknown to Microsoft) is the marketing department is not in charge of testing. To be done correctly, testing actually requires top-notch people who have been specially trained and who are highly motivated to do their jobs well.
You also cannot make a hundred thousand copies of a product and send it out to tens of thousands of beta testers without a clear set of goals, expert supervision and constant management and expect to get anything meaningful back. Beta testing is vital to a project, but it does not and cannot replace professional testing staff. Another fact which seems to be invisible to Microsoft is the purpose of beta testing is to test, not to market a product. Marketing is an essential part of a product plan, but it has absolutely no place in the testing plan.
What are some of the common testing mistakes?
Testing to prove a program or system works - I know you want your programs to work, but the purpose of testing is simply to test, not to prove you are the best programmer on the planet. Testing needs to hit a program hard, right between the eyes. Your job as a tester is to ensure that the program meets the specifications, and that any deficiencies are found and properly recorded.
Trying to prove a program does not work - Again, the purpose of testing is to test, not to prove anything. You should always have a well defined testing plan and follow that plan.
Using testing to prototype a product - Prototyping is an extremely useful part of the analysis and design phases of a project. The purpose is to give your users and customers a way to see what something will look and feel like before implementing a project. Once design is done prototypes should be thrown away and not used again.
Using testing to design performance - Performance goals must be understood before a project leaves the design phase. By the time a project is implemented (much less tested) you should completely know how it will perform (minus the possibility of bad programming, which is a different problem which testing is designed to uncover). Testing will, however, validate that the product does perform as indicated in the specifications.
Testing without a test plan - I don't know how many programmers I've seen that just wade right in and start testing. Come on people, how can you test something if you don't have a plan? What are you trying to prove?
Testing without a specification - Remember, the purpose of testing is to prove that a system or program meets the specifications. That's all. It's very difficult to do that without a specification right in front of you. Of course, this assumes that you have a specification to begin with ...
Asking the developers to test their own programs - This is one of the biggest mistakes (next to writing any code without a very good specification) that you can make. How can a programmer test his or her own code? First of all, programmers make lousy testers - testing is a field all to itself and programmers are almost never trained well in this area. Second, the developers of a system have a conflict of interest - they want their software to work. Testers need to approach with a more open mind.
Testing without a goal - If you don't have a goal in mind for your testing, you don't know when you are done. What are you trying to accomplish? Absolutely no bugs of any kind (not very practicable)? The best goal is 100% compliance with the specifications. This does pit the burden on the analysis and design team - but that is exactly where the responsibility lies.
Expecting an unsupervised beta testing group to do anything meaningful - Beta
testers need well defined goals, constant supervision and strong leadership to be successful. Without these things beta testing is simply a numbers game which does nothing useful at all.
Testing is not the appropriate time to make design decisions - Something that I commonly see from Microsoft and other large companies is they create a product and send it out to their beta testers for feedback. Guys, come on. Beta testing is not the place for this. Design decisions need to be made well before a product is sent out for testing. You want to find out if your users will like a feature? Create a prototype, send it to a statistically valid sample audience and ask them for their opinions. Clearly define it to the audience as a prototype and survey them for their opinions afterwards. Don't send out a poorly defined "beta test" to a hundred thousand people and try and get their opinions on features. The only thing you are going to accomplish is to get yourself slammed in the media. You also find yourself making design changes in a product at the wrong stage of the product life cycle. Design changes need to be made during the analysis and design phases of the project, not AFTER implementation.
So how is good testing done?
Analysis and design must be done first - No matter how large the project, you will be much more likely to succeed if you do these two steps thoroughly and completely before implementation and testing. Many years ago I had a boss, name of Gary, who didn't understand this simple rule. He asked me to start implementing a warehousing system for a client without writing a specification (over my objections). His concept of design was to spend an hour or two asking the customer what was needed, then to start coding, then to show the customer, make changes, code some more, show the customer, make changes and so on until the customer said "it's fine". Needless to say, the project took far longer than necessary and did not do a great job of meeting the customers needs. It was also very buggy and required an immense amount of support during the first couple of years of it's life cycle.
The only phase where the marketing department should be involved is analysis - A well trained analyst understands that the marketing department is a customer and must be included in the analysis phase of the project. This is the only time (until the product is through testing) that marketing should have any input. If you don't follow this rule you will wind up with a product which changes direction during testing, and thus invalidates your test.
Understand that a specification is a contract - The goal is to implement something that meets the specification. This is the only way that I know of to produce a software project that (a) gets finished at all and (b) meets the customers expectations. Of course, this assumes that your analysis and design is top notch. What does this really mean? It simply means that changes to the design are only allowed during the analysis and design phase. Period. If your customer changes anything at all after the analysis and design, you must reanalyze, redesign and renegotiate - always and without fail.
Let's say you are the contractor who has been hired to create a new warehouse system. You do your analysis and design and it is approved by the customer. You now have a contract and it is important that your customer understands this from the beginning. Okay, you begin the project and your customer decides he wants to add bar coding. This seems pretty simple so you say "sure". Wrong thing to do. You should say either "let's finish the project as designed then add things" or "okay, we will need to stop, see how that effects the project (at the customers cost), then we will submit a cost and new delivery date".
Maintain standards - Testing measures the implementation against the specifications and standards. Standards should be made known to the customer as part of the entire package. These might include things like all fields will be validated in specific ways, all buffers will not overflow, screens will have a certain look and so on.
Remember the purpose of testing - Testing should prove the implementation meets everything included in the specifications and standards. Testing does NOT mean the product is measured against customer expectations (that's a marketing function which should have been nailed down during the analysis and design phase). You see, the specification MUST meet the customer expectations before implementation beings. Then the final product WILL meet customer expectations as the specification is the expectation.
About the Author
Richard Lowe Jr. is the webmaster of Internet Tips And Secrets at http://www.internet-tips.net - Visit our website any time to read over 1,000 complete FREE articles about how to improve your internet profits, enjoyment and knowledge.
|
|
|
|
|
Tucows Downloads - Download Freeware and Shareware Software |
Download freeware, shareware, and demos. Maintains over 45000 software titles that are tested, rated, reviewed and ready to download. |
www.tucows.com |
  |
Free Software Downloads and Software Reviews - Download.com |
Download shareware, freeware and Demo software for PC, Mac, Linux, and Handhelds categorized into categories, plus software reviews. |
www.download.com |
  |
Computer software - Wikipedia, the free encyclopedia |
This includes application software such as a word processor, which enables a ... Application software is often purchased separately from computer hardware. ... |
en.wikipedia.org |
  |
Shareware.com - Search for shareware programs and free software ... |
Search for shareware programs from more than a dozen downloadable software directories. |
www.shareware.com |
  |
Jumbo: Free & Shareware MP3 files, Games, Screen Savers & Computer ... |
Source of free and shareware computer programs and utilities for PC and Mac. Evaluate software and read product reviews. Download games and screen savers. |
www.jumbo.com |
  |
Computer Software in the Yahoo! Directory |
Browse categories featuring sites devoted to computer software, including shareware and freeware download sites, operating systems, desktop customization, ... |
dir.yahoo.com |
  |
IEEE Software |
IEEE Computer Society's magazine covering all aspects of software, including software engineering. |
www.computer.org |
  |
Free Downloads on ZDNet | Shareware, Trialware, Evaluation Software |
ZDNet's Software Directory is the Web's largest library of software downloads. Covering software for Windows, Mac, and Mobile systems, ZDNet's Software ... |
downloads.zdnet.com |
  |
FSF - The Free Software Foundation |
Free software is a matter of liberty not price. Think of "free" as in "free speech". |
www.fsf.org |
  |
Apple - Software |
Software products for your digital life. ... The perfect addition for professional review. QuickTime Broadcaster. Encoding software for live events. ... |
www.apple.com |
  |
Open Directory - Computers: Software |
In Partnership with AOL Search. about dmoz | report abuse/spam | help. the entire directory, only in Computers/Software. Top: Computers: Software (38471) ... |
dmoz.org |
  |
freshmeat.net: Welcome to freshmeat.net |
About: The Web browser is probably the most frequently used software today, ... Web professionals can use the software for functional testing and regression ... |
freshmeat.net |
  |
Software - GNU Project - Free Software Foundation (FSF) |
Listing of the GNU software packages. |
www.gnu.org |
  |
Sun Software |
Get enterprise-class software--Solaris 10 OS, the Java Enterprise System, ... Sun Java StorageTek Software reduces cost and complexity with a single, ... |
www.sun.com |
  |
Internet Real Estate.com -- owns and operates a portfolio of the ... |
SOFTWARE.COM · SWEEPSTAKES.COM · PHONE.COM PODCAST.COM ... Software.com | Sweepstakes.com | Phone.com | Podcast.com | Shop.com | Safety.com ... |
www.internetrealestate.com |
  |
Joel on Software |
A weblog by Joel Spolsky, a programmer working in New York City, about software and software companies. |
www.joelonsoftware.com |
  |
Amazon.com Software: Computer & video games, business, accounting ... |
Online shopping for computer & video games, business & office productivity software, software from Microsoft, Apple, Adobe & more; accounting, antivirus, ... |
www.amazon.com |
  |
IBM Software - Home Page |
IBM home page for all of its software products, including Lotus and Tivoli, with keyword search, category browse and AZ product names. |
www.ibm.com |
  |
Opera web browser: Homepage |
Copyright © 2006 Opera Software ASA. All rights reserved. Skip navigation. Opera Software ... Copyright Opera Software ASA . All rights reserved. ... |
www.opera.com |
  |
Google Directory - Computers > Software |
Search only in Software Search the Web ... Software Categorized by Letter: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ... |
www.google.com |
  |
|