Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Essence and Accident Inherent Difficulties –Complexity –Conformity.

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.
Unit-V testing strategies and tactics.
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 CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 1 Object-Oriented.
Creator: ACSession No: 12 Slide No: 1Reviewer: CSE300Advanced Software EngineeringJanuary 2006 Testing Strategy CSE300 Advanced Software Engineering University.
Testing an individual module
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Purpose of Requirements Analysis Process of discover, refinement, modeling, and specification o Bridge gap between system level SW allocation and design.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Unit Testing CS 414 – Software Engineering I Don Bagert Rose-Hulman Institute of Technology January 16, 2003.
Introduction to Software Testing
Software Testing & Strategies
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 13 & 14 Software Testing Strategies and Techniques
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Instructor: Peter Clarke
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
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.
Software Reviews & testing Software Reviews & testing An Overview.
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
Software Testing Testing types Testing strategy Testing principles.
Agenda Introduction Overview of White-box testing Basis path testing
Slide 2.1 CHAPTER 2 THE SOFTWARE PROCESS. Slide 2.2 Overview l Client, Developer, and User l Requirements Phase l Specification Phase l Design Phase l.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Lecture Introduction to Software Development SW Engg. Development Process Instructor :Muhammad Janas khan Thursday, September.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
Software Development Life Cycle (SDLC)
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.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
CS3320-Chap21 Office Hours TR 1:00-2:15 PM W 2:30-3:30 PM By appointment.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Testing Integral part of the software development process.
 System Requirement Specification and System Planning.
Software Testing Strategies for building test group
Software Testing.
Software Testing Techniques
Software Engineering (CSI 321)
Software Testing An Introduction.
Chapter 13 & 14 Software Testing Strategies and Techniques
UNIT-IV ECS-602 Software engineering PART-I
Introduction to Software Testing
Verification and Validation Unit Testing
Chapter 10 – Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Testing.
By: Lecturer Raoof Talal
Software Testing Strategies
Presented by KARRI GOVINDA RAO ,
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Essence and Accident Inherent Difficulties –Complexity –Conformity –Changeability –Invisibility Essence –difficulties inherent in the nature of software Accidents –difficulties encountered but not inherent

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Software Engineering Processes attempt to maximize QUALITY in the form of: Reliability Portability Efficiency Human Engineering Testability Understandability Modifiability

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Software Engineering Processes Why? Issues concerning software quality Relative costs of fixing faults Price performance factors Product size increase leads to larger teams

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming What are the phases in the lifecycle of a software product? Requirements Specifications Design Implementation Integration Maintenance Retirement

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Requirements Phase “What I need, not what I said I needed” What does the problem require in terms of the solution? Written document Customer driven Requirements testing –Rapid prototype –Mock-up –Partial system

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Specifications Phase What the developer wants to know: What does the product do? What are the constraints on the product? Acceptance criteria Frequent problems with a spec: –ambiguous –incomplete –contradictory Specifications testing –SQA –reviews

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Design Phase How does the product do what it is supposed to do? Analysis of the problem –Structured analysis : decomposing problem by how data is manipulated (acted upon) –Object-oriented analysis: decomposing problem by how data is represented Developer must make design decisions about: –algorithms –data representations –I/O interfaces –data flow –modules Design testing –traceability

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Implementation Phase Initial CS courses have to focus on this element first Code Documentation Tests Implementation testing –desk checking –test cases –reviews

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Integration Phase Putting it all together Composition order Integration testing –interfaces Testing –does it meet the specs? –product testing by SQA –acceptance testing by customer

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Maintenance Phase In the user’s hands Maintenance testing –changes –regression testing Retirement –cost-effective? Why? –operation –documentation –turnover Kinds of maintenance –Corrective –Adaptive –Perfective –Preventive

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Specification principles Separate functionality from implementation –A process-oriented systems spec language is required –A spec must encompass the system of which the SW is a component –A spec must encompass the environment in which the system operates –A system spec must be a cognitive model –A spec must be operational –The spec must be tolerant of incompleteness and augmentable –A spec must be localized and loosely coupled

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Analysis principles and issues What differentiates one analysis technique from another? –hueristics and notions –point of view –notation –modeling approach What things are common about analysis methods? –hierarchical representation –external and internal interfaces –design and implementation foundation –no focus on constraints or validation

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Analysis principles and issues Analysis is information-driven –First provide a mechanism for representing info then derive function and behavior –Common characteristics 1) mechanism for info domain analysis 2) approach for functional and/or behavior representation 3) definition of interfaces 4) mechanisms for problem partitioning 5) support of abstraction 6) representation of essential and implementation views

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Testing Testing cannot show the absence of defects, it can only show that software defects are present. 1. Testing is a process of executing a program with the intent of finding an error. 2. A good test case is one that has a high probability of finding an as yet undiscovered error. 3. A successful test is one that uncovers an as yet undiscovered error.

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Testing Methods Black-box testing –Knowing the specified function that a product has been designed to perform, tests can be conducted that demonstrate each function is fully operational. White-box or glass-box testing –Knowing the internal workings of a product, tests can be conducted to ensure that "all the gears mesh". 1. independent paths at least once 2. logical decisions both true and false 3. loops 4. internal data structures

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Development Testing Debugging approaches –brute force –backtracking –cause elimination Before you fix 1. Is the cause of this bug also reproduced elsewhere? 2. What new bug might I be putting in? 3. What would have prevented this bug?

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Software Configuration Management Change is inevitable Activities of SCM 1. ID change 2. control change 3. ensure that change is properly implemented 4. report change to others SCM output –programs –documentation –data structures SCM is not the same as maintenance

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Systems Engineering Issues Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces, design constraints and information structure that can be allocated to each of the generic system elements available.

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Software Engineering Notes for CSE1320 Intermediate Programming Sources –The Mythical Man-Month, Brooks, Frederick P.; Addison-Wesley Publishing Company, (Reprint)1982 –“No Silver Bullet: Essence and Accidents of Software Engineering,”, Computer, Vol. 20, No. 4 (April 1987) pp –Software Engineering,Schach, Stephen R.;Aksen Associates Incorporated Publishers, 1990 –Software Engineering, A Practitioner’s Approach,Pressman, Roger S.;McGraw-Hill, Inc –Software Engineering, Design, Reliability,and Management,Shooman, Martin L.;McGraw-Hill, Inc –Software Engineering Metrics and Models, Conte, S.D., H.E. Dunsmore, V.Y. Shen;The Benjamin/Cummings Publishing Company, Inc., 1986