EEE 243B Applied Computer Programming Software engineering Life cycle and when to test.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Software Quality Assurance Plan
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Software Development Life Cycle
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
System Construction and Implementation Objectives:
EEE 243B Applied Computer Programming Timing considerations.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
Illinois Institute of Technology
Outline Types of errors Component Testing Testing Strategy
Software Quality Assurance
Software System Integration
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Introduction to Computer Technology
Proceedings of the 28th Annual International Computer Software and Applications Conference (2004) Ming Huo, June Verner, Liming Zhu, Muhammad Ali Babar.
1 CMPT 275 Software Engineering Software life cycle.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
CompSci 230 Software Design and Construction
CLEANROOM SOFTWARE ENGINEERING.
Alyce Brady, Kalamazoo College Engineering = cost-effective solutions to practical problems by applying scientific knowledge in building things in service.
1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
Understand Application Lifecycle Management
DISCLAIMER I HEREBY MAKE NO CLAIM THAT THE SAME QUESTIONS WILL BE REPEATED OR ASKED IN THE INTERVIEW AND AS YOU DOWNLOAD THIS POWERPOINT SLIDES IT IS UNDERSTOOD.
System Development Life Cycle. The Cycle When creating software, hardware, or any kind of product you will go through several stages, we define these.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec23 1 Lecture 23: Course Summary Course Goals Summary of what we.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering Lecture # 1.
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 Testing and Quality Assurance 1. What is the objectives of Software Testing?
Software Development Life Cycle (SDLC)
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Testing and Evaluating Software Solutions Introduction.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
CS 160 and CMPE/SE 131 Software Engineering April 12 Class Meeting Department of Computer Science Department of Computer Engineering San José State University.
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
Software Testing. Software Quality Assurance Overarching term Time consuming (40% to 90% of dev effort) Includes –Verification: Building the product right,
Software Testing Strategies for building test group
C++ Plus Data Structures
Gary Hughes, South Oakleigh College
Quality Management Perfectqaservices.
Prototype Model Lecture-4.
V-Shaped SDLC Model Lecture-6.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
SDLC Model A framework that describes the activities performed at each stage of a software development project.
Lecture 09:Software Testing
Software System Integration
Software life cycle models
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Systems Construction and Implementation
System Construction and Implementation
Systems Construction and Implementation
Software Testing “If you can’t test it, you can’t design it”
Chapter 11: Integration- and System Testing
Requirements Engineering
The Software Development Cycle
Software Testing Strategies
Presentation transcript:

EEE 243B Applied Computer Programming Software engineering Life cycle and when to test

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Review What is the difference between white box and black box testing? What does coverage give you?

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Outline Software engineering (what is it?) Basic software lifecycle Verification and validation Testing revisited

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Software engineering Software engineering came of age as the demand on software products increased The first few software programs were written by one person for his/her own purpose These programs were small and were produced and used by experts The flexibility afforded by software created a high demand and the number of projects and the size of the projects grew exponentially

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Software engineering Software production was no longer an individual affair but became a team approach As the teams grew bigger and the complexity of the software projects increased a requirement grew to better manage these projects Some costly project delays, dropping quality of products and utter project failures in the late 1960s created what was called the software crisis

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Software engineering Software engineering: Is a label that is normally applied to a set of current (best) practices for software development Shaw and Garland 1996 Software engineering was first coined as an expression during a NATO conference in 1968 The conference was created to address the problems brought on by the software crisis

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Software engineering Engineering disciplines share five common traits: Creating cost effective solutions – economical aspect Solving practical problems – solutions that matter to the population (customer) Apply scientific knowledge – science, math, analysis and design Build things – tangible results Work in the service of mankind – Not just a customer

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Basic software lifecycle The quality of your software depends on all production activities: Analysis – Will your program meet the needs of the user (client)? Design – Is my design effective? Did I do a good decomposition and create a “readable” hierarchy of modules (high level) and functions (low level)? Did you chose the right design Implementation – Is the code solid, efficient, well documented, complete? Testing – Are my tests sufficient? Maintenance – Did I introduce side effects during changes

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Basic software lifecycle The 5 phases that we saw are often represented graphically as a waterfall; hence the waterfall model: Analysis Design Implementation Testing Maintenance

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Verification and Validation There are parts of the testing that has nothing to do with the code!! …Really there is. When you have elicited requirements as part of your analysis of the problem, you must test the requirements with your end user This test is called Validation Validation can occur at more than one stage of the software lifecycle

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Verification and Validation When you finish your design, you must ensure that you took into account all the requirements from analysis. So you test between these two phases This extends to the entire lifecycle: Every time you go from one phase to the next, you have to make sure you did not overlook anything, and that each phase is complete and agrees with the results of the previous phase This phase transition testing is called Verification

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Verification and Validation Verification and validation (V&V) ensure that you catch potentials errors before you get to the code and testing of the code. The reason for performing V&V at all stages of a project is to reduce the impact of changes later in the lifecycle Correcting a mistake at the end of the project may require you to start back at the analysis stage!

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Verification and Validation Verification ensures that each subsequent phase does not deviate from the requirement of the project If a deviation from the project must occur for the product to work, then the verification process must identify and track this deviation Verification ensures that the product is built to the right requirement - building the product right

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Verification and Validation The first thing you try to do is to ensure that you have the requirement right So validation has to do with building the right product You may sometimes have to build a prototype or scaffolding in a software project to validate with the customer and get feedback

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Testing revisited The scaffolding that you build as a prototype can also be used for testing purposes In structured programming, we use a top- down approach to decompose our problems during the design phase When we implement our design, we have two choices: Bottom-up implementation Top-down implementation

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Testing revisited In bottom-up implementation, it may sometimes be necessary to provide input to or get output from a module or a function In this case a driver can be used to simulate the input and get the output, as if the function under test was already part of a bigger system Drivers in a scaffolding may only be a few lines of code, but they provide all the necessary environment needed by lower functions

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Testing revisited In top-down implementation, it may be necessary for the upper modules or functions to obtain some results from lower functions In this case, we can provide a stub in the scaffolding to generate the necessary data needed by the upper function

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Testing revisited Many projects use both the top-down and the bottom-up approaches simultaneously. In these cases the scaffolding may include both drivers and stubs Stubs and drivers are small functions that form a scaffolding until the system is ready for integration Integration testing may use scaffolding, to perform incremental testing as we integrate functions one at a time

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Testing revisited Acceptance testing is the last phase of validation and is normally conducted in presence of the customer Most large software producers also have a Quality Assurance department that can represent and assist the customer For commercial software the QA department is the “customer”

Winter 2005Maj JGA Beaulieu & Capt MWP LeSauvage Quiz Time What are the five phases of the software lifecycle? What is the difference between verification and validation? What is the difference between a driver and a stub?