Damian Gordon.  Why do pilots bother doing pre-flight checks when the chances are that the plane is working fine?

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

What is an Algorithm? An algorithm is a well-developed, organized approach to solving a complex problem.
Unit-V testing strategies and tactics.
Lecture 8: Testing, Verification and Validation
Testing and Quality Assurance
Software Quality Assurance Plan
Well-behaved objects Debugging. 2 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Prevention vs Detection.
16/27/2015 3:38 AM6/27/2015 3:38 AM6/27/2015 3:38 AMTesting and Debugging Testing The process of verifying the software performs to the specifications.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Outline Types of errors Component Testing Testing Strategy
Software Testing Name: Madam Currie Course: Swen5431 Semester: Summer 2K.
Introduction to Software Testing
Types and Techniques of Software Testing
1 CSc Senior Project Software Testing. 2 Preface “The amount of required study of testing techniques is trivial – a few hours over the course of.
History of Software Testing Philippe CHARMAN Last update:
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
BY: GARIMA GUPTA MCA FINAL YEAR WHAT IS SOFTWARE TESTING ? SOFTWARE TESTING IS THE PROCESS OF EXECUTING PROGRAMS OR SYSTEM WITH THE INTENT.
System/Software Testing
TESTING.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CPIS 357 Software Quality & Testing
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software Testing.
Software Testing Damian Gordon.
TVAC Electronic Call Sheet System Team HeatWave Summer 2007.
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.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
COMP 121 Week 1: Testing and Debugging. Testing Program testing can be used to show the presence of bugs, but never to show their absence! ~ Edsger Dijkstra.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Controls design Controls are “the plan of organization and all the methods and measures to safeguard its assets, check the accuracy and reliability of.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
… Computer Science Inside… Algorithm Development.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Engineering Saeed Akhtar The University of Lahore.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
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.
Dynamic Testing.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
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.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
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.
Test Automation Steffen Goerlitz Barry Lange Mitchell Meerman Harry Schultz Trevor Spees.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Harvard Mark I Howard Aiken was a pioneer in computing and a creator of conceptual design for IBM in the 1940s. He envisioned an electro-mechanical computing.
Software Testing Strategies for building test group
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Engineering (CSI 321)
Integration Testing.
Rekayasa Perangkat Lunak Part-13
Software Testing.
Chapter 9, Testing.
SUCHITA M.DAKI TYIT(sem v)
Chapter 13 & 14 Software Testing Strategies and Techniques
IS442 Information Systems Engineering
Types of Testing Visit to more Learning Resources.
Introduction to Software Testing
Verification and Validation Unit Testing
Fundamental Test Process
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Presentation transcript:

Damian Gordon

 Why do pilots bother doing pre-flight checks when the chances are that the plane is working fine?

 This module is designed to provide the student with both a practical and theoretical understanding of how software is tested, with emphasis on test strategies, test design and test execution. Students will focus on the practical issues associated with testing software which will include a review of the techniques and technologies upon which software testing is based.

 The aim of this module is to provide the learner with both a theoretical and practical understanding of the technologies used within software testing.

1. Demonstrate an understanding of the fundamentals of software testing 2. Demonstrate an understanding of the technologies used within software testing 3. Demonstrate a practical understanding of software testing methodologies. 4. Design and implement a test strategy 5. Critically analyse different test methodologies 6. Understand the testing process

 The module will be delivered primarily through lectures, tutorials and laboratory work as deemed necessary by the lecturer.

 Testing Methodologies and Quality Assurance  Test Case Management  Defect Tracking  Software Metrics  Manual and Automated Testing  Storage, Web, Security and Performance Testing  Practical experience of testing Open Source projects  Installation, integration, acceptance, compliance testing

 Assessment of this module is entirely by continuous assessment, which may be implemented through class tests, lab tests, assignment submissions, presentations or any other methods deemed appropriate by the lecturer.

 softwaretesting.blogspot.com/   Cem Kaner, James Bach and Bret Pettichord (2001) Lessons Learned in Software Testing, Wiley, ISBN,  Cem Kaner, Jack Falk, Hung Q. Nguyen (1999) Testing Computer Software, 2nd Edition Wiley, ISBN,  M. Andrews and J. Whittaker (2006) How to Break Web Software, Addison-Wesley, ISBN,

 Software testing is an investigate process to measure the quality of software.  Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs.

 How is a software system built? ◦ Customer contacts an I.T. Company and requests that a software system be created ◦ The customer works with an analyst to define a design of the software system ◦ The design is given to developers to build the software system ◦ The developed system is given to software testers to check if it is OK ◦ The system is handed over to the customers

 The IBM Automatic Sequence Controlled Calculator (ASCC), called the Mark I by Harvard University was an electro- mechanical computer.  It was devised by Howard H. Aiken, built at IBM and shipped to Harvard in February  It began computations for the U.S. Navy Bureau of Ships in May and was officially presented to the university on August 7,  It was very reliable, much more so than early electronic computers.

 Howard Hathaway Aiken  Born March 8, 1900  Died March 14, 1973  Born in Hoboken, New Jersey  He envisioned an electro-mechanical computing device that could do much of the tedious work for him.  With help from Grace Hopper and funding from IBM, the machine was completed in 1944.

 Rear Admiral Grace Murray Hopper  Born December 9, 1906  Died January 1, 1992  Born in New York City, New York  Computer pioneer who developed the first compiler for a computer programming language

 Grace Hopper served at the Bureau of Ships Computation Project at Harvard University working on the computer programming staff.  A moth was found trapped between points at Relay #70, Panel F, of the IBM Harvard Mark II Aiken Relay Calculator while it was being tested at Harvard University, 9 September  The operators affixed the moth to the computer log, with the entry: "First actual case of bug being found".  Grace Hopper said that they "debugged" the machine, thus introducing the term "debugging a computer program".

 Defect  Fault  Problem  Error  Incident  Anomaly  Variance Failure Inconsistency Product Anomaly Product Incidence

