This action might not be possible to undo. Are you sure you want to continue?
Introduction Definition Need for Testing Misunderstanding about Testing Testing Techniques Types of Testing Levels of Testing Final version of Testing - Alpha Testing - Beta Testing When to stop Testing? Conclusion
Compiled by V. Raj Kumar
and demonstrating the difference between the actual status and the required status. preparing. A successful test is one that uncovers an as yet undiscovered error. Role of Testing Primary Determine whether system meets specifications Determine whether system meets needs Secondary Instill confidence Continuously improve the testing process . A good test case is one that has a high probability of finding an as yet undiscovered error. executing and analyzing.Software Testing Introduction: “Testing is a process of planning.and humans have only limited ability to manage complexity. but because the complexity of software is generally intractable -. Main objective Testing is a process of executing a program with the intent of finding an error. Identifies defects before software deployment Reduces incompatibility and interoperability issues To reduce the cost of rework by detecting defects at an early stage. aimed at establishing the characteristics of an information system.” A primary purpose for testing is to detect software failures so that defects may be uncovered and corrected Software bugs will almost always exist in any software module with moderate size: not because programmers are careless or irresponsible.
S. Verification refers to the set of activities that ensure that software correctly implements a specific function.. Quality Control: Mechanism to ensure that the required quality characteristics exist in the finished product. Testing reduces the level of uncertainty about the quality of a system. economy $59. Quality Assurance: Ensures that the quality management procedures work. Validation refers to the test phase of the life cycle which ensures that the end product meets the user’s needs.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 (IEEE 83a) 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 NIST in 2002 reports that software bugs cost the U.5 billion annually. Verification: Have we built the software right (i. does it match the specification?)? It is process based.e. imposed at the start of that phase. .
Validation: Have we built the right software (i. Developers hide their mistakes Avoid project overruns by following a defined test methodology. Misunderstandings about testing o Testing is debugging o Testing is not the job of a programmer o If 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 task Types of Testing • • • Black Box Testing White Box Testing Grey Box Testing Black Box Testing As the name itself suggests. In the same way in black box testing it is not required to know about code but the knowledge of functionality is mandatory..e. is this what the customer wants?)? It is product based. we cannot see anything in a black box. Black box testing treats the software as a without any knowledge of internal implementation That's why there are situations when .
black box testing has the advantage of an unaffiliated opinion on the one hand and the disadvantage of blind exploring on the other. and translucent box testing or structural testing White box testing. but also much more time consuming than Black box testing and requires some knowledge of development processes. There are several levels of Code coverage.1. like Black Box. A black box tester writes many test cases to check something that can be tested by only one test case and/or 2. transparent box testing. is when the tester has access to the internal data structures and algorithms White Box. White box testing is often more thorough. glass box testing. Some parts of the back end are not tested at all Therefore. by contrast to black box testing. which is where the code itself is covered by test cases. White Box Testing White box testing also called clear box testing. Tests based on the internal logic of the application are called White Box tests. is a test design method. . White Box often talks of Code Coverage.
written contract that the piece of code must satisfy. but testing at the user. This involves having access to internal data structures and algorithms for purposes of designing the test cases.Black box testing White box testing Black Box testing is planned without White Box testing is planned with the the intimate knowledge of the program intimate knowledge of the program Black Box test is usually based on White Box testing aims at testing each specification of the program Grey Box Testing The term grey box testing has come into common usage. Unit tests find problems early in the development cycle.it is impossible to evaluate all execution paths for all but the most trivial programs Unit Testing Integration Testing System Testing Acceptance Testing Regression Testing Performance Testing Security Testing Recovery Testing . aspect of the program logic Levels of Testing Unit 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. or black-box level. it affords several benefits. Disadvantages Testing cannot be expected to catch every error in the program . As a result.
Testing of combined parts of an application to determine if they function together correctly. etc.Integration Testing Intermediate level of testing 'Integration testing' (sometimes called Integration and Testing. The testing of joined components of a system to determine if they function correctly together. and delivers as its output the integrated system ready for system testing. It follows unit testing and precedes system testing. applies tests defined in an integration test plan to those aggregates. Component Integration Testing is likely to focus on the two components operating correctly as a single solution. Components in this sense are modules or units of code within the same system. An example may be the integration of a shopping basket component with a web component. The ‘parts’ can be code modules. Integration testing takes as its input modules that have been unit tested. System Testing . abbreviated I&T) is the phase of software testing in which individual software modules are combined and tested as a group. Progressively unit tested software components are integrated and tested until the software works as a whole Test that evaluate the interaction and consistency of interacting components. client and server applications on a network. groups them in larger aggregates. individual applications.
System testing falls within the scope of black box testing. integrated system to evaluate the system's compliance with its specified requirements.g. customers or other authorized entity to determine whether or not to accept the system. QA testing. release acceptance. Performance Testing It will make sure that product does not take up much of the system resource and time taking for executing task. hardware or environment. black-box testing. if save operation takes up more than 5 minutes and also testing will check that response time meets the user requirement. Security Testing It is currently top of many peoples list of testing they should do. . and as such. lots of manufactured mechanical parts. final testing. confidence testing. . should require no knowledge of the inner design of the code or logic Acceptance Testing Formal testing with respect to user needs. software. It is also known as functional testing. Common methods of regression testing include re-running previously run tests and checking whether previously fixed faults have re-emerged. application testing. or batches of chemical products) prior to its delivery. and business processes conducted to determine whether or not a system satisfies the acceptance criteria and to enable the user. or factory acceptance testing Regression Testing Regression 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. requirements.- System testing of software or hardware is testing conducted on a complete. The Process to determine that an IS (Information System) protects data and maintains functionality as intended. Acceptance testing is black-box testing performed on a system (e. Imagine the reaction of the user. validation testing. although it’s hard to see what people are expecting from security testing.
integrity. Advanced Level (CTAL) offered by the International Software Testing Qualification Board Final version of testing Before shipping the final version of software. before it is released to external customers . availability and non-repudiation Quality assurance certifications CSQE offered by the American Society for Quality (ASQ) CSQA offered by the Quality Assurance Institute (QAI) Testing certifications Certified Software Tester (CSTE) ISEB offered by the Information Systems Examinations Board ISTQB Certified Tester. alpha and beta testing are often done additionally: Alpha testing takes place at developers' sites. authorization. and involves testing of the operational system by internal staff.The six basic security concepts that need to be covered by security testing are: Confidentiality. authentication.
The stopping time can be decided by the trade-off of time and budget. Automation is a good way to cut down cost and time. Complexity is the root of the problem. . Test cases completed with certain percentage passed. The latter is often called “field testing”. experience and intuition. or requirements reaches a specified point. Or if the reliability estimate of the software product meets requirement. although there are many tools and techniques available to use. Good testing also requires a tester's creativity. Common factors in deciding when to stop are.. Many modern software applications are so complex and run in such an interdependent environment. Testing efficiency and effectiveness is the criteria for coverage-based testing techniques. Coverage of code. • Complete testing is infeasible. • Testing is expensive. Conclusion: • Software testing is an art. · · · · · Deadlines. Testing is not only used to locate defects and correct them. or Beta or alpha testing period ends. and involves testing by a group of customers who use the system at their own locations and provide feedback. testing deadlines. verification process. It is nowhere near maturity.g. Most of the testing methods and practices are not very different from 20 years ago. When to stop testing? This can be difficult to determine.. It is also used in validation. before the system is released to other customers. that complete testing can never be done. release deadlines. Bug rate falls below a certain level. and reliability measurement. e. • Testing is more than just debugging. Test budget has been depleted.Beta testing takes place at customers' sites. functionality. together with proper techniques.
and clean-room engineering. may be even better. Alternative methods. such as inspection.• Testing may not be the most effective method to improve software quality. .
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue listening from where you left off, or restart the preview.