University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Accident and Incident Investigation
Test process essentials Riitta Viitamäki,
Verification and Validation
Software Quality Assurance Plan
Evaluating Requirements. Outline Brief Review Stakeholder Review Requirements Analysis Summary Activity 1.
Basic Concepts Snejina Lazarova Senior QA Engineer, Team Lead CRMTeam Dimo Mitev Senior QA Engineer, Team Lead SystemIntegrationTeam Telerik QA Academy.
CS351 © 2003 Ray S. Babcock Software Testing What is it?
Overview of Software Requirements
Validating and Improving Test-Case Effectiveness Author: Yuri Chernak Presenter: Lam, Man Tat.
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and 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.
Verification and Validation
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
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.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
TESTING.
CPIS 357 Software Quality & Testing I.Rehab Bahaaddin Ashary Faculty of Computing and Information Technology Information Systems Department Fall 2010.
CLEANROOM SOFTWARE ENGINEERING.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Name Hometown Program Employer/Student Fun Fact 1.
Risk Management - the process of identifying and controlling hazards to protect the force.  It’s five steps represent a logical thought process from.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
1. 2 IMPORTANCE OF MANAGEMENT Some organizations have begun to ask their contractors to provide only project managers who have been certified as professionals.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
A GENERIC PROCESS FOR REQUIREMENTS ENGINEERING Chapter 2 1 These slides are prepared by Enas Naffar to be used in Software requirements course - Philadelphia.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
Software Testing. What is Testing? The process consisting of all life cycle activities, both static and dynamic, concerned with planning, preparation.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Instructore: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Requirement engineering.
Software Testing Definition Software Testing Module ( ) Dr. Samer Odeh Hanna.
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
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 13: Software Quality Project Management Afnan Albahli.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Design Principles and Common Security Related Programming Problems
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
©Ian Sommerville 2000Dependability Slide 1 Chapter 16 Dependability.
Prepared by Amira Selim 31 st October 2009 Revised by Dahlia Biazid Requirements Analysis.
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.
System Development Life Cycle (SDLC). Activities Common to Software Projects Planning : Principles Principle #1. Understand the scope of the project.
CS223: Software Engineering Lecture 25: Software Testing.
Testing Integral part of the software development process.
ISQB Software Testing Section Meeting 10 Dec 2012.
Module A Fundamentals of Testing
Unit -1 Fundamentals of Testing Testing principles, Fundamental test process, The psychology of testing
Software Testing An Introduction.
Chapter 8 – Software Testing
Verification and Validation Overview
CS-4349 Software Testing & Implementation
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Fundamental Test Process
A Few Review Questions.
Baisc Of Software Testing
Software Verification, Validation, and Acceptance Testing
that focus first on areas of risk.
Computer in Safety-Critical Systems
Presentation transcript:

University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish

Outlines Why is testing necessary? What is testing? Testing principles Fundamental test process The psychology of testing

Why is testing necessary? Testing is necessary because we all make mistakes. Some of those mistakes are unimportant, but some of them are expensive or dangerous. We need to check everything and anything we produce because humans make mistakes all the time

Why is testing necessary? some mistakes come from bad assumptions and blind spots, so we might make the same mistakes when we check our own work as we made when we did it. we may not notice the flaws in what we have done. Ideally, we should get someone else to check our work - another person is more likely to spot the flaws.

Software systems context Testing Principle - Testing is context dependent Testing is done differently in different contexts. For example, safety-critical software is tested differently from an e-commerce site.

Software systems context Not all software systems carry the same level of risk and not all problems have the same impact when they occur. A risk is something that has not happened yet and it may never happen; it is a potential problem When we discuss risks, we need to consider how likely it is that the problem would occur and the impact if it happens

Software systems context For example, whenever we cross the road, there is some risk that we'll be injured by a car. The likeli-hood depends on factors such as how much traffic is on the road, whether there is a safe crossing place, how well we can see, and how fast we can cross. The impact depends on how fast the car is going, whether we are wearing protective things, our age and our health. The risk for a particular person can be worked out and therefore the best road-crossing strategy.

Causes of software defects If someone makes an error or mistake in using the software, this may lead directly to a problem. However, people also design and build the software and they can make mistakes during the design and build. These mistakes mean that there are flaws in the software itself. These are called defects or sometimes bugs or faults.

