Equivalence Partitioning Identify the inputs, behaviors, or other factors that you want to test based on the functionality and specifications Group these.

Slides:



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

SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Software Architecture Prof.Dr.ir. F. Gielen
Software Testing Fundamentals
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
1 CODE TESTING Principles and Alternatives. 2 Testing - Basics goal - find errors –focus is the source code (executable system) –test team wants to achieve.
Software Testing and Quality Assurance
Illinois Institute of Technology
Testing an individual module
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Systems Analysis and Design in a Changing World, 6th Edition
ECE122 L17: Method Development and Testing April 5, 2007 ECE 122 Engineering Problem Solving with Java Lecture 17 Method Development and 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.
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Test Design Techniques
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
Introduction to Unit Testing Jun-Ru Chang 2012/05/03.
Chapter 9 Testing the System. Chapter 9  Function testing  Performance testing  Acceptance testing  Installation testing  Test documentation  Testing.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
Introduction Telerik Software Academy Software Quality Assurance.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Testing Especially Unit Testing. V-model Wikipedia:
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.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
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.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Unit Testing with JUnit and Clover Based on material from: Daniel Amyot JUnit Web site.
Chapter 8 Testing the Programs. Chapter 8 Learning Objectives Be able to …  Define different types of faults and how to classify them  Define the purpose.
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.
Software Development A Proposed Process and Methodology.
Software Engineering Saeed Akhtar The University of Lahore.
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
1. Black Box Testing  Black box testing is also called functional testing  Black box testing ignores the internal mechanism of a system or component.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Unit Testing with FlexUnit
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
System Testing 12/09. Hierarchy of Testing Testing Program Testing Top Down Bottom Up Integration TestingUnit Testing System Testing Big Bang Sandwich.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
ANOOP GANGWAR 5 TH SEM SOFTWARE TESTING MASTER OF COMPUTER APPLICATION-V Sem.
Software Testing. Software Quality Assurance Overarching term Time consuming (40% to 90% of dev effort) Includes –Verification: Building the product right,
SaralTA Batch-07 Software Testing Presented By - Chittaranjan M.
Software Testing Strategies for building test group
Software Testing.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Testing Tutorial 7.
Software Testing.
Rekayasa Perangkat Lunak Part-13
LECTURE 8: Software Testing
Levels Of Testing and Special Tests
Applied Software Implementation & Testing
Unit testing C# classes
LECTURE 10: Software Testing
Lecture 09:Software Testing
Verification and Validation Unit Testing
Test-driven development (TDD)
CSE 303 Concepts and Tools for Software Development
Chapter 10 – Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
LECTURE 10: Software Testing
Unit Testing for the Absolute Beginner
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Software Testing Strategies
Presented by KARRI GOVINDA RAO ,
Implementation Plan system integration required for each iteration
Presentation transcript:

Equivalence Partitioning Identify the inputs, behaviors, or other factors that you want to test based on the functionality and specifications Group these factors into classes that your program should handle in the same way Create test cases with at least one set of data to test each equivalence partition – Boundary values are most likely to identify errors

White Box Testing Examine the code and create test cases that – ensure that all paths are tested – Ensure that all conditions are tested Boundary conditions are most likely to identify errors

Unit Testing with MsTest Test fixture : a class that contains one or more test methods Test method : a method that executes a specific test Test runner : an application that finds and executes test methods on test fixtures Assertion : a Boolean expression that describes what must be true when some action has been executed

[TestMethod()] [ExpectedException(typeof(ArgumentException))] public void BankAccountConstructorTestForNullName () { string name = null; double amount = 1.00; BankAccount acct = new BankAccount(name, amount); // Exception is expected because name is null } Handling Expected Exceptions

[TestMethod] [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\DepositTestData.csv", "DepositTestData#csv", DataAccessMethod.Sequential), DeploymentItem("BankAccountTests\\DepositTestData.csv")] public void TestDepositGreaterThanZero () { double initialBalance = Convert.ToDouble(TestContext.DataRow[0]); double amountDeposited = Convert.ToDouble(TestContext.DataRow[1]); double expected = Convert.ToDouble(TestContext.DataRow[2]); BankAccount acct = new BankAccount("Ed Gellenbeck", initialBalance); acct.Deposit(amountDeposited); Assert.AreEqual(expected, acct.Balance); } Data Driven Unit Tests

Red/Green/Refactor Test Driven Development 1.Write the test code 2.Compile the test code (It should fail because you haven’t implemented anything yet.) 3.Implement just enough to compile. 4.Run the test and see it fail. 5.Implement just enough to make the test pass. 6.Run the test and see it pass. 7.Refactor for clarity and to eliminate duplication. 8.Repeat from the top.

Benefits of Unit Testing Act of writing tests often uncovers design or implementation problems Unit tests serves as documentation Unit tests aid regression testing Unit tests easily migrate to maintenance and future enhancements

Integration Testing Integration is the process of combining components (e.g. classes) to create a larger component Integration testing focuses on finding interface errors between unit-tested components Integration testing should begin as soon as components have been unit-tested

System Testing

System testing involves running the entire system on the actual hardware – Function testing: does the integrated system perform as promised by the requirements specification? – Performance testing: are the non-functional requirements met? – Acceptance testing: is the system what the customer expects? – Installation testing: does the system run at the customer site(s)?

Short Answer Question How does system testing differ from unit and integration testing? How does unit testing differ from integration testing?

In a method, a variable did not get initialized properly. Which type of testing would most likely expose this defect? A. Unit testing B. Integration testing C. Functional testing D. Performance testing E. Acceptance testing F. Installation testing

A gas pump system is supposed to allow the user to choose whether or not a receipt is printed, but the print function has not been implemented. Which type of testing is most likely to expose this defect? A. Unit testing B. Integration testing C. Functional testing D. Performance testing E. Acceptance testing F. Installation testing

A configuration file used by the reporting subsystem is not placed in the correct directory in the customer's environment. Which type of testing is most likely to expose this defect? A. Unit testing B. Integration testing C. Functional testing D. Performance testing E. Acceptance testing F. Installation testing

The customer is unhappy with the number of screens that must be traversed before getting to the parts list screen, a screen accessed frequently when using the system. Which type of testing is most likely to expose this defect? A. Unit testing B. Integration testing C. Functional testing D. Performance testing E. Acceptance testing F. Installation testing