Implementation Phase Programming-in-the-many Programming-in-the-many Most real-life products are too large to be implemented by one programmer Most real-life.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Testing and Quality Assurance
Implementation and Integration1 Concepts and practices.
November 2005J. B. Wordsworth: J5DAMQVT1 Design and Method Quality, Verification, and Testing.
Programming Creating programs that run on your PC
1 CODE TESTING Principles and Alternatives. 2 Testing - Basics goal - find errors –focus is the source code (executable system) –test team wants to achieve.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Object-Oriented Analysis and Design Lecture 10 Implementation (from Schach, “O-O and Classical Software Engineering”)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
CS 425/625 Software Engineering Software Testing
Chapter 1 Principles of Programming and Software Engineering.
Outline Types of errors Component Testing Testing Strategy
SOFTWARE SYSTEMS SOFTWARE APPLICATIONS SOFTWARE PROGRAMMING LANGUAGES.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Your Interactive Guide to the Digital World Discovering Computers 2012.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
Introduction to Programming End Show. Resource Team R.P Ranjan-Lecturer, SPICTEC, Galle. W.M.A.S. Wijesekara-Centre manager,CRC Hali-Ela H.P.U.S Indra.
1 Chapter-01 Introduction to Computers and C++ Programming.
Programming Languages – Coding schemes used to write both systems and application software A programming language is an abstraction mechanism. It enables.
Program development & programming languages Chapter 13.
Extreme Programming Software Development Written by Sanjay Kumar.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Prof. Mohamed Batouche Software Testing.
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
Programming Language Rico Yu. Levels of Programming Languages 1.Low level languages 2.High level languages.
Chapter 13: Implementation Phase 13.3 Good Programming Practice 13.6 Module Test Case Selection 13.7 Black-Box Module-Testing Techniques 13.8 Glass-Box.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing Testing types Testing strategy Testing principles.
1 Chapter 13 Understanding Computers, 11 th Edition 13 Program Development and Programming Languages TODAY AND TOMORROW 11 th Edition CHAPTER.
1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
INTRODUCTION TO COMPUTING CHAPTER NO. 04. Programming Languages Program Algorithms and Pseudo Code Properties and Advantages of Algorithms Flowchart (Symbols.
Testing Techniques Software Testing Module ( ) Dr. Samer Hanna.
EXPLAIN THE CONCEPT OF PROGRAMMING. Programming Languages and Program Development Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall2.
KUFA UNIVERSITY Department of Computer Science 06/12/2015.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
FOUNDATION IN INFORMATION TECHNOLOGY (CS-T-101) TOPIC : INFORMATION SYSTEM – SOFTWARE.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Program Development Cycle
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Test Case Designing UNIT - 2. Topics Test Requirement Analysis (example) Test Case Designing (sample discussion) Test Data Preparation (example) Test.
1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.
CS451 Lecture 10: Software Testing Yugi Lee STB #555 (816)
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Programming and Languages Dept. of Computer and Information Science IUPUI.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
1. Black Box Testing  Black box testing is also called functional testing  Black box testing ignores the internal mechanism of a system or component.
Programming Language Design Issues Programming Languages – Principles and Practice by Kenneth C Louden.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Introduction to Computer Programming using Fortran 77.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
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.
Software Engineering Algorithms, Compilers, & Lifecycle.
Computer Language
Software Testing.
Operating System Interface between a user and the computer hardware
CSCI-235 Micro-Computer Applications
Chapter 9, Testing.
Verification and Validation Overview
Software testing.
Chapter 10 – Software Testing
Software Testing “If you can’t test it, you can’t design it”
Presentation transcript:

Implementation Phase Programming-in-the-many Programming-in-the-many Most real-life products are too large to be implemented by one programmer Most real-life products are too large to be implemented by one programmer Implemented by a team Implemented by a team Working at the same time on different components of the product Working at the same time on different components of the product Testing/Module reuse/CASE tool Testing/Module reuse/CASE tool

Implementation Phase Fourth Generation Languages (4GL) 1GL: a binary machine code 1GL: a binary machine code 2GL: assemblers ( s) 2GL: assemblers ( s) 3GL: high level languages (FORTRAN, ALGOL 60, COBOL, etc) 3GL: high level languages (FORTRAN, ALGOL 60, COBOL, etc) 4GL: DB2, Oracle, PowerBuilder, SQL (1970s) 4GL: DB2, Oracle, PowerBuilder, SQL (1970s) shorter (30-50 MCI), shorter (30-50 MCI), easier to maintain/use, easier to maintain/use, CASE Tool: more productive, cost effective CASE Tool: more productive, cost effective

Implementation Phase Good Programming Practice Good Programming Practice Use of consistent and meaningful identifier names Use of consistent and meaningful identifier names Self-documenting code/documentation Self-documenting code/documentation Use of Parameters Use of Parameters Code layout for increased readability Code layout for increased readability Coding style for incremental programming (Module reuse) Coding style for incremental programming (Module reuse)

Implementation Phase (Types of Errors) Syntax Errors Syntax Errors Logic/Algorithm Errors Logic/Algorithm Errors Branching too soon/ too late Branching too soon/ too late Testing the wrong condition Testing the wrong condition Initialization errors Initialization errors Data type mismatch Data type mismatch Incorrect formula or computation Incorrect formula or computation Documentation Errors - mismatch between documentation and code; leads to difficulties especially during maintenance Documentation Errors - mismatch between documentation and code; leads to difficulties especially during maintenance

Implementation Phase (Types of Errors) Capacity Errors - system performance degradation at capacity Capacity Errors - system performance degradation at capacity Hardware Errors Hardware Errors Throughput/performance Errors Throughput/performance Errors Computation/precision Errors Computation/precision Errors Stress/overload Errors Stress/overload Errors Recovery Errors - error handling faults Recovery Errors - error handling faults Standards/Procedures - created/introduced as the system is tested & modified Standards/Procedures - created/introduced as the system is tested & modified

Implementation Phase (Testing Principles) Process of finding errors Process of finding errors Impossible to completely test software Impossible to completely test software Creativity and hard work required Creativity and hard work required Error prevention Error prevention Independent testers Independent testers

Implementation Phase (Testing Steps) Select what is to be measured by the test and decide how the code will be tested Select what is to be measured by the test and decide how the code will be tested Develop the test cases for the code and determine the correct results for the test cases Develop the test cases for the code and determine the correct results for the test cases Execute the test cases and compare the actual results with the expected results Execute the test cases and compare the actual results with the expected results Regression Testing -If errors are discovered, earlier test cases should be re-executed. Regression Testing -If errors are discovered, earlier test cases should be re-executed.

Black-box Testing Black-box Testing focused on inputs and outputs of a module: equivalence partitioning, equivalence class contains similar test cases (reduce redundancy) focused on inputs and outputs of a module: equivalence partitioning, equivalence class contains similar test cases (reduce redundancy) equivalence Testing & Boundary Value Analysis equivalence Testing & Boundary Value Analysis If valid input is a range of values, there are a minimum of three equivalence classes: one below the range, one within the range, and one above the range If valid input is a range of values, there are a minimum of three equivalence classes: one below the range, one within the range, and one above the range If valid input is a value from a discrete set of values, there are two equivalence classes: valid, discrete values and any other input values. If valid input is a value from a discrete set of values, there are two equivalence classes: valid, discrete values and any other input values.

Black-box Testing Functional Testing Functional Testing demonstrate that all functions work according to requirements and specification document demonstrate that all functions work according to requirements and specification document determining all the functions of the module determining all the functions of the module test data are devised to test each function separately test data are devised to test each function separately If the module consists of a hierarchy of lower-level functions, functional testing proceeds recursively. If the module consists of a hierarchy of lower-level functions, functional testing proceeds recursively. OSBERT OGLES BY CASE STUDY (13.16) OSBERT OGLES BY CASE STUDY (13.16)