Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Save to My Library
Look up keyword or section
Like this

Table Of Contents

0 of .
Results for:
No results containing your search query
P. 1
SoftwareTesting FAQ

SoftwareTesting FAQ



|Views: 730 |Likes:
Published by jajupreetam

More info:

Published by: jajupreetam on Jul 20, 2008
Copyright:Traditional Copyright: All rights reserved


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See more
See less


1. What is black box/white box testing?
Black-box and white-box are test design methods. Black-box test design treats the system as a “black-box”, so it doesn’t explicitly use knowledge of the internal structure. Black-box test design isusually described as focusing on testing functional requirements. Synonyms for black-box include:behavioral, functional, opaque-box, and closed-box. White-box test design allows one to peek insidethe “box”, and it focuses specifically on using internal knowledge of the software to guide theselection of test data. Synonyms for white-box include: structural, glass-box and clear-box.While black-box and white-box are terms that are still in popular use, many people prefer the terms"behavioral" and "structural". Behavioral test design is slightly different from black-box test designbecause the use of internal knowledge isn't strictly forbidden, but it's still discouraged. In practice, ithasn't proven useful to use a single test design method. One has to use a mixture of differentmethods so that they aren't hindered by the limitations of a particular one. Some call this "gray-box" or "translucent-box" test design, but others wish we'd stop talking about boxes altogether.It is important to understand that these methods are used during the test design phase, and theirinfluence is hard to see in the tests once they're implemented. Note that any level of testing (unittesting, system testing, etc.) can use any test design methods. Unit testing is usually associatedwith structural test design, but this is because testers usually don't have well-defined requirementsat the unit level to validate.
2. What are unit, component and integration testing?
Note that the definitions of unit, component, integration, and integration testing are recursive:
The smallest compliable component. A unit typically is the work of one programmer (At leastin principle). As defined, it does not include any called sub-components (for procedural languages)or communicating components in general.
Unit Testing:
in unit testing called components (or communicating components) are replaced withstubs, simulators, or trusted components. Calling components are replaced with drivers or trustedsuper-components. The unit is tested in isolation.
a unit is a component. The integration of one or more components is a component.Note: The reason for "one or more" as contrasted to "Two or more" is to allow for components thatcall themselves recursively.
component testing:
same as unit testing except that all stubs and simulators are replaced with thereal thing.Two components (actually one or more) are said to be integrated when:a. They have been compiled, linked, and loaded together.b. They have successfully passed the integration tests at the interface between them.Thus, components A and B are integrated to create a new, larger, component (A,B). Note that thisdoes not conflict with the idea of incremental integration—it just means that A is a big componentand B, the component added, is a small one.
Integration testing:
carrying out integration tests.Integration tests (After Leung and White) for procedural languages. This is easily generalized for OOlanguages by using the equivalent constructs for message passing. In the following, the word "call"is to be understood in the most general sense of a data flow and is not restricted to just formalsubroutine calls and returns – for example, passage of data through global data structures and/orthe use of pointers.
 Let A and B be two components in which A calls B.Let Ta be the component level tests of ALet Tb be the component level tests of BTab The tests in A's suite that cause A to call B.Tbsa The tests in B's suite for which it is possible to sensitize A -- the inputsare to A, not B.Tbsa + Tab == the integration test suite (+ = union).
