Test process essentials Riitta Viitamäki, 14.4.2004

Slides:



Advertisements
Similar presentations
Lecture 8: Testing, Verification and Validation
Advertisements

Ch-11 Project Execution and Termination. System Testing This involves two different phases with two different outputs First phase is system test planning.
Software Testing 3 Damian Gordon.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
The Basics of Software Testing
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Software Testing Prasad G.
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Introduction to Software Testing
Types and Techniques of Software Testing
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Extreme Programming Software Development Written by Sanjay Kumar.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 23 Slide 1 Software testing Slightly adapted by Anders Børjesson.
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.
TESTING.
Chapter 8: Systems analysis and design
Test plans CSCI102 - Systems ITCS905 - Systems MCS Systems.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Principles of Testing 1 Principles2 Lifecycle 4 Dynamic test techniques 3 Static testing 5 Management6 Tools Software Testing ISTQB / ISEB Foundation.
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.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Basic of Software Testing Presented by The Smartpath Information System An ISO 9001:2008 Certified Organization
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Chair of Software Engineering Exercise Session 6: V & V Software Engineering Prof. Dr. Bertrand Meyer March–June 2007.
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)
Software Engineering Saeed Akhtar The University of Lahore.
Software Quality Assurance and Testing Fazal Rehman Shamil.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Chapter 3- BASIC CONCEPTS OF TESTING Why software can never be perfect The terms commonly used by software testers.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
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.
Testing Integral part of the software development process.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Module A Fundamentals of Testing
Software Engineering (CSI 321)
SOFTWARE TESTING OVERVIEW
SEVERITY & PRIORITY RELATIONSHIP
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Applied Software Implementation & Testing
Strategies For Software Test Documentation
Introduction to Software Testing
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Fundamental Test Process
Software testing.
Baisc Of Software Testing
Unit 1 :Basic Of Software Testing
ISTQB / ISEB Foundation Exam Practice 4 Dynamic test techniques
Software Testing Lifecycle Practice
© Oxford University Press All rights reserved.
Chapter 7 Software Testing.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

Test process essentials Riitta Viitamäki,

Principles What is a bug ? Error: a human action that produces an incorrect result Fault: a manifestation of an error in sw –Also known as a defect or bug –If executed, a fault may cause a failure Failure: deviation of the sw from its expected delivery or service Failure is an event; fault is a state of the sw, caused by an error

Why do faults occur in sw? Sw is written by human beings, –Who know something but not everything –Who have skills but are not perfect –Who do make mistakes (errors) Under increasing pressure to deliver to strict deadlines –No time to check, but the assumptions may be wrong –Systems may be incomplete If you have ever written sw…

Testing and quality Testing measures sw quality (it doesn't make it !) Testing can find faults and when they are removed, sw quality (and reliability?) is improved What does testing test ? –System function, correctness of operation –Non-functional qualities: reliability, usability, maintainability, reusability, testability, performance in normal load and stress load, installability, etc.

Other factors that influence testing Contractual requirements Legal requirements Industry-specific requirements –GSM specs and standards –Air traffic control It is difficult to determine how much testing is enough but it is not impossible

Test planning – different levels Test policy (company level) Test strategy (company level) High level test plan (one for each project, IEEE 829) Detailed test plan for each test stage level (IEEE 829) within a project. For example Component, System, Security, Regression test plans.

The test process Planning – detailed levelPlanning Specification Execution Recording Check completion

Test planning – detailed level How the test strategy and project test plan apply to the software under test (SUT) Document in the plan any exceptions to the test strategy –for example; only one test design technique needed for this functional area, because it is less critical. List other sw needed for the tests and environment details. (Start ordering the software, lisences and hardware) Set test completion criteria

Specification Identify conditions, What is to be tested and prioritise the conditions.Identify conditions Design: how the what is to be tested (test cases, with actual steps how to do it),Design anybody can execute the tests in the same way Build: implement the tests (define data, record the scripts)Build specificationrecording check completion execution

Identify test conditions List the conditions that we would like to test: –use the test design techniques specified in the test plan (EP, BVA) –There may be many conditions for each system function or attribute. Prioritise the test conditions: –we cant test everything –there is never enough time to do all the testing you would like –so what testing you should do ?

Design test cases Design test input and test data –each test exercises one or more test conditions Determine expected results –predict the outcome of each test case, what is output, what is changed, what is not changed. Design sets of tests –different test sets for different objectives such as regression, building confidence and finding faults

Build (implement) test cases Prepare test scripts –less system knowledge the tester has, the more detailed the scripts have to be –scripts for tools have to specify every detail Prepare test data –data that must exist in files and databases at the start of the tests Prepare expected results –should be defined before the test is executed. With exact values it is easier and quicker to compare the actual and expected results. –What should be changed in the database table, what not.

Execution Execute the prescribed test cases –Most important ones first –Would not execute all test cases if Testing only fault fixes To many faults found early test cases Time pressure Can be performed manually or automated. If actual results do not match with the expected ones, try to repeat, analyse, log the incident. specificationrecording check completion execution

Recording 1/2 The test record contains: –Identities and versions of Software under test Test specifications Follow the plan –Mark off progress on test script –Document actual outcomes from the test –Capture any other ideas you have for new test cases –Note that these records are used to establish that all test activities have been carried out as specific. specificationrecording check completion execution

Recording 2/2 Compare actual outcome with expected outcome. Log discrepancies accordingly: –Software fault –Test fault (expected results were wrong, or steps missing) –Environment or version fault –Test run incorrectly Log coverage levels achieved (compare with test completion criteria) After the fault has been fixed, repeat the required test activities (execute, design, plan)

Check test completion The completion criteria were specified in the test plan.completion criteria If not met, need to repeat test activities, for example design or execute more tests specificationrecording check completion execution Coverage too low Coverage OK

Completion criteria Completion or exit criteria apply all levels of testing – to determine when to stop –Coverage, using a measurement technique Branch coverage for component testing User requirements (most important?) covered for acceptance testing Most frequently used transactions covered for system testing Faults found vs. expected. Too many serious faults found in an business critical area. Cost or time

True or false ? The purpose of testing is to prove that the system works. Neither True or False, because… One purpose of the testing is to show that the system is working. For testers in development another major purpose is to try and prove that the system is not working. No amount of testing can prove that the system has no bugs. Testing can show the presence of bugs but not their absence.

True or false… Testing can only start when coding is ready. False, because… Test execution cannot start until there is code to run a given test, but testing is far more that just running tests… –setting policy at the highest level, –planning the test strategy, –activities for a project, deciding what tests will be performed, –designing individual tests from the specifications they are based on, –assembling the right data and the environment, –describing the procedures to be followed when running tests; …and none of these require code.

True or false… Programmers should test their own work. Both true and false, because… True, because programmers should test their own code. False, because they should do also other testing, like –integrating to other programmers modules, –involving in system level testing and user acceptance testing.

So little time, so much to test.. Test time will always be limited Use risk to determine –what to test first –what to test most –how thoroughly to test each item –what not to test this time Use risk to –allocate the time available for testing by prioritising testing …

Most important principle Prioritise tests so that, whenever you stop testing, you have done the best testing in the time available.