A Brief Primer on Software Testing

Software Testing:Requirements speciÞcation;
What is Software Testing?Design speciÞcation;
There are many published definitions of softwareUsers guide;
testing, however, all of these definitionsboil downOperations guide;
to essentially the same thing: software testing isInstallation guide.
the process of executing software in a controlledFeatures to be tested
manner, in order to answer the question "DoesIdentify all software features and combinations of
the software behave as specified?".software features to be tested. Identify the test
Software testing is often used in association withdesignspeciÞcation associated with each feature
the terms verification and validation.and each combination of features.
Verification is the checking or testing of items,Features not to be tested
including software, for conformanceIdentify all features and signiÞcant combinations
andconsistency with an associated specification.of features that will not be tested and the
Software testing is just one kind of verification,reasons.
which also uses techniques such as reviews,What does it take to build the best Test
analysis, inspections and walkthroughs. Validation isOrganization.
the process of checking that what has beenAttitude
specified is what the user actually wanted.Conviction
· Validation: Are we doing the right job?Killing instinct to dig out and deliver
· Verification: Are we doing the job right?Culture
The term bug is often used to refer to a problemWork towards passion and not money
or fault in a computer. There are softwarebugsWork towards technology, sharing and learning
and hardware bugs. The term originated in thePower of Ethics
United States, at the time whenpioneeringWhat we do:
computers were built out of valves, when aBuilding silicon with xyz architecture.putting on
series of previously inexplicablefaults weree-linux, building an image and then putting on top
eventually traced to moths flying about inside theof it.
computer.Wireless network support followed by release.
Software testing should not be confused withSome fun time:
debugging. Debugging is the process ofanalyzing1. Reporting all passes and sending the report
and locating bugs when software does notwithout actually executing the tests. The product
behave as expected. Although theidentification ofgetting backfired from the customer premises.
some bugs will be obvious from playing with theThe industry does not spare mistakes, and this
software, a methodicalapproach to softwareone can be worst.
testing is a much more thorough means of2.
identifying bugs.Templates:
Debugging is therefore an activity which supportsTest Plan/ Test Case
testing, but cannot replace testing.Priority and Severity states and trade-offs
However, no amount of testing can bebetween them: Mapping to our jargon Blocker and
guaranteed to discover all bugs.Crasher.
Other activities which are often associated withRelease Blockers: Last Severity 1 but 1st priority
software testing are static analysis anddynamicBLOCKER (from our perspective):
analysis. Static analysis investigates the sourceExamples of Extreme Cases:
code of software, looking forproblems andHas anyone come across a Microsoft Product
gathering metrics without actually executing thewhich specifies "Win" instead of "Windows, but
code. Dynamic analysislooks at the behaviour ofyou won't be able to find it. Why, because as a
software while it is executing, to provideTester you might be logging it as a last severity,
information such asbut for the Vendor/Microsoft it becomes priority
4.2 Outline1/BLOCKER.
A test plan shall have the following structure:a)Test Blockers: Is a typical case in which you log
Test plan identiÞer;b) Introduction;c) Testthe crash bug(Blocker), but it is taken as a last
items;d) Features to be tested;e) Features not topriority by the management. Why???
be tested;f) Approach;g) Item pass/fail criteria;h)In one of the instances, a vendor had released a
Suspension criteria and resumption requirements;i)version of OS, which specified that after installing
Test deliverables;j) Testing tasks;k) Environmentalthe OS on a new machine, pull out the cable to
needs;l) Responsibilities;m) StafÞng and trainingthe HDD and the OS will crash and would be
needs;n) Schedule;o) Risks and contingencies;p)completely un-recoverable and would be required
Approvals.to re-install the entire OS again. Still the vendor
The sections shall be ordered in the spreleased, Why? Because the vendor would not
Test itemsexpect the end user to do it.
Identify the test items including their versionExamples of Extreme Cases: S 1 but last priority:
revision level. Also specify characteristics of theirCrash
transmittalmedia that impact hardwareEffective Execution and Reporting:
requirements or indicate the need for logical orImportance of Logs
physical transformations beforetesting can beginImportance of logging with respect to not logging.
(e.g., programs must be transferred from tape toAutomation: What takes it to implement.
disk).The Road Ahead:
Supply references to the following test itemNotepad to write java files to code generating
documentation, if it exists:wizards. Importance of testing.