Chapter 10 Part 2 Software Testing Implementation.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Configuration management
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Software Quality Assurance Plan
1 SOFTWARE TESTING Przygotował: Marcin Lubawski. 2 Testing Process AnalyseDesignMaintainBuildTestInstal Software testing strategies Verification Validation.
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
OHT 9.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Definitions and objectives Software testing strategies Software test.
Chapter 8 Estimating Single Population Parameters
OHT 10.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The testing process Determining the test methodology phase Planning.
Illinois Institute of Technology
Testing an individual module
System Implementation
Semester 2, 2003 Week 7 CSE9020 / 1 Software Testing and Quality Assurance With thanks to Shonali Krishnaswamy and Sylvia Tucker.
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
OHT 9.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Chapter 9.3 Software Testing Strategies.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Introduction to Software Testing
Software Testing Introduction. Agenda Software Testing Definition Software Testing Objectives Software Testing Strategies Software Test Classifications.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Software Testing Test Design and Implementation. Agenda Test Design Test Implementation Test Design Sources Automated Testing 2.
AUTOMATED SOFTWARE TESTING Donna Moy dxm06u. Presentation Content  Introduction to test planning and preparation  Why is planning and preparation important?
Introduction to Computer Technology
DEMONSTRATION FOR SIGMA DATA ACQUISITION MODULES Tempatron Ltd Data Measurements Division Darwin Close Reading RG2 0TB UK T : +44 (0) F :
Copyright © 2007 Pearson Education Canada 1 Chapter 12: Audit Sampling Concepts.
System Implementation. System Implementation and Seven major activities Coding Testing Installation Documentation Training Support Purpose To convert.
1 Building and Maintaining Information Systems. 2 Opening Case: Yahoo! Store Allows small businesses to create their own online store – No programming.
Semester 1, 2003 Week 7 CSE9020 / 1 Software Testing and Quality Assurance With thanks to Shonali Krishnaswamy and Sylvia Tucker.
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.
Chapter 9 Audit Sampling: An Application to Substantive Tests of Account Balances This presentation focuses (like my course) on MUS. It omits the effect.
OHT 7.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Chapter 7.1.
FCS - AAO - DM COMPE/SE/ISE 492 Senior Project 2 System/Software Test Documentation (STD) System/Software Test Documentation (STD)
 CS 5380 Software Engineering Chapter 8 Testing.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Event Management & ITIL V3
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 23 Reliability III.
© Copyright 2011 John Wiley & Sons, Inc.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Chapter 10 Verification and Validation of Simulation Models
What is Testing? Testing is the process of finding errors in the system implementation. –The intent of testing is to find problems with the system.
Auditing: The Art and Science of Assurance Engagements Chapter 13: Audit Sampling Concepts Copyright © 2011 Pearson Canada Inc.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Chap 8-1 Chapter 8 Confidence Interval Estimation Statistics for Managers Using Microsoft Excel 7 th Edition, Global Edition Copyright ©2014 Pearson Education.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Bina Nusantara 19 C H A P T E R SYSTEM CONSTRUCTION AND IMPLEMENTATION.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
Hall, Accounting Information Systems, 8e ©2013 Cengage Learning. All Rights Reserved. May not be scanned, copied or duplicated, or posted to a publicly.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
CASE Tools and their Effect on Software Quality
 Software reliability is the probability that software will work properly in a specified environment and for a given amount of time. Using the following.
OHT 10.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The testing process Determining the test methodology phase Planning.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Engineering (CSI 321)
SOFTWARE TESTING OVERVIEW
Systems Analysis and Design
Chapter 10 Verification and Validation of Simulation Models
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
Software testing strategies 2
Introduction to Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Systems Construction and Implementation
System Construction and Implementation
Systems Construction and Implementation
System analysis and design
Presentation transcript:

Chapter 10 Part 2 Software Testing Implementation

Lesson Outline Test Case Design Test case data components Test case sources Automated Testing The process of automated testing Types of automated testing Advantages and disadvantages of automated testing

Introduction A Test Case is a documented set of –data inputs and –operating conditions required to run a test item together with the expected results of the run. The tester runs the test case documentation and compare results with expected results. Reports are generated documenting results of the testing.

Test Case Design Generally, equivalence class testing is used to measure effectiveness of tests. (Black Box testing) Frequently, there are formulas included in the specifications. Many of these have ‘categories’ of values to be tested. Example: –Houses < $100,000 –House > $100, <= $300,000 –Houses > $300,000 and <= $750,000 –Houses > $750,000 –Such that each of these have formulas for computing, say, taxes

Test Case Design Then, anticipated results are also specified. Likely edits include: –R anges of permissible values (القيم المسموح بها) –Specifically cited unacceptable values –Error messages to be generated upon detecting incorrect inputs or computations, and more. –Compatibility edits –Associativity edits –Etc. etc.

Test Case Design Real time test case designs use different sets of parameters: Temperature settings Pressure gauges settings Alarm settings Warning lamps Bells and other alarms And expected (prescribed) actions that must occur. These must all be tested especially for critically- important real-time systems possibly affecting life, security, safety, and more…

