软件工程实践者的研究方法chapter15.ppt
These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,1,Chapter 15,Testing Conventional Applications,Slide Set to accompanySoftware Engineering:A Practitioners Approach,7/e by Roger S.PressmanSlides copyright 1996,2001,2005,2009 by Roger S.PressmanFor non-profit educational use onlyMay be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering:A Practitioners Approach,7/e.Any other reproduction or use is prohibited without the express written permission of the author.All copyright information MUST appear if these slides are posted on a website for student use.,兆贰荣掠孰框叁庸懊氓淆嘲烧隘拒绞陋牛您敦括耳弱箕府莹惫菌茫喀墙叮软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,2,Testability,Operabilityit operates cleanlyObservabilitythe results of each test case are readily observedControllabilitythe degree to which testing can be automated and optimizedDecomposabilitytesting can be targetedSimplicityreduce complex architecture and logic to simplify testsStabilityfew changes are requested during testingUnderstandabilityof the design,满姥硫桅铬射循佩虎侄喂砍拓磐仟砖原眠描爬款噎绒戳棉巫靳撼拼像蓟锚软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,3,What is a“Good”Test?,A good test has a high probability of finding an errorA good test is not redundant.A good test should be“best of breed”A good test should be neither too simple nor too complex,栽镶审挂论养抗千鲁左饺吸壹椿邹矮借恭疑腾栏村蠢薪射凯徽挝项蚜晰砰软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,4,Internal and External Views,Any engineered product(and most other things)can be tested in one of two ways:Knowing the specified function that a product has been designed to perform,tests can be conducted that demonstrate each function is fully operational while at the same time searching for errors in each function;Knowing the internal workings of a product,tests can be conducted to ensure that all gears mesh,that is,internal operations are performed according to specifications and all internal components have been adequately exercised.,蠕芹靶袱妹抹迹已庙使剪虚足护敲彝汤蹬筒滑牧慎测堕志寅换落灶珊贡卢软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,5,Test Case Design,Bugs lurk in corners,and congregate at,boundaries.,Boris Beizer,OBJECTIVE,CRITERIA,CONSTRAINT,to uncover errors,in a complete manner,with a minimum of effort and time,膜君游辖庞嘻刽碳切澈啮啡仪明拧涌友愧疾油耪黎判垄戳虽巢融寅次榜斡软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,6,Exhaustive Testing,loop 20 X,There are 10 possible paths!If we execute one,test per millisecond,it would take 3,170 years to,test this program!,14,缮插勉制少往萌用仗写急广屿睹才锣畜椽伶牌净诚拎词茬旁痹柑访厌瀑椒软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,7,Selective Testing,loop 20 X,Selected path,单帝茧沾杖绚虫捍算季痒筛瘦驭羽验诊酒畔倒欣溶瘫咎窜嘴唬康吏洲芋缉软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,8,Software Testing,Methods,Strategies,white-boxmethods,black-box methods,千掣狂什匹醚肌盼凰止瑶明廉宗盼均耙厕倡掣朱环朋郧就渴驭关前蟹樱施软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,9,White-Box Testing,.our goal is to ensure that all,statements and conditions have,been executed at least once.,苏秒煮刊俱护谭恐怪户厨胞惶缠硷均恫泣揩挛车泊未伊胃敖拓足乓南刑矣软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,10,Why Cover?,logic errors and incorrect assumptions,are inversely proportional to a paths,execution probability,we often,believe,that a path is not,likely to be executed;in fact,reality is,often counter intuitive,typographical errors are random;its,likely that untested paths will contain,some,铰右松东错最翼辅清鼎薛钢讽硫塞授居仪剂世掺拂痊愉忌莹茧袒稻襟准漠软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,11,Basis Path Testing,First,we compute the cyclomatic,complexity:,number of simple decisions+1,or,number of enclosed areas+1,In this case,V(G)=4,得目侦畏差佐壹吱斟疟藏甲沿骸瓣捐骏畏日我宿拔祥鲤竟展瘟痴谗妹喷辜软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,12,Cyclomatic Complexity,A number of industry studies have indicated,that the higher V(G),the higher the probability,or errors.,V(G),modules,modules in this range are,more error prone,露祁佩履症们秋夕度疏血驻执丰财左龄爸肛价现荤堰状瞪番程履寡揖砰贾软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,13,Basis Path Testing,Next,we derive the,independent paths:,Since V(G)=4,there are four paths,Path 1:1,2,3,6,7,8,Path 2:1,2,3,5,7,8,Path 3:1,2,4,7,8,Path 4:1,2,4,7,2,4,.7,8,Finally,we derive test,cases to exercise these,paths.,闭醉训沿长趾卸芳果跑蛤邀很尖汀尝哄袒爽盔琴哀貌脾街匙贯景廷浅赢药软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,14,Basis Path Testing Notes,助皑孽泉欺辟验篓簿警韵献菊凄糯笔网丛段萌铸摆社见菩地香诽妒铁进泼软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,15,Deriving Test Cases,Summarizing:Using the design or code as a foundation,draw a corresponding flow graph.Determine the cyclomatic complexity of the resultant flow graph.Determine a basis set of linearly independent paths.Prepare test cases that will force execution of each path in the basis set.,琴姻述宰喧辐卤折关矗呈胜洼垮卧常擂饱忧驾窃项母坐莫惕杏划疹盯谋泄软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,16,Graph Matrices,A graph matrix is a square matrix whose size(i.e.,number of rows and columns)is equal to the number of nodes on a flow graphEach row and column corresponds to an identified node,and matrix entries correspond to connections(an edge)between nodes.By adding a link weight to each matrix entry,the graph matrix can become a powerful tool for evaluating program control structure during testing,冶捻遏皖煌烈曙畔汕灌芯阁爵处辜慈脱掷捅掩觉昧磋漏贿惊之猎周凉梧掐软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,17,Control Structure Testing,Condition testing a test case design method that exercises the logical conditions contained in a program moduleData flow testing selects test paths of a program according to the locations of definitions and uses of variables in the program,劲席映瓮勤槛疡乌溃巫寓仑财精椭砚轿砖志俯怎睦岩酞绎宴轧忱拼澄演停软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,18,Data Flow Testing,The data flow testing method Fra93 selects test paths of a program according to the locations of definitions and uses of variables in the program.Assume that each statement in a program is assigned a unique statement number and that each function does not modify its parameters or global variables.For a statement with S as its statement numberDEF(S)=X|statement S contains a definition of XUSE(S)=X|statement S contains a use of XA definition-use(DU)chain of variable X is of the form X,S,S,where S and S are statement numbers,X is in DEF(S)and USE(S),and the definition of X in statement S is live at statement S,乌敲亦湿朽省默斡斯呼泰侠窟喷瑰汉断频樟共风斩涧焉猎现狂监迅执吊药软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,19,Loop Testing,Nested Loops,Concatenated Loops,Unstructured,Loops,Simple loop,榔选圃攘抱帖墩袄勋坚这咏孵酷浚不语续割郁帐啪盗暮管竣遣朵挠修恩筑软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,20,Loop Testing:Simple Loops,Minimum conditionsSimple Loops,1.skip the loop entirely,2.only one pass through the loop,3.two passes through the loop,4.m passes through the loop m n,5.(n-1),n,and(n+1)passes through,the loop,where n is the maximum number,of allowable passes,吧晨通础股拖吨娥揩羚丧酸霜拎岸蹋迷间翰疟哪委罗气葵害玫禁推奢噬注软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,21,Loop Testing:Nested Loops,Start at the innermost loop.Set all outer loops to their,minimum iteration parameter values.,Test the min+1,typical,max-1 and max for the,innermost loop,while holding the outer loops at their,minimum values.,Move out one loop and set it up as in step 2,holding all,other loops at typical values.Continue this step until,the outermost loop has been tested.,If the loops are independent of one another,then treat each as a simple loop,else*treat as nested loops,endif*,for example,the final loop counter value of loop 1 is,used to initialize loop 2.,Nested Loops,Concatenated Loops,蹄摆菏浅呛购辉梗畔互诌乒妨醉契末胯羚甥戍睛玫拽吮囤疮碟播剁厉伶舍软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,22,Black-Box Testing,requirements,events,input,output,铜友次恐崖术防滑薯贴下稚膛囚喷密离埋钒侧褂介函翼录很便优端绣酉皑软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,23,Black-Box Testing,How is functional validity tested?How is system behavior and performance tested?What classes of input will make good test cases?Is the system particularly sensitive to certain input values?How are the boundaries of a data class isolated?What data rates and data volume can the system tolerate?What effect will specific combinations of data have on system operation?,窑门疑障停谈辈对年栏民茹渊隋纠襄墓苑饰榨剧印宗君还釜茶恰陵秒未登软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,24,Graph-Based Methods,To understand the objects that are modeled in software and the relationships that connect these objectsIn this context,we consider the term“objects”in the broadest possible context.It encompasses data objects,traditional components(modules),and object-oriented elements of computer software.,过烷击婴涯渔字坦歪俩滇淑唆恤隘划韧微宰棠勘衡绎鳖捕拨夕恢键撑待扁软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,25,Equivalence Partitioning,userqueries,mousepicks,outputformats,prompts,FKinput,data,崇敌意疆抓塌利羽引虚扯居凡塌镁浩嫡痊擞帜喻插究德掣努豆瑞控歼芭舌软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,26,Sample Equivalence Classes,user supplied commands,responses to system prompts,file names,computational data,physical parameters,bounding values,initiation values,output data formatting,responses to error messages,graphical data(e.g.,mouse picks),data outside bounds of the program,physically impossible data,proper value supplied in wrong place,Valid data,Invalid data,霞序介悼八影盾夫崩曳袭刽骤酮咕拘黄乍呕熬创翠克绥朗揉徘愚谗宰堡淬软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,27,Boundary Value Analysis,userqueries,mousepicks,outputformats,prompts,FKinput,data,outputdomain,input domain,衬予酞介荚底币男颤岁蒜最幕摆旧户辞伞气本仇君壕梢狼摩揪澳竣喝冲吏软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,28,Comparison Testing,Used only in situations in which the reliability of software is absolutely critical(e.g.,human-rated systems)Separate software engineering teams develop independent versions of an application using the same specification Each version can be tested with the same test data to ensure that all provide identical output Then all versions are executed in parallel with real-time comparison of results to ensure consistency,骇论有债彰损峻遣氏耕缘屉抗仍僳姑撂坛选甚旅谍杀逼困呜氖芝距观云陆软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,29,Orthogonal Array Testing,Used when the number of input parameters is small and the values that each of the parameters may take are clearly bounded,稻眶黄睫揖谜冲兜勾蹿演选眠寻微拽灶呀檄矗态偷智周摹库吼孪屡磊票语软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法chapter_15,These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill 2009).Slides copyright 2009 by Roger Pressman.,30,Model-Based Testing,Analyze an existing behavioral model for the software or create one.Recall that a behavioral model indicates how software will respond to external events or stimuli.Traverse the behavioral model and specify the inputs that will force the software to make the transition from state to state.The inputs will trigger events that will cause the transition to occur.Review the behavioral model and note the expected outputs as the software makes the transition from state to state.Execute the test cases.Compare actual and expected results and take corrective action as required.,既晒玉联唱渝攒波檀疏燃笑韭雅托略滚杂毋无萍缺皱丘娇粤默涪蓉右唉咀软件工程-实践者的研究方法chapter_15软件工程-实践者的研究方法c