Comments
Transcript
Software Testing 1 CA267 Ray Walshe 2015
Software Testing CA267 Ray Walshe 2015 1 Who I Am • Ray Walshe – E-mail: [email protected] – www.computing.dcu.ie/~ray CA267 Ray Walshe 2015 2 Outline for today Introduction • Course description • Software Testing Basics CA267 Ray Walshe 2015 3 Course Resources • Lectures Weeks 1 -12 – Mon 10:00am – Tue 13:00pm • Schedule • Lecture notes & slides • Recommended book – Software Testing A Craftsman's Approach 2nd edition, Paul C. Jorgensen, CRC Press • Past exams • Project description CA267 Ray Walshe 2015 4 Project component • Design and implement software enhancements and testing • Groups of 3/4 • 25% of total grade • Two parts: – Develop a test plan – Implement your test plan CA267 Ray Walshe 2015 5 Goals of this course • Become familiar with software testing and quality assurance concepts and methods • Learn how to design and plan software testing activities • Experience software testing in a project that uses several components Note: – “Scratching the surface of software testing and QA” – “Fitting you to become an amateur software tester” CA267 Ray Walshe 2015 6 Course outline Unit 1: Overview of Software Testing (Chapter 1-2) • Unit 2: Mathematics for S/W Testers (Chapters 3-4) • Unit 3: Black Box / Functional Testing (Chapters 5-8) • Unit 4: White Box / Structural Testing (Chapters 9-11) • Unit 5: Integration and System Testing (Chapter 12-13) CA267 Ray Walshe 2015 7 Course Grade Component Weight Project Final Exam 25% 75% CA267 Ray Walshe 2015 8 Outline for today • Introduction • Course description Software testing basics CA267 Ray Walshe 2015 9 Motivation Software problems and related faults: • Ariane 5 rocket – cost $500M Data conversion (64-bit to 16-bit format) • Therac 25 – cost 6 lives Overdosing patients during radiation • Mars missions – orbital explores & polar lander – cost $300M Mixture of pounds and kilograms • NASA Mariner 1 probe – Period instead of a comma in FORTRAN do-loop • AT&T long distance service fails for 9 hours Wrong break statement in C-code • USS Yorktow cruiser Input division by zero CA267 Ray Walshe 2015 10 Software Lifecycle • • • • • • • • Requirements phase Analysis phase Design phase (System and Object) Implementation phase Testing phase Integration phase Maintenance phase Retirement CA267 Ray Walshe 2015 11 Software Lifecycle Activities ...and their models Requirements Elicitation Analysis Expressed in Terms Of System Design Structured By Object Design Implementation Implemented By Realized By Verified By class... class... class... Use Case Model CA267 Ray Walshe 2015 Application Subsystems Domain Objects Testing Solution Domain Objects Source Code ? class.... ? Test Cases 12 Software Testing: Definition “The process of devising a set of inputs to a given piece of software that will cause the software to exercise some portion of its code. The developer of the software can then check that the results produced by the software are in accord with his or her expectations.” www.reactive-systems.com/esda-glossary.msp CA267 Ray Walshe 2015 13 A Testing Cycle Although testing varies between organizations, there is a cycle to testing: 1. Requirements Analysis: Testing should begin in the requirements phase of the software life cycle (SDLC). 2. Design Analysis: During the design phase, testers work with developers in determining what aspects of a design are testable and under what parameter those testers work. 3. Test Planning: Test Strategy, Test Plan(s), Test Bed creation. 4. Test Development: Test Procedures, Test Scenarios, Test Cases, Test Scripts to use in testing software. 5. Test Execution: Testers execute the software based on the plans and tests and report any errors found to the development team. 6. Test Reporting: Once testing is completed, testers generate metrics and make final reports on their test effort and whether or not the software tested is ready for release. 7. Retesting the Defects CA267 Ray Walshe 2015 14 Some Software Testing Objectives • • • • • • • Find as many defects as possible. Find important problems fast. Assess perceived quality risks. Advise about perceived project risks. Advise about perceived quality. Certify to a given standard. Assess conformance to a specification (requirements, design, or product claims). CA267 Ray Walshe 2015 15 Software Quality Assurance: Definition “The function of software quality that assures that the standards, processes, and procedures are appropriate for the project and are correctly implemented.” www.hq.nasa.gov/office/codeq/software/umbrella_defs.htm CA267 Ray Walshe 2015 16 Software Maintenance: Definitions Software Evolution: “A continuous change from a lesser, simpler, or worse state to a higher or better state [for a software system]” www.cc.gatech.edu/reverse/glossary.htm Software Maintenance: “Software maintenance is one of the activities in software engineering, and is the process of enhancing, porting, and optimizing deployed software, as well as remedying defects” CA267 Ray Walshe 2015 17 Average cost distribution (1976–1981 data) Object-Oriented and Classical Software Engineer, 5th Edition, Schach (2002) CA267 Ray Walshe 2015 18 Summary • Testing is an important part of the Software Lifecycle • Highly technical and challenging • It is affected by the selected process • Quality Assurance is paramount both for mission critical and non-critical systems • Software Evolution aims to keep systems operational when environment changes occur CA267 Ray Walshe 2015 19