1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

System Integration Verification and Validation
Testing and Quality Assurance
Software Quality Assurance Plan
Software Testing By Marcin Starzomski :P. What is Testing ? Testing is a process used to help identify the correctness, completeness and quality of developed.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Stepan Potiyenko ISS Sr.SW Developer.
Software Development Process Models. The Waterfall Development Model.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Testing and Quality Assurance
Fundamentals of Information Systems, Second Edition
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
Software Engineering Institute Capability Maturity Model (CMM)
Software Life Cycle Model
SOFTWARE QUALITY ASSURANCE Asst. Prof. Dr. Selim BAYRAKLI Maltepe University Faculty of Engineering SE 410.
Effective Methods for Software and Systems Integration
Chapter : Software Process
Process: A Generic View
Process: A Generic View n A software process  is a roadmap to building high quality software products.  provides a framework for managing activities.
Chapter 10.
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
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.
RUP Fundamentals - Instructor Notes
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
CPIS 357 Software Quality & Testing
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Software System Engineering: A tutorial
Business Systems Development SDLC and introduction to the Microsoft Solutions Framework Team and Process Models.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
S Q A.
Chapter 2 Process: A Generic View
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Software Engineering - I
Systems Analysis and Design in a Changing World, Fourth Edition
Software Testing and Quality Assurance Software Quality Assurance 1.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few.
The Software Process Chapter – II. Topics S/w Engg – A layered Technology A Process Framework Process Patterns Process Assessment Product and Process.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Software Engineering Lecture # 1.
Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts.
1 Software Test Computer Science Department, Information Faculty Dr. KaiYu Wan.
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
SE513 Software Quality Assurance Lecture12: Software Reliability and Quality Management Standards.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
 System Requirement Specification and System Planning.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
ECE 355 Software Engineering Instructor Kostas Kontogiannis
SOFTWARE TESTING OVERVIEW
CS4311 Spring 2011 Process Improvement Dr
Chapter 10 Software Quality Assurance& Test Plan Software Testing
Software Engineering (CSI 321)
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
THE SOFTWARE PROCESS (revisited)
Practical Software Engineering
Software Engineering Fundamentals
Software Engineering I
Presentation transcript:

1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis

2 Welcome Welcome to the Software Testing and Quality Assurance course Demanding, challenging and, rewarding course A glimpse of what software testing in theory and practice is all about

3 How to reach me Kostas Kontogiannis –Web: – –Tel. (ext. 2840) –Office hours: Monday 17:30 – 18:30 DC 2539

4 Software Testing CHAPTER 1 Unit 1

5 Outline for today  Introduction Course description Software Testing, Quality Assurance, and Evolution basics

6 Course components 3 lectures –SE 465 MC :30-15:20 MWF –ECE 453 / CS 447 RCH :30 – 17:20 MWF 3 tutorials –SE 465 MC :30 – 16:20 MW –ECE 453 / CS 447 RCH 305 8:00 – 8:50 W 1 project –Evolution –Testing

7 Course website schedule lecture notes & slides recommended book –Software Testing A Craftsman's Approach 2nd edition, Paul C. Jorgensen, CRC Press past exams project description grade allocation course news system

8 Project component Design and implement software for an IP Telephony application Groups of 4 30% of total grade Two parts: –System Enhancements Requirements Design Implementation –Testing Black Box White Box

9 Goals of this course Become familiar with software testing concepts 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”

10 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) Unit 6: Software Reliability and Quality Assurance Basics Unit 7: Software Reengineering and Evolution Basics Unit 8: Project Planning and Management

11 What to do as a first Task Visit the Web site Go to the Project section –Complete Part I Administration –Complete Part II Preparation

12 Outline for today Introduction Course description  Software testing basics

13 Software Lifecycle Requirements phase Analysis phase Design phase (System and Object) Implementation phase Testing phase Integration phase Maintenance phase Retirement

14 Software Lifecycle Activities Subsystems Structured By class... Source Code Implemented By Solution Domain Objects Realized By System Design Object Design Implemen- tation Testing Application Domain Objects Expressed in Terms Of Test Cases ? Verified By class.... ? Requirements Elicitation Use Case Model Analysis...and their models

15 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.”

16 Software Testing : Definition “Software testing is a process used to identify the correctness, completeness and quality of developed computer software. Actually, testing can never establish the correctness of computer software, as this can only be done by formal verification (and only when there is no mistake in the formal verification process). It can only find defects, not prove that there are none.” en.wikipedia.org/wiki/Software_testing

17 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

18 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).

19 Software Testing in RUP Management Environment Business Modeling Implementation Test Architecture & Design Preliminary Iteration(s) Iter. #1 Phases Process Workflows Iterations Supporting Workflows Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Configuration Mgmt Requirements ElaborationTransitionInceptionConstruction

20 Software Testing in RUP RUP Testing Philosophy –Iterative development. –Low up-front documentation –Holistic approach. –Automation Actors and Roles –Test Manager –Test Analyst –Test Designer –Tester

21 Software Testing in XP The biggest difference between XP projects and most ‘traditional’ software development projects is the concept of test-driven development. With XP, every chunk of code is covered by unit tests, which must all pass all the time. The absence of unit-level and regression bugs means that testers actually get to focus on their job: making sure the code does what the customer wanted. The acceptance tests define the level of quality the customer has specified (and paid for!)

22 Software Testing in XP Characteristics Evolutionary development Collection of “12 Best Practices“ Focus on working code that implements customer needs (rather than documents) Testing is a crucial element of the process Focus on flexibility and efficiency of the process Designed for small teams (<10) Write tests Planning Test Pair Programming + Refactoring Integration Min. daily Every 2-3 weeks Release

23 Software Testing in XP Activities testers perform on XP teams. –Negotiate quality with the customer (it’s not YOUR standard of quality, it’s what the customer desires and is willing to pay for!) –Clarify stories, flush out hidden assumptions –Enable accurate estimates for both programming and testing tasks –Make sure the acceptance tests verify the quality specified by the customer –Help the team automate tests –Help the team produce testable code –Form an integral part of the continuous feedback loop that keeps the team on track

24 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.”

25 Software process improvement initiatives Capability maturity model (CMM) – ISO 9000-series ISO/IEC – Standard for Software Process Assessment (SPICE) – ©Steven Schach 2002 [modified]

26 Capability Maturity Model A set of strategies for improving the software process –SW–CMM for software –P–CMM for human resources (“people”) –SE–CMM for systems engineering –IPD–CMM for integrated product development –SA–CMM for software acquisition These strategies are being unified into CMMI (capability maturity model integration) Developed by Software Engineering Institute (SEI) ©Steven Schach 2002 [modified]

27 SW–CMM A strategy for improving the software process Put forward in 1986 by the SEI Fundamental ideas: –Improving the software process leads to Improved software quality Delivery on time, within budget –Improved management leads to Improved techniques Five levels of “maturity” are defined Organization advances stepwise from level to level ©Steven Schach 2002

28 SW–CMM Summary ©Steven Schach 2002

29 Software Evolution : Definition “A continuous change from a lesser, simpler, or worse state to a higher or better state [for a software system]”

30 Software Maintenance : Definition “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” en.wikipedia.org/wiki/Software_maintenance

31 Average cost distribution (1976–1981 data) Object-Oriented and Classical Software Engineer 5th Edition, Schach (2002)

32 Summary Testing is an important part of the Software Lifecycle Highly technical and challenging 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