Chapter SIX Implementation, Testing and Pragmatics Making it a reality.

Slides:



Advertisements
Similar presentations
Testing and Inspecting to Ensure High Quality
Advertisements

Configuration management
Configuration management
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Testing and Quality Assurance
Ossi Taipale, Lappeenranta University of Technology
Software Quality Assurance Plan
1 SOFTWARE TESTING Przygotował: Marcin Lubawski. 2 Testing Process AnalyseDesignMaintainBuildTestInstal Software testing strategies Verification Validation.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Chapter 2 – Software Processes
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Illinois Institute of Technology
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 10: Testing and Inspecting to Ensure High Quality Part 1:
Testing an individual module
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
SE 555 – Software Requirements & Specifications Introduction
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 10: Testing and Inspecting to Ensure High Quality Part 3:
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
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.
Introduction to Software Testing
Software Testing & Strategies
Chapter 13 & 14 Software Testing Strategies and Techniques
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
System/Software Testing
Software Testing. Recap Software testing – Why do we do testing? – When it is done? – Who does it? Software testing process / phases in software testing.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
SOFTWARE TESTING STRATEGIES CIS518001VA : ADVANCED SOFTWARE ENGINEERING TERM PAPER.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
CPIS 357 Software Quality & Testing
CMSC 345 Fall 2000 Unit Testing. The testing process.
RUP Implementation and Testing
Software Engineering DKT 311 Lecture 11 Verification and critical system validation.
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.
 CS 5380 Software Engineering Chapter 8 Testing.
Configuration Management (CM)
Testing Workflow In the Unified Process and Agile/Scrum processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Testing and inspecting to ensure high quality An extreme and easily understood kind of failure is an outright crash. However, any violation of requirements.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Software Engineering Testing. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Testing Integral part of the software development process.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Software Engineering (CSI 321)
Rekayasa Perangkat Lunak Part-13
CS 389 – Software Engineering
Quality Management Perfectqaservices.
Chapter 13 & 14 Software Testing Strategies and Techniques
IS442 Information Systems Engineering
Chapter 2 – Software Processes
Introduction to Software Testing
Lecture 09:Software Testing
Verification and Validation Unit Testing
Chapter 1 Introduction(1.1)
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Chapter SIX Implementation, Testing and Pragmatics Making it a reality

Topics Documentation Coding, Testing and inspection Others  Installation  Training  Maintenance 2

Introduction Pragmatics concerned with how the system design process we have done so far would be linked to the reality or how it is would give sense or meaning to the stakeholders. These issues will cover Coding, testing along with documentation and object oriented benefit realization. 3

Documentation 4

There are various types of documentations required in object oriented Software engineering  System Documentation: detailed information about a system’s design specifications, its inner workings, and its functionality.  User Documentation: written or other visual information about an application system, how it works, and how to use it. User documentation is often in the form of online help, sometimes with Web connections for further information. 5

Cont… The system documentation can be for internal or external to the system being developed.  Internal System Documentation: comments in source code, generated during the coding process or automatically by software compilers or documenters are internal to the system.  External System Documentation: outcomes of all diagrams, including use cases, design classes, activity and sequence diagrams, etc are categorized under this sub category. 6

Coding and Testing 7

Coding Translating the design specification in to a working system (a reality) Two important issues  Coding style  To make readable and maintainable Adding as much comments as possible, use combination of uppercase and lower case in naming …  Programming language selection  A language that supports features required For a web based applications vs window based 8

Software Testing Testing is the process of exercising a A software/program with the specific intent of finding errors prior to delivery to the end user. Testing is Verification and Validation “Are we building the right system?” “Are we building the system right ?”

What Testing Shows errors requirements conformance performance an indication of quality

Who Tests the Software? developer independent tester Understands the system but, will test "gently" and, is driven by "delivery" Must learn about the system, but, will attempt to break it and, is driven by quality

12 Cont…  A failure is an unacceptable behaviour exhibited by a system  The frequency of failures measures the reliability  An important design objective is to achieve a very low failure rate and hence high reliability.  A failure can result from a violation of an explicit or implicit requirement  A defect is a flaw in any aspect of the system that contributes, or may potentially contribute, to the occurrence of one or more failures  could be in the requirements, the design and the code  It might take several defects to cause a particular failure  An error is a slip-up or inappropriate decision by a software developer that leads to the introduction of a defect

