Week # 4 Quality Assurance Software Quality Engineering 1.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

Lecture 8: Testing, Verification and Validation
Testing and Quality Assurance
Software Process Models
CIS-74 Computer Software Quality Assurance Systematic Software Testing Chapter 1: An Overview of the Testing Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Chapter 4 Quality Assurance in Context
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
The “Lifecycle” of Software. Chapter 5. Alternatives to the Waterfall Model The “Waterfall” model can mislead: boundaries between phases are not always.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Illinois Institute of Technology
1 Testing. 2 About Testing  The reason the program is in testing is that it probably doesn’t work!  We test to find bugs before our users and hope that.
SE 555 Software Requirements & Specification Requirements Validation.
Software Testing Prasad G.
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.
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.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Extreme Programming Software Development Written by Sanjay Kumar.
S OFTWARE Q UALITY QA: Quality Assurance By: MSMZ.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
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
Prof. Mohamed Batouche Software Testing.
Based on D. Galin, and R. Patton.  According to D. Galin  Software quality assurance is:  A systematic, planned set of actions necessary to provide.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
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.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
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.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
CS223: Software Engineering Lecture 4: Software Development Models.
Software Quality Assurance and Testing Fazal Rehman Shamil.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
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.
CS 5150 Software Engineering Lecture 22 Reliability 3.
By : Hisham Kahlifa Shreef Foda Khaled monir Tamer medhat Supervisor : Dr Doaa Nabil.
Chapter 3- BASIC CONCEPTS OF TESTING Why software can never be perfect The terms commonly used by software testers.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Introduction to Software Testing Maili Markvardt.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
CS223: Software Engineering Lecture 25: Software Testing.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
ISQB Software Testing Section Meeting 10 Dec 2012.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
CompSci 230 Software Construction
Software Quality Engineering
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
CHAPTER 2 Testing Throughout the Software Life Cycle
Applied Software Implementation & Testing
Lecture 09:Software Testing
Software life cycle models
Chapter 10 – Software Testing
Baisc Of Software Testing
Welcome to Corporate Training -1
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 “If you can’t test it, you can’t design it”
Chapter 7 Software Testing.
Presentation transcript:

Week # 4 Quality Assurance Software Quality Engineering 1

Principles of QA Three General Principles of QA – Know what you are doing – know what you should be doing – Know how to measure the difference 2

Three General Principles of QA Know what you are doing – Understand what is being built, how it is being built and what it currently does. – Follow a software development process with Management structure (milestones, scheduling) Reporting policies Tracking 3

Three General Principles of QA Know what you should be doing: – Having explicit requirements and specifications. – Follow a software development process with Requirements analysis, Acceptance tests, Frequent user feedback. 4

Three General Principles of QA Know how to measure the difference. – Having explicit measures comparing what is being done from what should be done. – Four complementary methods: Formal methods – verify mathematically specified properties. Testing – explicit input to exercise software and check for expected output. Inspections – human examination of requirements, design, code,... based on checklists. Metrics – measures a known set of properties related to quality 5

Testing The vast majority (over 99%) of software quality assurance uses testing, inspection and metrics instead of formal methods Testing – Testing includes a wide range of methods based on the idea of running the software through a set of example inputs or situations and validating the results – Includes methods based on requirements (acceptance testing), specification and design(functionality and interface testing), history (regression testing), code structure (path testing), and many more 6

Inspection Inspection includes methods based on a human review of the software artifacts Includes methods based on requirements reviews, design reviews, scheduling and planning reviews, code walkthroughs, and so on Helps discover potential problems before they arise in practice 7

Metrics Software metrics includes methods based on using tools to count the use of features or structures in the code or other software artifacts, and compare them to standards Includes methods based on code size (number of source lines), code complexity (number of parameters, decisions, function points, modules or methods), structural complexity(number or depth of calls or transactions), design complexity, and so on Helps expose anomalous or undesirable properties that may reduce reliability and maintainability 8