Test Cases - Types of Expected Results  Management Information Systems - expected results: Numerical Alphabetic (name, address, etc.) Error message. Standard output informing user about missing data, erroneous data, unmet conditions, etc.  Real-time Software and Firmware - expected results: Numerical and/or alphabetic massages displayed on a monitor’s screen or on the equipment display. Activation of equipment or initiation of a defined operation. Activation of an operation, a siren, warning lamps and the like as a reaction to identified threatening conditions. Error message. Standard output to inform the operator about missing data, erroneous data, etc.

Test Case Sources There are two basic sources for test cases: Random Synthetic test cases (simulated test cases) –Need user / client inputs or client representatives to help out here serve as test designers. Random samples of real life cases and Stratified sampling of real life cases (Preferable) –Obtain ‘live’ data if at all possible

Test Case Sources Examples: – A sample of urban ( المناطق الحضرية ) households (to test a new municipal tax information system) – A sample of shipping bills (to test new billing software) – A sample of control records (to test new software for control of manufacturing plant production) – A recorded sample of events that will be “run” as a test case (to test online applications for an Internet site, and for real-time applications).

Test Cases Sources – Random Test Cases Effort Required to Prepare a Test Case File: Low effort, especially where expected results are available and need not be calculated Size of Test Case File? Relatively high as most cases refer to simple situations that repeat themselves frequently. A relatively large test case file needs to be compiled. Efforts Required to Perform the Tests High efforts (low efficiency) as tests must be carried out for large test files Probability of Error Detection: Relatively low unless the test case files are very large – due to the low percentage of uncommon combinations of parameters.

Test Cases Sources – Synthetic Test Cases Effort Required to Prepare a Test Case File: High effort; parameters for each test case must be determined and expected results cited. Size of Test Case File? Relatively small; may be possible to avoid repetitions of any given combination of parameters. Efforts Required to Perform the Tests: Low efforts (high efficiency) due to the relative small test case file compiled so as to avoid repetitions. Probability of Error Detection: Relatively high due to good coverage by design. Good coverage of erroneous situations by test case file design.

Test Cases Sources – Stratified Sampling To increase the sampling proportion of small populations and high potential error populations Stratified sampling improves coverage of less frequent and rare conditions. Stratified sampling allows us to break down a random simple into sub-populations of test cases; Nice table and example on p. 235.

Automated Testing U se computerized CASE tools Improves testing considerably but at a cost. Can perform many tests, especially loading tests - normally not feasible w/o some automated help. CASE tools can provide much statistical reporting, speed up testing, and much more.

Automated Testing We will look at: –The process of automated testing –The types of automated tests –The advantages and disadvantages of automated tests.

Process of Automated Testing R equires test planning, test design, test case preparation, test performance, test log and report generation, re-testing after corrections (regression) and final test log and report preparation. May iterate last two several times. Requires an immense commitment of manpower. (يتطلب التزاما هائلا من القوى العاملة) Manpower availability may be a limiting factor in choosing to go with automated testing.

Types of Automated Tests The main types of automated tests  Code auditing  Coverage monitoring  Functional tests  Load tests  Test management Consider the following slide (or p. 237) to see a comparison of automated and manual testing by phase.

Testing process phaseAutomated testing Manual testing Test planningMM Test designMM Preparing test casesMM Performance of the testsAM Preparing the test log and test reportsAM Regression testsAM Preparing the tests log and test reports including comparative reports AM M = phase performed manually, A= phase performed automatically Comparison of Automated and Manual Testing by Phase

Automated Tests – Code Auditing Computerized code auditor checks for compliance of code to standards. Lists of variations and statistical data are reported. Can check: –Module size –Levels of loop nesting –Levels of subroutine nesting –Prohibited constructs, such as GOTO –Naming conventions for variables, files, etc. –Unreachable code lines of program or subroutines Can locate comments, and more.

Automated Tests – Coverage Monitoring Produce reports about line coverage achieved when implementing a given test case file. Reports on percentage of lines covered by test cases as well as listing of uncovered lines. Vital for white box testing.

Automated Testing – Functional Tests Automated functional testing often replaces manual black- box correctness tests. Documentation provides listings of errors identified and summaries and statistics required by testers’ specifications. After fixing the program, much testing is redone (regression testing). –This is to ensure the fixes have not adversely affected other correctly-functioning code.

Automated Testing – Functional Tests – the Comparator Regression tests can be done with minimal effort because we already have the existing test case database. This accommodates automated comparisons of successive tests with results of functional testing tools that enables testers to prepare an improved analysis of the regression test results. Quite common to require three or four regression tests before qualifying as satisfactory.

Automated Testing – Functional Tests – Load Testing  The history of software system development contains many sad chapters of systems that succeeded in correctness tests but severely failed (فشل بشدة) – and caused enormous damage – once they were required to operate under standard full load.  The damage in many cases was extremely high because the failure occurred “unexpectedly”, when the systems were supposed to start providing their regular software services.