YearsEraDescription Debugging orientated In this era, there was no clear difference between testing and debugging Demonstration orientated In this era, debugging and testing are distinguished now - in this period it was shown, that software satisfies the requirements Destruction orientated In this era, the goal was to find errors Evaluation orientated In this era, the intention here is that during the software lifecycle a product evaluation is provided and measuring quality Prevention orientated In the current era, tests are used to demonstrate that software satisfies its specification, to detect faults and to prevent faults. Gelperin, D.; Hetzel, B. (1988). "The Growth of Software Testing". CACM 31 (6).

 Black box testing treats the software as a "black box"—without any knowledge of internal implementation.  Black box testing methods include: ◦ equivalence partitioning, ◦ boundary value analysis, ◦ all-pairs testing, ◦ fuzz testing, ◦ model-based testing, ◦ exploratory testing and ◦ specification-based testing.

 White box testing is when the tester has access to the internal data structures and algorithms including the code that implement these.  White box testing methods include: ◦ API testing (application programming interface) - testing of the application using public and private APIs ◦ Code coverage - creating tests to satisfy some criteria of code coverage (e.g., the test designer can create tests to cause all statements in the program to be executed at least once) ◦ Fault injection methods - improving the coverage of a test by introducing faults to test code paths ◦ Mutation testing methods ◦ Static testing - White box testing includes all static testing

 Grey Box Testing involves having knowledge of internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level.  The tester is not required to have a full access to the software's source code.  Grey box testing may also include reverse engineering to determine, for instance, boundary values or error messages.

1. Draw a diagonal line 2. Draw another diagonal line connected to the top of the first one 3. Draw a straight line from the point where the diagonal lines meet 4. Draw a horizontal line over the straight line 5. At the bottom of the straight line, draw a curvy line 6. Draw a diagonal line from the bottom of the first diagonal to the straight line 7. Draw a diagonal line from the bottom of the second diagonal to the straight line

 Compare your picture with others' pictures… ◦ Were they different? ◦ Why? ◦ What was difficult about following the instructions ◦ What was missing from the instructions?

1. Draw a diagonal line 2. Draw another diagonal line connected to the top of the first one 3. Draw a straight line from the point where the diagonal lines meet 4. Draw a horizontal line over the straight line 5. At the bottom of the straight line, draw a curvy line 6. Draw a diagonal line from the bottom of the first diagonal to the straight line 7. Draw a diagonal line from the bottom of the second diagonal to the straight line

 Now write a set of instructions that work!  Ensure only one way to interpret each step ◦ unambiguous  … and enough detail in each step

 This time: ◦ write an Algorithm ◦ test it yourself ◦ get someone else to try it out…  Can you be sure your algorithm will work ok?

…  The task/problem: ◦ make a shape out of paper – one sheet of A4  Write the algorithm ◦ Write a set of instructions that explains how to make a paper shape from 1 sheet of A4 paper  Test it ◦ Try out your algorithm – does it work? ◦ Note: follow your instructions as closely as possible ◦ Adjust the instructions if necessary

 Lowest level functions and procedures in isolation  Each logic path in the component specifications

 Tests the interaction of all the related components of a module  Tests the module as a stand-alone entity

 Tests the interfaces between the modules  Scenarios are employed to test module interaction

 Tests interactions between sub-systems and components  System performance  Stress  Volume

 Tests the whole system with live data  Establishes the ‘validity’ of the system

 Program testing and fault detection can be aided significantly by testing tools and debuggers. Testing/debug tools include features such as: ◦ Program monitors, permitting full or partial monitoring of program code (more on the next slide). ◦ Formatted dump or symbolic debugging, tools allowing inspection of program variables on error or at chosen points. ◦ Automated functional GUI testing tools are used to repeat system-level tests through the GUI. ◦ Benchmarks, allowing run-time performance comparisons to be made. ◦ Performance analysis (or profiling tools) that can help to highlight hot spots and resource usage.

 Program monitors, permitting full or partial monitoring of program code including: ◦ Instruction set simulator, permitting complete instruction level monitoring and trace facilities ◦ Program animation, permitting step-by-step execution and conditional breakpoint at source level or in machine code ◦ Code coverage reports

 Traffic Light System

FeatureLikelihood of failure (1-10) Impact of Failure (1-10) Priority Number F1Push Button F2Get Time F3Green On F4Green Off F5Amber On F6Amber Off F7Red On F8Red Off F9Bleep On F10Bleep Off