130 likes | 134 Views
A framework for quantitative software testing that uses recorded data for automatic knowledge discovery, helping to identify correctness, completeness, security, and quality of developed software.
E N D
A Framework for Quantitative Software Testing Vasile Rus and Sajjan Shiva Department of Computer Science The University of Memphis
Outline The Main Idea Framework for Quantitative Software Testing Systems Testing Expert System (STES): Knowledge Repository (1) Information Extraction (2)
Main Idea Use recorded data for automatic knowledge discovery Expert = Experience + Training/Intelligence Expert System = Recorded Data + Machine Intelligence STES = Systems Testing Expert Systems
Challenges with Data Various formats used for storing information Structured input (tuples) needed for automated knowledge discovery
Structured Data (DB) Semi-structured Documents Free-text (Free-structure) TABLES
Architecture DATABASE Source Code XML- Documents Text Documents Software Testing is used to help identify correctness, complete- ness, security, and quality of developed software. <NAME> If() { //comments } else { //comments } <NAME> <COMPONENT> <COMPONENT> <DESCRIPTION> <DESCRIPTION> Testing includes executing a program to find errors. INFORMATION EXTRACTION REPORTS SUMMARIES N-Tuples Machine Learning (Naïve Bayes, Decision Trees) NEW KNOWLEDGE Architecture of Information Processing Framework for Systems Testing
Applications Finding Duplicate/similar Bugs Cluster Defects into equivalence classes Modeling and Predicting Modules with Defects
Duplicate Bugs (DUPS) Identification Before entering a bug report the tester must check whether the bug has already been reported Very time consuming
Deep Information Retrieval Use the bug description field to help finding duplicate bugs Deep Natural Language Processing (NLP) techniques Use the bug description field to cluster bugs Deep NLP and clustering techniques Same release Same project, across releases Entire organization, across projects Very helpful to find equivalence classes of problems in software products
Quick Analysis Less than 50% of reported bugs are duplicate bugs (according to Mozilla.org) A tool based on deep NLP could reduce the time spent on reporting/filing a new bug to at least half Basic Science Insights on bug typology Industry Benefits Great productivity gains
Further Plans Modeling and Predicting modules with defects
Framework for Quantitative Software Testing Advantages: Objective (as opposed to someone’s opinion/memory) Scalable Disadvantage Recording your daily operations comes with an overhead It does pay off! Alternative Strategy: mission driven