Automated Testing – Functional Tests – Load Testing Great for testing large numbers of users or large numbers of inputs in real time systems. Only practical way to carry out load testing is via computerized simulations where the real load conditions can be monitored. Computerized monitoring of the load tests produces software system performance measurements in terms of reaction time, processing time, and other desired parameters. These are compared with the specified maximal load performance requirements in order to evaluate how well the software system will perform in daily use.

Example  The “Tick Ticket” is a new Internet site planned to meet the following requirements:  The site should be able to handle up to a maximum of 3000 hits per hour.  Average reaction time required for the maximal load of 3000 hits per hour is 10 seconds or less.  Average reaction time required for the regular load of 1200 hits per hour is 3 seconds or less. (p. 240)

Test Management Testing usually involves monitoring test results. Computerized test management supports monitoring and other testing management goals. Computerized test management tools are planned to provide testers with reports, lists, and other types of information at levels of quality and availability that are higher than those provided by manual test management systems.

Test Management Some computerized test management packages provide both automated and manual components and automated components for the automated testing only. Many features are both automated and manual: Test Plans, Test Results and Correction Follow up –Preparation of lists, tables, and visual presentations of test plans –List of test cases –Listing of detected errors –Listing of correction schedule (performer, date of completion, etc.) –Listing of uncompleted corrections for follow up. –Error Tracing: detection, correction and regression tests. –Many test tools provide for both automated and manual testing.

Availability of Automated Testing Tools Most are highly specialized for specific areas of programming and applications: client-server systems, C/C++ applications, UNIX applications, a specific software house’s ERP (Enterprise Resource Planning) applications,...

Advantages of automated tests Accuracy and completeness of performance. –Manual testing suffers from periods of tester weariness or low concentration, traits, … Accuracy of results log and summary reports. –Manual testing sometimes do not recognize errors and overlook others in their logs… Comprehensiveness of information. –Results stored in databases and very available. –Improved error information Few manpower resources required for performing of tests. –Manual performance of testing is a major consumer of resources Shorter duration of testing. –Far shorter than manual testing. Can be carried out uninterrupted 24=7.

Advantages of automated tests (Cont.) Performance of complete regression tests. –Manual tests not always conducted as widely as they should. –Automated tests are more complete and easier to rerun tests based on previous results –Substantially reduced the risk of not detecting errors introduced during previous rounds of corrections. Performance of test classes beyond the scope of manual testing. –Can also perform special tests otherwise not too feasible, such as load testing, availability testing, and more. –These tests are almost impossible to perform manually on systems of large size.

Disadvantages of automated tests (Cont.) High investments required in package purchasing and training. –This is very expensive and requires a good bit of training for users of these packages. High package development investment costs. –Packages do not always meet consumer needs and thus custom-made packages may need to be developed. High manpower requirements for test preparation. –Lot of human resources needed for preparing the automated test procedures – much higher than those required for preparing for manual testing of the same package. Considerable testing areas left uncovered. –Currently, automated software testing packages do not cover the entire variety of development tools and types of applications either available manually or still needed. –This forces testers to mix manual and automated testing in their test plans.

Alpha and Beta Testing Programs Designed to solicit inputs from potential users. In a way, alpha and beta test sites replace the customer’s acceptance test that is impractical under the conditions of commercial software package development. These should not replace the formal software tests performed by the developer.

Alpha Site Tests S oftware package performed at developer’s site. Customer, by applying the new software to the specific requirements of his organization, tends to examine package from angles not expected by the testing team. Errors identified are expected to include errors only a real user can reveal and thus should be reported to the developer.

Beta Test Sites Much more commonly applied. Once an advanced version of the software package is available, the developer offers it free of charge to one or more potential users. Users install package in their sites (beta sites) with the understanding that they will inform the developer of all errors revealed during trials or regular usage. Sometimes developers involve hundreds or even thousands of participants in the process.

The main advantages of beta site tests Identification of unexpected errors. –Users usually test in different ways and apply the software in ways different than the developer’s scenarios. Results in errors not found A wider population in search of errors. –Wider range of participation contributes a scope of software usage experience and potential for revealing hidden errors that go beyond those available at the developer’s testing site. Low costs. –Participants are not paid for information they report. Only costs is for the package and in most cases this is quite low.

The main disadvantages of beta site tests A lack of systematic testing. –Testing is sporadic and many parts may go well untested. –Reports are not required to be ‘orderly.’ Low quality error reports. –Participants are not professional testers –Sometimes impossible to reconstruct the error conditions they report. Difficult to reproduce the test environment. –Usually beta testing done in an uncontrolled testing environment and this makes it difficult to reproduce. Much effort is required to examine reports. –High investment in time and human resources to examine reports due to frequent repetitions and low quality of reporting.

Good Tip Testers and developers should be especially cautious when applying beta site testing. Beta site testing of pre-matured software may detect many software errors but can result in highly negative publicity among potential customers. These negative impressions can reach the professional journals and cause substantial market damage. Recommend alpha site testing be initiated first, and beta site testing be delayed until the alpha test site tests have been completed and their results analyzed.