Topics in Data Security
Topics in Data Security DCS 860B
Popular in Course
Popular in Doctoral Computing Studies
This 10 page Class Notes was uploaded by Kiera Waelchi on Wednesday September 30, 2015. The Class Notes belongs to DCS 860B at Pace University - New York taught by Staff in Fall. Since its upload, it has received 33 views. For similar materials see /class/217093/dcs-860b-pace-university-new-york in Doctoral Computing Studies at Pace University - New York.
Reviews for Topics in Data Security
Report this Material
What is Karma?
Karma is the currency of StudySoup.
Date Created: 09/30/15
Data Classi cation Testdriven development and prioritization of test case execution Team 4 Jim Kile Don Little and Samir Shah Topic overview I What is Testdriven development TDD A practice of software development that involves the implementation of a system starting from the unit test cases of an object If you can t write a test for what you are about to code then you shouldn t even be thinking about coding Perceived Benefits Perceived Shortcomings I Program comprehension especially useful for maintenance activities I Efficiency through continuous feedback I Creation and availability of reusable test assets I Reducing defect injection during development ILack of upfront design I Applicability of the practice for code that is difficult to test using TDD eg GUls I Reliance on refactoring to achieve code understanding and manage complexity I High skill level and experience requirements Problem statement I The TestDriven development practice will yield superior external code quality when compared to code developed with a more traditional waterfalllike practice To date it has been difficult to quantify any potential improvements Many recent studies have attempted to prove part of this hypotheses Sample size was relatively small Experiments mixed other new agile processes with TDD l Additional problem for classification Using TDD produces a huge amount of reusable test case assets Assumes 100 unit test coverage Execution of all of these test cases for very large applications is impractical Solution Test case prioritization Prioritizing test cases Overview 7 common themes for reviewed papers I Why prioritize unit test cases To schedule them in an order that increases their effectiveness Q7 To increase the rate of early fault detection 3 To regression test only those areas that have changed 2 Time to execute full regression for mediumlarge projects ii I Classes and subclasses identified Execute High priority Medium priority Low priority Do not execute The prioritization problem 1 I Given T a test suite PT the set of permutations of T f a function from PTto the real numbers Find T 6 PT such that VT T e PTT T fT39 2 fT I PT represents the set of all possible prioritizations orderings of T and fis a function that applied to any such ordering yields an award value for that ordering Higher award values are preferable to lower ones I This is a search problem Greedy approach I Two of the articles propose a greedy algorithm 3 a to solve the prioritization issue I Three step process to assign execution priority step 1 Binary match to identify Note This is an example of an exhaustive search Old blocks of code Old modified blocks of code New blocks of code Step 2 Determine whether new versions are covered by an existing test Step 3 Prioritize the order of the selected test set greedy search Greedy approach continued Find a short sequence oftests from the given test set such that as many ofthe impacted blocks as possible will be covered Assigns priority weights to each test equal to the number of impacted blocks it covers The test with the maximum weight is selected and then removed from the set and each case s weight Is recalculated Al on39thm J L while any t 1n TestLlst covers any block 1n ImpactedBlkSet CurrBlkSet ImpactedBlkSet Seq for each t in TestList compute l Welghtt countcurrBlkSet n Coveraget l select test t 1n TestLlst wlth maximum weight CurrBlkSet CurrBlkSet a Coverage p l l Put all remaining tests 1n TestLlst 1n a new sequence Seq Hill climbing and simulated annealing approach I One article proposes a hill climbing and simulated annealing 1 to solve the prioritization issue Proposes that a solution corresponds to a feasible solution with overall minimum cost Coverage arrays are used to determine what test cases are run I Process to choose an execution test set hill climbing Set loose upper and lower bounds or the size of the test suite itself if known Randomly choose an initial feasible test set solution 8 Generate a randomly chosen transformation T to the feasible solution set generating S For example randomly replacing a test set with one not in S If of equal or lower cost it is accepted as the new current feasible 0 u ion 9 If S is of higher costs it is rejected and another randomly chosen neighbor IS selected alt 39 r 39 i ci I The trial is repeated several times with d ferent initial random test set solutions Hill climbing and simulated annealing approach continued I Process to choose an execution test set simulated annealing variant Same approach as hill climbing but allows the algorithm to reduce the quality ofthe current solution with controlled probability Why Helps avoid getting stuck in a bad configuration while still making progress Difference If S is of higher cost it is accepted with a probability using a random temperature I Note This did not attempt to determine what should be run versus what should not be run on a case by case basis just which predefined suite with the best coverage and cost References D M Cohen S R Dalal M L Fredman and G C Patton quotThe AETG System An Approach to Testing Based on Combinatorial Designquot IEEE Transactions on Software Engineering vol 23 no 7 pp 437444 July 1997 D Cohen S R Dalal M L Fredman and G C Patton quotMethod and System for Automatically Generating Ef cient Test Cases for Systems Having Interacting Elementsquot United States Patent No 5542043 July 30 1996 D M Cohen S R Dalal J Parelius and G C Patton quotThe Combinatorial Design Approach to Automatic Test Generationquot IEEE Software vol 13 no 5 pp 8388 September 1996 M B Cohen P B Gibbons W B Mugridge and C J Colbourn quotConstructing Test Suites for Interaction Testingquot 25th International Conference on Software Engineering ICSE3930 pp 3849 Portland Oregon United States IEEE Computer Society 2003 S Elbaum A G Malishevsky and G Rothermel quotPrioritizing Test Cases for Regression Testing 2000 ACM SIGSOFT International Symposium on Software Testing and Analysis pp 102112 Portland Oregon United States ACM Press 2000 Z Michalewicz and D B Fogel How to Solve It Modern Heuristics 2nd ed Berlin SpringerVerlag 2004 K J Nurmela and P R J Ostergard quotConstructing Covering Designs by Simulated Annealingquot Technical Report Report No B10 Helsinki University of Technology Digital Systems Laboratory pp 129 January 1993 A Srivastava and J Thiagarajan quotEffectiver Prioritizing Tests in Development Environmentquot Proceedings ofthe 2002 ACM SIGSOFT International Symposium on Software Testing and Analysis pp 97106 Rome Italy ACM Press 2002 J Stardom quotMetaheuristics and the Search for Covering and Packing Arraysquot Masters Thesis Simon Fraiser University Department of Mathematics Burnaby British Columbia Canada 2001 I H V tten and E Frank Data Mining Practical Machine Learning Tools and Techniques 2nd ed San Francisco Morgan Kaufmann 2005