Extracting Test Cases by Using Data Mining; Reducing the Cost of Testing Andrea Ciocca COMP 587 Topics • • • • • • • • • • Data Mining Introduction Case-Based Reasoning Effort Estimation Automated Testing Test Cases in Web Applications Using Clustering Convert Software into Cases Define Case and Domains Using CBR to Find Test Cases Data Mining • Definition: the process of extracting patterns from large data sets by combining methods from statistics and artificial intelligence with database management. Introduction • • • • Testing in today’s software development Cost derived from lack of testing in the billions Importance of documentation in testing The role of data mining in testing Case-Based Reasoning • To solve a new problem by remembering a previous similar situation and by reusing information and knowledge previously acquired • How? • • • • Retrieve Reuse Revise Retain Effort Estimation • a * SIZE^b • CBR • COCOMO Automated Testing • Can reduce the cost of testing and therefore the overall cost of software development • Old scenarios must be re-tested in new releases • Automation can reduce time of testing and increase accuracy Test Cases in Web Applications • • • • • • • • • • • • • • Content Transactions User Interface Stress Database Compatibility Component Level Navigation Configuration Workload Volume Usability Security Special Conditions Using Clustering • Organization of a collection of patterns into clusters Convert Software into Cases • A case X = (x1, … xn) is a single data item used by the clustering algorithm • Identify scalar components • Measure similarity • Euclidean distance (Murkowski) Define Case and Domains Using CBR to Find Test Cases Summary • • • • • • • • • • Data Mining Introduction Case-Based Reasoning Effort Estimation Automated Testing Test Cases in Web Applications Using Clustering Convert Software into Cases Define Case and Domains Using CBR to Find Test Cases Questions ?