MCA –Software Engineering Kantipur City College

Slides:



Advertisements
Similar presentations
Software Testing Techniques
Advertisements

Software Testing Technique. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves.
Defect testing Objectives
Lecture 8: Testing, Verification and Validation
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Software Engineering-II Sir zubair sajid. What’s the difference? Verification – Are you building the product right? – Software must conform to its specification.
Software testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing an individual module
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Software Testing & Strategies
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 13 & 14 Software Testing Strategies and Techniques
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's.
System/Software Testing
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 23 Slide 1 Software testing Slightly adapted by Anders Børjesson.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Integration testing l Tests complete systems or subsystems composed of integrated.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Chapter 12: Software Testing Omar Meqdadi SE 273 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Prof. Mohamed Batouche Software Testing.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing Testing types Testing strategy Testing principles.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Black Box Testing Techniques Chapter 7. Black Box Testing Techniques Prepared by: Kris C. Calpotura, CoE, MSME, MIT  Introduction Introduction  Equivalence.
Software Testing Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
Verification and Validation Assuring that a software system meets a user's needs.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Defect testing l Testing programs to establish the presence of system defects.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CS451 Lecture 10: Software Testing Yugi Lee STB #555 (816)
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Chapter 12: Software Testing Omar Meqdadi SE 273 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
ANOOP GANGWAR 5 TH SEM SOFTWARE TESTING MASTER OF COMPUTER APPLICATION-V Sem.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Software Testing. SE, Testing, Hans van Vliet, © Nasty question  Suppose you are being asked to lead the team to test the software that controls.
Defect testing Testing programs to establish the presence of system defects.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Software Testing Strategies for building test group
Software Testing.
Software Testing.
CSC 480 Software Engineering
Software Testing Techniques
Software Engineering (CSI 321)
Chapter 13 & 14 Software Testing Strategies and Techniques
Lecture 09:Software Testing
Verification and Validation Unit Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Software testing.
Chapter 10 – Software Testing
Software Testing “If you can’t test it, you can’t design it”
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

MCA –Software Engineering Kantipur City College Software Validation MCA –Software Engineering Kantipur City College

Topics include Validation Planning Testing Fundamentals Test plan creation Test-case generation Black-box Testing White Box Testing Unit Testing Integration Testing System testing Object-oriented Testing

Verification Vs. Validation Two questions Are we building the right product ? => Validation Are we building the product right ? = > Verification People Money Machines Materials Building product right Efficiency making best use of resources in achieving goals Building the right product Effectiveness choosing effective goals and achieving them

Verification & Validation Software V & V is a disciplined approach to assessing software products throughout the SDLC. V & V strives to ensure that quality is built into the software and that the software satisfies business functional requirements. V & V is to ensures that software conforms to its specification and meets the needs of the customers. V & V employs review, analysis, and testing techniques to determine whether a software product and its intermediate deliverables comply with requirements. These requirements include both business functional capabilities and quality attributes. V & V provide management with insights into the state of the project and the software products, allowing for timely change in the products or in the SDLC approach. V & V is typically applied in parallel with software development and support activities.

Verification & Validation Verification involves checking that The software conforms to its specification. System meets its specified functional and non-functional requirements. “Are we building the product right ?” Validation, a more general process ensure that the software meets the expectation of the customer. “Are we building the right product ?” You can't test in quality. If its not there before you begin testing, it won’t be there when you’re finished testing.

Techniques of system checking & Analysis Software inspections Concerned with analysis of the static system representation to discover problems (static verification) such as Requirements document Design diagrams and Program source code It do not require the system to be executed. This techniques include program inspections, automated source code analysis and formal verification. It can’t check the non-functional characteristics of the software such as its performance and reliability.

Techniques of system checking & Analysis Software testing It involves executing an implementation of the software with test data and examining the outputs of the software and its operational behavior to check that it is performing as required. It is a dynamic techniques of verification and validation. The system is executed with test data and its operational behaviour is observed. Two distinct types of testing Defect testing : to find inconsistencies between a program and its specification. Statistical testing : to test program’s performance and reliability and to check how it works under operational conditions

Static and Dynamic V & V