13 Effective and Efficient Testing To test effectively, you must use a strategy that uncovers as many defects as possible. To test efficiently, you must find the largest possible number of defects using the fewest possible tests  Testing is like detective work:  The tester must try to understand how programmers and designers think, so as to better find defects.  The tester must not leave anything uncovered, and must be suspicious of everything.  It does not pay to take an excessive amount of time; tester has to be efficient.

Software Testing Methods Strategies white-box methods black-box methods

White-Box Testing... our goal is to ensure that all statements and conditions have been executed at least once...

16 Cont… Also called ‘Glass-box testing’ or ‘structural’ testing Testers have access to the system design  They can  Examine the design documents  View the code  Observe at run time the steps taken by algorithms and their internal data  Individual programmers often informally employ glass-box testing to verify their own code

Black-Box Testing requirements events input output

18 Cont… Testers provide the system with inputs and observe the outputs  They can see none of:  The source code  The internal data  Any of the design documentation describing the system’s internals

19 Writing Formal Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class of defect in a software system.  A test case can give rise to many tests.  Each test is a particular running of the test case on a particular version of the system.

20 Test plans A test plan is a document that contains a complete set of test cases for a system  Along with other information about the testing process.  The test plan is one of the standard forms of documentation.  If a project does not have a test plan:  Testing will inevitably be done in an ad-hoc manner.  Leading to poor quality software.  The test plan should be written long before the testing starts.  You can start to develop the test plan once you have developed the requirements.

21 Information to include in a formal test case A. Identification and classification:  Each test case should have a number, and may also be given a descriptive title.  The system, subsystem or module being tested should also be clearly indicated.  The importance of the test case should be indicated. B. Instructions:  Tell the tester exactly what to do.  The tester should not normally have to refer to any documentation in order to execute the instructions. C. Expected result:  Tells the tester what the system should do in response to the instructions.  The tester reports a failure if the expected result is not encountered. D. Cleanup (when needed):  Tells the tester how to make the system go ‘back to normal’ or shut down after the test.

22 The roles of people involved in testing  The first pass of unit and integration testing is called developer testing.  Preliminary testing performed by the software developers who do the design.  Independent testing is performed by a separate group.  They do not have a vested interest in seeing as many test cases pass as possible.  They develop specific expertise in how to do good testing, and how to use testing tools.

23 Testing performed by users and clients  Alpha testing  Performed by the user or client, but under the supervision of the software development team.  Beta testing  Performed by the user or client in a normal work environment.  Recruited from the potential user population.  An open beta release is the release of low-quality software to the general population.  Acceptance testing  Performed by users and customers.  However, the customers do it on their own initiative.

Finally Software testing is four steps procedure  Initially, tests focus on each component individually, ensuring that it functions properly as a unit.  makes heavy use of white-box testing techniques, exercising specific paths in a module's control structure to ensure complete coverage and maximum error detection.

Cont… Next, components must be assembled or integrated to form the complete software package. Integration testing addresses the issues associated with the dual problems of verification and program construction.  Black-box test case design techniques are the most prevalent during integration, although a limited amount of white-box testing may be used to ensure coverage of major control paths.

Cont… After the software has been integrated (constructed), a set of high-order tests are conducted. Validation criteria (established during requirements analysis) must be tested.  Validation testing provides final assurance that software meets all functional, behavioral, and performance requirements.  Black-box testing techniques are used exclusively during validation.

Cont…. The last high-order testing step falls outside the boundary of software engineering and into the broader context of computer system engineering. Software, once validated, must be combined with other system elements (e.g., hardware, people, databases).  System testing verifies that all elements mesh properly and that overall system function/performance is achieved.

Others Installation  Putting the system in to work  Direct/phased/parallel/ one site Training  Enabling end users and technical personals to work and mange the system/software  For whom and how much? Maintenance  Providing continuous support as long as the software/system is alive.  Adaptive/perfective/corrective 28

Summary Introduction  Understanding motivations and basic concepts  Terminologies, concepts, processes, approaches Modeling using UML  Understanding modeling tools in software development  Types, categories and structure Requirement elicitation  Collecting and organizing users requirement- WHAT- User needs  From function, class, and interface points of view 29

Cont… Requirement Analysis  Analyzing and modeling requirements-WHAT System  In terms of Function, Logic and Objects (classes) System and object design  Specifying the new system-HOW  At an architecture level and detail design level Implementation, testing and Pragmatic  Making it a reality  Coding, testing and documentation 30

End of The chapter and the course 31