Quality in Context In order to understand the roles of quality assurance in software development, we must understand how software development works - we cannot discuss inspection, testing and metrics in a vacuum As background, therefore, we will begin by reviewing: – Major process models of the software development community – the ways software development efforts are organized – Some ways of assessing development process quality – Quality management standards for software processes 9

Big Band Model A huge amount of matter (people and money) is put together, a lot of energy is expended— often violently—and out comes the perfect software product…or it doesn’t. 10

Big Band Model It’s an ideal process if the product requirements aren’t well understood the final release date is flexible It’s also important to have very flexible customers, too, because they won’t know what they’re getting until the very end. 11

Testing in big bang model? there is little to no formal testing done under the big-bang model If testing does occur, it’s squeezed in just before the product is released 12

WaterFall Model 13

WaterFall Model There’s a large emphasis on specifying what the product will be. Note that the development or coding phase is only a single block! The steps are discrete; there’s no overlap. There’s no way to back up. As soon as you’re on a step, you need to complete the tasks for that step and then move on—you can’t go back. 14

Testing in Water Fall Model Advantage – Everything is documented From that, the test group can create an accurate plan and schedule Disadvantage – testing occurs only at the end, a fundamental problem could creep in early on and not be detected until days before the scheduled product release. 15

Spiral Model 16

Spiral Model Each time around the spiral involves six steps: 1. Determine objectives, alternatives, and constraints. 2. Identify and resolve risks. 3. Evaluate alternatives. 4. Develop and test the current level. 5. Plan the next level. 6. Decide on the approach for the next level. 17

Testing in Spiral Model Get a chance to influence the product early by being involved in the preliminary design phases. One can see where the project has come from and where it’s going. And, at the very end of the project, one will not feel as rushed to perform all the testing at the last minute. 18

Verification and Validation Verification: – Are we building the product right? – Performed at the end of a phase to ensure that requirements established during previous phase have been met. Validation: – Are we building the right product? – Performed at the end of the development process to ensure compliance with product requirements. Requirements Architecting Detailed Design Coding verification validation 19

Testing Axioms “rules of the road” or the “facts of life” for software testing and software development. It’s Impossible to Test a Program Completely – The number of possible inputs is very large. – The number of possible outputs is very large. – The number of paths through the software is very large 20

Software Testing Is a Risk-Based Exercise – software testers need to learn is how to reduce the huge domain of possible tests into a manageable set, and how to make wise risk-based decisions on what’s important to test and what’s not. 21

Testing Can’t Show That Bugs Don’t Exist – Software testing works exactly as the exterminator does. It can show that bugs exist, but it can’t show that bugs don’t exist. You can perform your tests, find and report bugs, but at no point can you guarantee that there are no longer any bugs to find. 22

The More Bugs You Find, the More Bugs There Are – Programmers have bad days. Like all of us, programmers can have off days. Code written one day may be perfect; code written another may be sloppy. – Programmers often make the same mistake. Everyone has habits. A programmer who is prone to a certain error will often repeat it. 23

The Pesticide Paradox – phenomenon that the more you test software, the more immune it becomes to your tests. – If you keep applying the same pesticide, the insects eventually build up resistance and the pesticide no longer works. Same happens in software 24

Not All the Bugs You Find Will Be Fixed – There’s not enough time. – It’s too risky to fix – It’s just not worth it. 25

What is Software Testing Testing is the process of executing software in a controlled manner, to answer the question: “does the software behave as specified?” Implies that we have a specification (or possibly the tests are it) Or implies that we have some property we wish to test for independently of the specification – e.g., “all paths in the code are reachable (no dead code)” Testing is often associated with the words “validation” and “verification” 26

What is Software testing ? Examination of a software unit, several integrated software units or an entire software package by running it. – execution based on test cases – expectation – reveal faults as failures 27

Types of Testing Source of Test Generation Black-box testing: Tests are generated from informally or formally specified requirements – Does not require access to source code – Boundary-value analysis, equivalence partitioning, random testing, pairwise testing White-box testing: Tests are generated from source code. – Must have access to source code – Structural testing, path testing, data flow testing 28

Types of Testing Life Cycle Phases 29