Software Testing fundamentals Testing is a set of activities that can be planned in advance and conducted systematically. Testing is the process of executing a program with the intent of finding errors. A good test case is one with a high probability of finding an as-yet undiscovered error. A successful test is one that discovers an as-yet-undiscovered error.

Software testing priciples All tests should be traceable to customer requirements. Tests should be planned long before testing begins. The Pareto principle (80% of all errors will likely be found in 20% of the code) applies to software testing. Testing should begin in the small and progress to the large. Exhaustive testing is not possible. To be most effective, testing should be conducted by an independent third party.

Software Testability Checklist Operability-the better it works the more efficiently it can be tested Observability-what you see is what you test Controllability-the better software can be controlled the more testing can be automated and optimized Decomposability-by controlling the scope of testing, the more quickly problems can be isolated and retested intelligently Simplicity-the less there is to test, the more quickly we can test Stability-the fewer the changes, the fewer the disruptions to testing Understandability-the more information known, the smarter the testing

V&V Vs. Debugging Verification and validation Debugging A process that establishes the existence of defects in a software system. The ultimate goal of the V&V process is to establish confidence that the software system is “fit for purpose”. Debugging A process that locates and corrects these defects

The defect testing process Test data Inputs which have been devised to test the system Test cases Inputs to test the system and the predicted outputs from these inputs if the system operates according to its specification

Project Planning Plan Description Quality Plan Describes the quality procedure and standards that will be used in a project. Validation Plan Describes the approach, resources and schedule used for system validation. Configuration Management Plan Describes the configuration management procedures and structures to be used. Maintenance Plan Predicts the maintenance requirements of the system, maintenance costs and effort required. Staff development Plan Describes how the skills and experience of the project team members will be developed.

Verification and Validation Plan Test Plan as a link between development and testing

Testing Process

Testing Process Unit testing - Individual components are tested independently, without other system components Module testing - Related collections of dependent components( class, ADT, procedures & functions) are tested, without other system module. Sub-system testing-Modules are integrated into sub-systems and tested. The focus here should be on interface testing to detect module interface errors or mismatches. System testing - Testing of the system as a whole. Validating functional and non-functional requirements & Testing of emergent system properties. Acceptance testing-Testing with customer data to check that it is acceptable. Also called Alpha Testing

The testing process Component testing Testing of individual program components Usually the responsibility of the component developer (except sometimes for critical systems) Tests are derived from the developer’s experience Integration testing Testing of groups of components integrated to create a system or sub-system The responsibility of an independent testing team Tests are based on a system specification

The testing process Acceptance Testing Making sure the software works correctly for intended user in his or her normal work environment. Alpha test-version of the complete software is tested by customer under the supervision of the developer at the developer’s site. Beta test-version of the complete software is tested by customer at his or her own site without the developer being present

Black-box testing Also known as behavioral or functional testing. The system is a “Blackbox” whose behavior can be determined by studying its inputs and related outputs. Knowing the specified function a product is to perform and demonstrating correct operation based solely on its specification without regard for its internal logic. Focus on the functional requirements of the software i.e., information domain not the implementation part of the software and disregards control structure. The program test cases are based on the system specification It is performed during later stages of testing like in the acceptance testing or beta testing.

Black-box testing

Black-box testing Test are designed to answer the following questions: How is functional validity tested? How is system behavior and performance tested? What classes of input behavior will make good test case? Is the system particularly sensitive to certain input values? How are the boundaries of data class isolated? What data rates and data volume can the system tolerate? What effect will specific combinations of data have on system operations?

Advantages of Black box testing Validates whether or not a given system conforms to its software specification Introduce a series of inputs to a system and compare the outputs to a pre-defined test specification. Test integration between individual system components. Tests are architecture independent — they do not concern themselves with how a given output is produced, only with whether that output is the desired and expected output. Require no knowledge of the underlying system, one need not be a software engineer to design black box tests.

Disadvantages of Black box testing Offer no guarantee that every line of code has been tested. Being architecture independent, it cannot determine the efficiency of the code. Will not find any errors, such as memory leaks, that are not explicitly and instantly exposed by the application.

Black-box testing techniques Graph-based testing methods Equivalence Partitioning, Boundary Value Analysis (BVA) Comparison Testing Orthogonal Array Testing.

