Software Quality Assurance and Testing Fazal Rehman Shamil.

Slides:



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

Testing Relational Database
Test process essentials Riitta Viitamäki,
Lecture 8: Testing, Verification and Validation
Testing and Quality Assurance
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Chapter 4 Quality Assurance in Context
1 Software Engineering Lecture 11 Software Testing.
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.
Introduction to Software Testing
Software Testing & Strategies
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Test Design Techniques
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
System/Software Testing
Extreme Programming Software Development Written by Sanjay Kumar.
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
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.
Chapter 1: Introduction to Software Testing Software Testing
SOFTWARE TESTING STRATEGIES CIS518001VA : ADVANCED SOFTWARE ENGINEERING TERM PAPER.
Introduction Telerik Software Academy Software Quality Assurance.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Chapter 6: Testing Overview Basic idea of testing - execute software and observe its behavior or outcome. If failure is observed, analyze execution record.
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.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
Software Testing. What is Software Testing? Definition: 1.is an investigation conducted to provide stakeholders with information about the quality of.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Testing Methods Carl Smith National Certificate Year 2 – Unit 4.
Chapter SIX Implementation, Testing and Pragmatics Making it a reality.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Software Construction Lecture 18 Software Testing.
Testing Techniques Software Testing Module ( ) Dr. Samer Hanna.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
MANUAL TESTING KS SESSION PRESENTED BY 26/11/015 VISHAL KUMAR.
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.
Software Testing. System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Testing and Debugging. Testing Fundamentals  Test as you develop Easier to find bugs early rather than later Prototyping helps identify problems early.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Software Testing. SE, Testing, Hans van Vliet, © Nasty question  Suppose you are being asked to lead the team to test the software that controls.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
Testing Integral part of the software development process.
Software Testing.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Engineering (CSI 321)
Testing Tutorial 7.
Rekayasa Perangkat Lunak Part-13
SOFTWARE TESTING OVERVIEW
Software Testing An Introduction.
Software Quality Assurance
Introduction to Software Testing
Lecture 09:Software Testing
Verification and Validation Unit Testing
CS240: Advanced Programming Concepts
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
© Oxford University Press All rights reserved.
Presentation transcript:

Software Quality Assurance and Testing Fazal Rehman Shamil

Outline Concepts, Issues Testing Purpose Testing Processes, Activities and Context Classification of Testing Techniques Software Testing 2

Basic Concept Software Testing 3 According to ANSI/IEEE 1059 standard, Testing can be defined as “A process of analyzing a software item to detect the differences between existing and required conditions (that is defects/errors/bugs) and to evaluate the features of the software item”.

State-of-the-Art Software Testing 4  errors are made per 1000 lines of source code  Extensively tested software contains errors per 1000 lines of source code  If testing is postponed, as a consequence: the later an error is discovered, the more it costs to fix it.  Error distribution: 60% design, 40% implementation. 66% of the design errors are not discovered until the software has become operational.

Lessons Many errors are made in the early phases These errors are discovered late Repairing those errors is costly  It pays off to start testing real early Software Testing 5

6

7 Who Tests the Software? developer independent tester Understands the system but, will test "gently" and, is driven by "delivery" Must learn about the system, but, will attempt to break it and, is driven by quality Software Testing

8 What is a “Good” Test? a high probability of finding an error not redundant. neither too simple nor too complex "Bugs lies on corners and gathered at boundaries..." Boris Beizer Software Testing

Basic Questions What artifacts are tested? (code and some other artifacts) What to test?  from which view?(External or internal-Black/White box)  related: type of faults found? When to stop testing? - some coverage criteria or reliability goal Software Testing 9

10 Software Testing White-Box Testing... our goal is to ensure that all statements and conditions have been executed at least once... Black-Box Testing requirements events input output Software Testing

Functional vs. Structural Testing Key distinction-> Perspective on what need to be checked/tested? Functional testing:  tests external functions. - as described by external specifications  black-box in nature; -functional mapping: input => output -without involving internal knowledge Software Testing 11