Causes of software defects any defects may cause the system to fail to do what it should do may cause a failure. Not all defects result in failures; some stay hidden in the code and we may never notice them.

Do our mistakes matter? not all defects do cause failures. We could argue that if a mistake does not lead to a defect or a defect does not lead to a failure, then it is not of any importance we may not even know we've made an error. Our fallibility is compounded when we lack experience, don't have the right information, misunderstand, or if we are careless, tired or under time pressure

Do our mistakes matter? When we think about what might go wrong we have to consider defects and failures arising from:  errors in the specification, design and implementation of the software and system;  errors in use of the system;  environmental conditions;  intentional damage;  potential consequences of earlier errors, intentional damage, defects and failures.

When do defects arise?

Unfortunately, requirements and design defects are not rare ; assessments of thousands of projects have shown that defects introduced during requirements and design make up close to half of the total number of defects

What is the cost of defects? the old English proverb 'a stitch in time saves nine'. This means that if you mend a tear in your sleeve now while it is small, it's easy to mend, but if you leave it, it will get worse and need more stitches to mend it.

What is the cost of defects?

Testing and quality Testing helps us to measure the quality of software in terms of the number of defects found, the tests run, and the system covered by the tests.

What is quality? Projects aim to deliver software to specification. For the project to deliver what the customer needs requires a correct specification. Additionally, the delivered system must meet the specification. This is known as validation ('is this the right specification?') and verification ('is the system correct to specification?').

What is root cause analysis? When we detect failures, we might try to track them back to their root cause, the real reason that they happened There are several ways of carrying out root cause analysis, often involving a group brainstorming ideas and discussing them, so you may see different techniques in different organizations

How much testing is enough? Testing Principle - Exhaustive testing is impossible Testing everything (all combinations of inputs and preconditions) is not feasible except for small cases. Instead of exhaustive testing, we use risks and priorities to focus testing efforts.

How much testing is enough? How many tests would you need to do to completely test a one-digit numeric field? There are 10 possible valid numeric values but as well as the valid values we need to ensure that all the invalid values are rejected. There are 26 uppercase alpha characters, 26 lower case, at least 6 special and punctuation characters as well as a blank value. So there would be at least 68 tests for this example of a one-digit field.

How much testing is enough? Instead we need a test approach which provides the right amount of testing for the project. We do this by aligning the testing we do with the risks for the customers, the stake-holders, the project and the software. Assessing and managing risk is one of the most important activities in any project, and is a key activity and reason for testing. Deciding how much testing is enough should take account of the level of risk, including technical and business risks related to the product and project constraints such as time and budget

WHAT IS TESTING? The driving test - an analogy for software testing In a driving test, the examiner critically assesses the candidate's driving, noting every mistake, large or small, made by the driver under test. The examiner takes the driver through a route which tests many possible driving activities

WHAT IS TESTING? The driving test - an analogy for software testing Some of the activities must be tested. For example, in the UK, an emergency stop test is always carried out At the end of the test, the examiner makes a judgment about the driver's performance The examiner bases the judgment on the number and severity of the failures identified, and also whether the driver has been able to meet the driving requirements.

Defining software testing the ISTQB ( International Software Testing Qualifications Board ) definition of software testing.  Process - Testing is a process rather than a single activity - there are a series of activities involved.  All life cycle activities - testing is a process that takes place throughout the software development life cycle  Both static and dynamic - as well as tests where the software code is executed to demonstrate the results of running tests (often called dynamic testing) we can also test and find defects without executing code.

Defining software testing the ISTQB definition of software testing.  Planning - Activities take place before and after test execution. We need to manage the testing; for example, we plan what we want to do; we control the test activities; we report on testing progress and the status of the software under test.  Preparation - We need to choose what testing we'll do, by selecting test conditions and designing test cases.

Defining software testing the ISTQB definition of software testing.  Evaluation - As well as executing the tests, we must check the results and evaluate the software under test and the completion criteria, which help us decide whether we have finished testing and whether the software product has passed the tests.  Software products and related work products - We don't just test code. We test the requirements and design specifications, and we test related documents such as operation, user and training material

Defining software testing The second part of the ISTQB definition covers some of the objectives for testing  Determine that (software products) satisfy specified requirements  Demonstrate that (software products) are fit for purpose  Detect defects We can clearly see now why the common perception of testing (that it only consists of running tests, i.e. executing the software) is not complete. This is one of the testing activities, but not all of the testing process.