You are on page 1of 11

SOFTWARE TESTING

Introduction Definition Need for Testing Misunderstanding about Testing Testing Techniques Ty es of Testing !e"e#s of Testing Fina# "ersion of Testing $ A# ha Testing $ %eta Testing When to sto Testing& 'onc#usion

'o( i#ed by V. Raj Kumar

Software Testing
Introduction: Testing is a process of planning, preparing, executing and analyzing, aimed at establishing the characteristics of an information system, and demonstrating the difference between the actual status and the required status. A primary purpose for testing is to detect software failures so that defects may be uncovered and corrected oftware bugs will almost always exist in any software module with moderate size! not because programmers are careless or irresponsible, but because the complexity of software is generally intractable "" and humans have only limited ability to manage complexity. Main objective Testing is a process of executing a program with the intent of finding an error. A good test case is one that has a high probability of finding an as yet undiscovered error. A successful test is one that uncovers an as yet undiscovered error. #dentifies defects before software deployment $educes incompatibility and interoperability issues To reduce the cost of rewor% by detecting defects at an early stage.

Role of Testing &rimary 'etermine whether system meets specifications 'etermine whether system meets needs econdary #nstill confidence (ontinuously improve the testing process

Definition Testing is the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirements " )#*** +,a A process of demonstrating that errors are not present. A way of establishing confidence that a program does what it is supposed to do.

Need for Testing? A study conducted by /# T in 0110 reports that software bugs cost the 2. . economy 345.4 billion annually. Testing reduces the level of uncertainty about the quality of a system. Quality Control: 6echanism to ensure that the required quality characteristics exist in the finished product. Quality ssurance: *nsures that the quality management procedures wor%. !erification refers to the set of activities that ensure that software correctly implements a specific function, imposed at the start of that phase. !alidation refers to the test phase of the life cycle which ensures that the end product meets the user7s needs. 8erification! 9ave we built the software right )i.e., does it match the specification.-. #t is process based.

8alidation! 9ave we built the right software )i.e., is this what the customer wants.-. #t is product based. 'evelopers hide their mista%es Avoid pro:ect overruns by following a defined test methodology.

Misunderstandings about testing o Testing is debugging o Testing is not the :ob of a programmer o #f programmers were more careful testing would be unnecessary o Testing never ends o Testing activities start only after the coding is complete o Testing is not a creative tas% Ty"es of Testing ; ; ; <lac% <ox Testing =hite <ox Testing >rey <ox Testing

#lac$ #o% Testing As the name itself suggests, we cannot see anything in a blac% box. #n the same way in blac% box testing it is not required to %now about code but the %nowledge of functionality is mandatory. <lac% box testing treats the software as a without any %nowledge of internal implementation That?s why there are situations when

@. A blac% box tester writes many test cases to chec% something that can be tested by only one test case andAor 0. ome parts of the bac% end are not tested at all Therefore, blac% box testing has the advantage of an unaffiliated opinion on the one hand and the disadvantage of blind exploring on the other. &'ite #o% Testing =hite box testing also called clear box testing, glass box testing, transparent box testing, and translucent box testing or structural testing =hite box testing, by contrast to blac% box testing, is when the tester has access to the internal data structures and algorithms =hite <ox, li%e <lac% <ox, is a test design method. Tests based on the internal logic of the application are called =hite <ox tests. =hite box testing is often more thorough, but also much more time consuming than <lac% box testing and requires some %nowledge of development processes. =hite <ox often tal%s of (ode (overage, which is where the code itself is covered by test cases. There are several levels of (ode coverage.

#lac$ bo% testing &'ite bo% testing <lac% <ox testing is planned without =hite <ox testing is planned with the the intimate %nowledge of the program intimate %nowledge of the program

<lac% <ox test is usually based on =hite <ox testing aims at testing each specification of the program (rey #o% Testing The term grey box testing has come into common usage. This involves having access to internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or blac%"box level. aspect of the program logic

)evels of Testing *nit Testing The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. A unit test provides a strict, written contract that the piece of code must satisfy. As a result, it affords several benefits. 2nit tests find problems early in the development cycle. Disadvantages Testing cannot be expected to catch every error in the program " it is impossible to evaluate all execution paths for all but the most trivial programs 2nit Testing #ntegration Testing ystem Testing Acceptance Testing $egression Testing &erformance Testing ecurity Testing $ecovery Testing