Sensitize is a technical term. It means inputs that will cause a routine to go down a specifiedpath. The inputs are to A. Not every input to A will cause A to traverse a path in which B is called.Tbsa is the set of tests which do cause A to follow a path in which B is called. The outcome of thetest of B may or may not be affected.There have been variations on these definitions, but the key point is that it is pretty darn formal andthere's a goodly hunk of testing theory, especially as concerns integration testing, OO testing, andregression testing, based on them.As to the difference between integration testing and system testing. System testing specifically goesafter behaviors and bugs that are properties of the entire system as distinct from propertiesattributable to components (unless, of course, the component in question is the entire system).Examples of system testing issues:Resource loss bugs, throughput bugs, performance, security, recovery,Transaction synchronization bugs (often misnamed "timing bugs").
3. What's the difference between load and stress testing ?
One of the most common, but unfortunate misuse of terminology is treating “load testing” and “stress testing” as synonymous. The consequence of this ignorant semantic abuse is usually thatthe system is neither properly “load tested” nor subjected to a meaningful stress test.
Stress testing
is subjecting a system to an unreasonable load while denying it the resources (e.g.,RAM, disc, mips, interrupts, etc.) needed to process that load. The idea is to stress a system to thebreaking point in order to find bugs that will make that break potentially harmful. The system is notexpected to process the overload without adequate resources, but to behave (e.g., fail) in a decentmanner (e.g., not corrupting or losing data). Bugs and failure modes discovered under stress testingmay or may not be repaired depending on the application, the failure mode, consequences, etc. Theload (incoming transaction stream) in stress testing is often deliberately distorted so as to force thesystem into resource depletion.
Load testing
is subjecting a system to a statistically representative (usually) load. The two mainreasons for using such loads is in support of software reliability testing and in performance testing.The term "load testing" by itself is too vague and imprecise to warrant use. For example, do youmean representative load," "overload," "high load," etc. In performance testing, load isvaried from a minimum (zero) to the maximum level the system can sustain without running out of resources or having, transactions >suffer (application-specific) excessive delay.A third use of the term is as a test whose objective is to determine the maximum sustainable loadthe system can handle. In this usage, "load testing" is merely testing at the highest transactionarrival rate in performance testing.
4. What's the difference between QA and testing?
QA is more a preventive thing, ensuring quality in the company and therefore the product ratherthan just testing the product for software bugs?TESTING means "quality control"QUALITY CONTROL measures the quality of a productQUALITY ASSURANCE measures the quality of processes used to create aquality product.
5. What is the best tester to developer ratio?
tester: developer
ratios range from 10:1 to 1:10.There's no simple answer. It depends on so many things, Amount of reused code, number and typeof interfaces, platform, quality goals, etc.It also can depend on the development model. The more specs, the less testers. The roles can playa big part also. Does QA own beta? Do you include process auditors or planning activities?These figures can all vary very widely depending on how you define "tester" and "developer". Insome organizations, a "tester" is anyone who happens to be testing software at the time -- such astheir own. In other organizations, a "tester" is only a member of an independent test group.It is better to ask about the test labor content than it is to ask about the tester/developer ratio. Thetest labor content, across most applications is generally accepted as 50%, when people do honestaccounting. For life-critical software, this can go up to 80%.
6. What is Software Quality Assurance?
Software QA involves the entire software development PROCESS - monitoring and improving theprocess, making sure that any agreed-upon standards and procedures are followed, and ensuringthat problems are found and dealt with. It is oriented to 'prevention'.
7. What is Software Testing?
Testing involves operation of a system or application under controlled conditions and evaluating theresults (eg, 'if the user is in interface A of the application while using hardware B, and does C, then Dshould happen'). The controlled conditions should include both normal and abnormal conditions.Testing should intentionally attempt to make things go wrong to determine if things happen whenthey shouldn't or things don't happen when they should. It is oriented to 'detection'.Organizations vary considerably in how they assign responsibility for QA and testing. Sometimesthey're the combined responsibility of one group or individual. Also common are project teams thatinclude a mix of testers and developers who work closely together, with overall QA processesmonitored by project managers. It will depend on what best fits an organization's size and businessstructure.
8. What are some recent major computer system failures caused by Software bugs?
In March of 2002 it was reported that software bugs in Britain's national tax systemresulted in more than 100,000 erroneous tax overcharges. The problem was partlyattibuted to the difficulty of testing the integration of multiple systems.
A newspaper columnist reported in July 2001 that a serious flaw was found in off-the-shelf software that had long been used in systems for tracking certain U.S. nuclear materials.The same software had been recently donated to another country to be used in trackingtheir own nuclear materials, and it was not until scientists in that country discovered theproblem, and shared the information, that U.S. officials became aware of the problems.
According to newspaper stories in mid-2001, a major systems development contractorwas fired and sued over problems with a large retirement plan management system.

Activity (5)

You've already reviewed this. Edit your review.
1 thousand reads
1 hundred reads
sreddy786 liked this

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->