Functional vs. Structural testing Structural testing:  tests internal implementations. =>components and structures.  white-box in nature; - “white" here = seeing through => internal elements visible.  really clear/glass/transparent box. Software Testing 12

Black Box Testing The simplest form of BBT is to start running the software and make observations in the hope that it is easy to distinguish between expected and unexpected behavior. Another common form of BBT is the use of specification checklists, which list the external functions that are supposed to be present, as well as some information about the expected behavior or input-output pairing. Software Testing 13

Black Box Testing Focus of test execution during BBT is to observe the external behavior, to ensure orderly execution of all the test cases to record execution information for analysis and follow-up activities. If the observed behavior patterns cannot be immediately identified as failures, information needs to be recorded for further analysis. Software Testing 14

Black Box Testing Once the execution result is obtained, either individually or as a set, analyses can be carried out to compare the specific behavior and output with the expected ones. This comparison to determine if it is expected behavior or if a failure occurred is called the testing oracle problem. Software Testing 15

Black Box Testing Examples: Compiler Example An example of a black-box system would be a search engine. You enter text that you want to search for in the search bar, press “Search” and results are returned to you. In such a case, you do not know or see the specific process that is being employed to obtain your search results, you simply see that you provide an input – a search term – and you receive an output – your search results Software Testing 16

White Box Testing Structural testing verifies the correct implementation of internal units, such as  program statements,  data structures, etc.,  and relations among them. This is done through test execution by observing the program behavior related to these specific units. The simplest form of WBT is statement coverage testing through the use of various debugging tools, or debuggers, which help us in tracing through program executions. Software Testing 17

White Box Testing One of the advantages is that once a problem is detected, it is also located. The problems of omission(forget) or design problems cannot be easily detected through WBT, because only what is present in the code is tested. The tester needs to be very familiar with the code under testing to trace through its executions. Consequently, WBT and related activities are typically performed by the programmers themselves because of their intimate knowledge of the specific program unit under testing. This dual role also makes defect fixing easy. Software Testing 18

White Box Testing Example:  An example of a white-box system would be in-circuit testing where someone is looking at the interconnections between each component and verifying that each internal connection is working properly. Software Testing 19

Gray Box Testing combination  Gray box testing is a software testing technique that uses a combination of black box testing and white box testing. not  Gray box testing is not black box testing, because the tester does know some of the internal workings of the software under test.  In gray box testing, the tester applies a limited number of test cases to the internal workings of the software under test. In the remaining part of the gray box testing, one takes a black box approach in applying inputs to the software under test and observing the outputs.

Software Testing2 21 integration testing This is particularly important when conducting integration testing between two modules of code written by two different developers, where only the interfaces are exposed for test. An example of Gray Box Testing would be when the codes for two units/ modules are studied (White Box Testing method) for designing test cases and actual tests are conducted using the exposed interfaces (Black Box Testing method). Gray Box Testing

Pros and Cons of Black Box Testing

 Tester can be non- technical.  This testing is most likely to find those bugs as the user would find.  Test cases can be designed as soon as the functional specifications are complete.  Chances of having repetition of tests that are already done by programmer.  It is difficult to identify all possible inputs in limited testing time. Pros and Cons of Black Box Testing

Software quality assurance (SQA) Software quality assurance (SQA) is a process that ensures that developed software meets and complies with defined or standardized quality specifications. SQA is an ongoing process within the software development life cycle (SDLC) that routinely checks the developed software to ensure it meets desired quality measures. Software Testing 24

Software Quality control Quality control is the set of measures and procedures to follow in order to ensure that the quality of a product is maintained and improved against a set of benchmarks and that any errors encountered are either eliminated or reduced. The focus of quality control is to ensure that the product and product manufacturing are not only consistent but also in line with customer requirements. Software Testing 25

Difference between SQA and SQC See image file in detail as provide you in class. Software Testing 26

Verification and validation Verification: To check that we are building the product right Validation: To check that we built the right product. Software Testing 27

Thank You! Software Testing 28