Integration Testing #ntermediate level of testing ?#ntegration testing? )sometimes called #ntegration and Testing, abbreviated #BTis the phase of software testing in which individual software modules are combined and tested as a group. #t follows unit testing and precedes system testing. #ntegration testing ta%es as its input modules that have been unit tested, groups them in larger aggregates, applies tests defined in an integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing. The testing of :oined components of a system to determine if they function correctly together. (omponents in this sense are modules or units of code within the same system. An example may be the integration of a shopping bas%et component with a web component. (omponent #ntegration Testing is li%ely to focus on the two components operating correctly as a single solution. Testing of combined parts of an application to determine if they function together correctly. The Cparts7 can be code modules, individual applications, client and server applications on a networ%, etc. &rogressively unit tested software components are integrated and tested until the software wor%s as a whole Test that evaluate the interaction and consistency of interacting components. Syste+ Testing

"

Syste+ testing of software or hardware is testing conducted on a complete, integrated system to evaluate the system?s compliance with its specified requirements. ystem testing falls within the scope of blac% box testing, and as such, should require no %nowledge of the inner design of the code or logic

cce"tance Testing " Dormal testing with respect to user needs, requirements, and business processes conducted to determine whether or not a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system. " cce"tance testing is blac%"box testing performed on a system )e.g. software, lots of manufactured mechanical parts, or batches of chemical products- prior to its delivery. #t is also %nown as functional testing, blac%"box testing, release acceptance, EA testing, application testing, confidence testing, final testing, validation testing, or factory acceptance testing Regression Testing $egression testing can be defined as the retesting of a previously tested program following modification to ensure that faults have not been introduced or uncovered as a result of the changes made to software, hardware or environment. . (ommon methods of regression testing include re"running previously run tests and chec%ing whether previously fixed faults have re"emerged. ,erfor+ance Testing " #t will ma%e sure that product does not ta%e up much of the system resource and time ta%ing for executing tas%. #magine the reaction of the user, if save operation ta%es up more than 4 minutes and also testing will chec% that response time meets the user requirement. Security Testing " " #t is currently top of many peoples list of testing they should do, although it7s hard to see what people are expecting from security testing. The &rocess to determine that an # maintains functionality as intended. )#nformation ystem- protects data and

The six basic security concepts that need to be covered by security testing are! (onfidentiality, integrity, authentication, authorization, availability and non"repudiation Quality assurance certifications ( E* offered by the American ociety for Euality )A E ( EA offered by the Euality Assurance #nstitute )EA#-

Testing certifications (ertified oftware Tester )( T* # *< offered by the #nformation ystems *xaminations <oard # TE< (ertified Tester, Advanced Fevel )(TAF- offered by the #nternational oftware Testing Eualification <oard

-inal version of testing <efore shipping the final version of software, alpha and beta testing are often done additionally! l"'a testing ta%es place at developers? sites, and involves testing of the operational system by internal staff, before it is released to external customers

#eta testing ta%es place at customers? sites, and involves testing by a group of customers who use the system at their own locations and provide feedbac%, before the system is released to other customers. The latter is often called field testing. &'en to sto" testing? This can be difficult to determine. 6any modern software applications are so complex and run in such an interdependent environment, that complete testing can never be done. (ommon factors in deciding when to stop are... G G G G G 'eadlines, e.g. release deadlines, testing deadlinesH Test cases completed with certain percentage passedH Test budget has been depletedH (overage of code, functionality, or requirements reaches a specified pointH <ug rate falls below a certain levelH or <eta or alpha testing period ends.

Conclusion:

oftware testing is an art. 6ost of the testing methods and practices are not very different from 01 years ago. #t is nowhere near maturity, although there are many tools and techniques available to use. >ood testing also requires a tester?s creativity, experience and intuition, together with proper techniques.

Testing is more than :ust debugging. Testing is not only used to locate defects and correct them. #t is also used in validation, verification process, and reliability measurement.

Testing is expensive. Automation is a good way to cut down cost and time. Testing efficiency and effectiveness is the criteria for coverage"based testing techniques.

(omplete testing is infeasible. (omplexity is the root of the problem. The stopping time can be decided by the trade"off of time and budget. Ir if the reliability estimate of the software product meets requirement.

Testing may not be the most effective method to improve software quality. Alternative methods, such as inspection, and clean"room engineering, may be even better.

You might also like