Equivalence Partitioning Black-box technique that divides the input domain into classes of data from which test cases can be derived An ideal test case uncovers a class of errors( incorrect processing of all incorrect data) that might require many arbitrary test cases to be executed before a general error is observed Equivalence class guidelines: If input condition specifies a range, one valid and two invalid equivalence classes are defined If an input condition requires a specific value, one valid and two invalid equivalence classes are defined If an input condition specifies a member of a set, one valid and one invalid equivalence class is defined If an input condition is Boolean, one valid and one invalid equivalence class is defined 

Equivalence Partitioning

Equivalence Partitioning

Boundary Value Analysis (BVA) Black-box technique that focuses on the boundaries of the input domain rather than its center BVA guidelines: If input condition specifies a range bounded by values a and b, test cases should include a and b, values just above and just below a and b If an input condition specifies and number of values, test cases should be exercise the minimum and maximum numbers, as well as values just above and just below the minimum and maximum values Apply guidelines 1 and 2 to output conditions, test cases should be designed to produce the minimum and maxim output reports If internal program data structures have boundaries (e.g. size limitations), be certain to test the boundaries

Comparison Testing Also called back-to-back testing. Black-box testing for safety critical systems ( such as aircraft avionics, automobile braking system) in which independently developed implementations of redundant systems are tested for conformance to specifications Often equivalence class partitioning is used to develop a common set of test cases for each implementation.

Orthogonal Array Testing Black-box technique that enables the design of a reasonably small set of test cases that provide maximum test coverage Focus is on categories of faulty logic likely to be present in the software component (without examining the code) Priorities for assessing tests using an orthogonal array Detect and isolate all single mode faults Detect all double mode faults Mutimode faults

White-box or Glass Box testing Knowing the internal workings of a product, tests are performed to check the workings of all independent logic paths. It derive test cases that: Guarantee that all independent paths within a module have been exercised at least once. Exercise all logical decisions on their true and false sides. Execute all loops at their boundaries and within their operational bounds, and Exercise internal data structures to ensure their validity. Techniques being used: basic path and control structure testing.

White-box or Glass Box testing

Integration Testing Tests complete systems or subsystems composed of integrated components Integration testing should be black-box testing with tests derived from the specification Main difficulty is localising errors Incremental integration testing reduces this problem. Incremental integration strategies include Top-down integration Bottom-up integration Regression testing Smoke testing

Approaches to integration testing Top-down testing Start with high-level system and integrate from the top-down replacing individual components by stubs where appropriate Bottom-up testing Integrate individual components in levels until the complete system is created In practice, most integration involves a combination of these strategies

Top-down testing

Bottom-up testing

System Testing Recovery testing Security testing Stress testing Checks the system’s ability to recover from failures. Security testing Verifies that system protection mechanism prevent improper penetration or data alteration Stress testing Program is checked to see how well it deals with abnormal resource demands – quantity, frequency, or volume. Performance testing Designed to test the run-time performance of software, especially real-time software.

Object-oriented Testing The components to be tested are object classes that are instantiated as objects Larger gain than individual functions so approaches to white-box testing have to be extended No obvious ‘top’ to the system for top-down integration and testing

Acceptance Test Format Test Item List Identification of Test-item Testing Detail Detailed testing procedure Testing Result Summary of testing-item

Test-item List Item No. Test Item Sub –item No. Test-Sub Item Level SR-02 Staff Review SR-02-01 Program Officer Review A SR-02-02 Early Decline Report Test-Level A- Basic Function, compulsory B- Enhanced Function, compulsory C- Enhanced Function, optional

Testing Details SR-02 Staff Review Item No SR-02-01 Test Date Item Sub-item PO Review Report: Early Decline Precondition Test Procedure Test Standard Test description Test Result and Conclusion Passed Failed Sin of the Tester Sign of the Manager

References From software engineering, A practitioner’s approach by Roger S. Pressman Chapter 17: Software testing techniques Software Testing Fundamentals Test case design White-box testing- Basic path, Control Structure Testing Black-box testing Chapter 18: Software Testing Strategies A strategic approach to software testing Unit, Integration, Validation, System testing From Software Engineering, Ian Sommerville Part5: Verification and Validation Chapter 19: Verification and validation Chapter 20: Software testing