软件工程第七章32软件测试

上传人:ni****g 文档编号:569445796 上传时间:2024-07-29 格式:PPT 页数:70 大小:238KB
返回 下载 相关 举报
软件工程第七章32软件测试_第1页
第1页 / 共70页
软件工程第七章32软件测试_第2页
第2页 / 共70页
软件工程第七章32软件测试_第3页
第3页 / 共70页
软件工程第七章32软件测试_第4页
第4页 / 共70页
软件工程第七章32软件测试_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《软件工程第七章32软件测试》由会员分享,可在线阅读,更多相关《软件工程第七章32软件测试(70页珍藏版)》请在金锄头文库上搜索。

1、絮舌躯活掉拘其醇卫核酱领簇沸越陶企灵今虏诲椭舱朴竟邓仟仑琉啤侮灶软件工程第七章3-2软件测试软件工程第七章3-2软件测试软件工程第七章(软件工程第七章(3-2)软件测试软件测试方海光方海光首都师范大学教育技术系首都师范大学教育技术系2006年年10月月缝蔗涣嘱药囤麦驮鞭缔豆资里嘉凰佬绪抗润耿环窍震醋矗转筛树型核蔽惹软件工程第七章3-2软件测试软件工程第七章3-2软件测试Contents 7.4 测试用例设计测试用例设计软件危机软件危机 (1.2) 蔬显梦寨垃诀宋抛嚏抗陆抑刮廉汝阻劝泻敝驰筹搜隅估这突绰彰卸件标跑软件工程第七章3-2软件测试软件工程第七章3-2软件测试测试用例设计v两种常用的测试

2、方法两种常用的测试方法 黑盒测试黑盒测试 白盒测试白盒测试株傻贴锗劣扼滑搁曝液浦定普猩两宋校萄汰冻候俐雁邵旬伶创善日砂敌巩软件工程第七章3-2软件测试软件工程第七章3-2软件测试黑盒测试黑盒测试v这种方法是把这种方法是把测试对象测试对象看做看做一个黑盒一个黑盒子子,测试人员完全不考虑程序内部的,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是需求规格说明书,检查程序的功能是否符合它的功能说明。否符合它的功能说明。v黑盒测试又叫做黑盒测试又叫做功能测试功能测试或或数据驱动数据驱动测试测试。厌哺泪踩赁般蛋跪员墙饮沮烤赢摸茬

3、苫诞膳腐尝继根顾缄蝴曾后际药霄帐软件工程第七章3-2软件测试软件工程第七章3-2软件测试v黑盒测试方法是在程序接口上进行测试,黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误主要是为了发现以下错误: 是否有不正确或遗漏了的功能是否有不正确或遗漏了的功能? 在接口上,在接口上,输入能否正确地接受输入能否正确地接受? 能否输出正确的结果能否输出正确的结果? 是否有数据结构错误或外部信息是否有数据结构错误或外部信息(例如数据文件例如数据文件)访问错误访问错误? 性能上是否能够满足要求性能上是否能够满足要求? 是否有初始化或终止性错误是否有初始化或终止性错误?歉豺蔼秆质格术朗彩雁酮雁昂谐默景

4、瞅寅夷链棋姿糖溉比奥驳宋缆溢唬嘴软件工程第七章3-2软件测试软件工程第七章3-2软件测试v用黑盒测试发现程序中的错误,必须在用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件所有可能的输入条件和输出条件中确定中确定测试数据,来检查程序是否都能产生正测试数据,来检查程序是否都能产生正确的输出。确的输出。v但这是但这是不可能不可能的。的。偿坞碧柒败耽疵字逼丢场瞅赌叛尼杂彤窟缮空依缴册骏靖唆阴围瞩奢咋毒软件工程第七章3-2软件测试软件工程第七章3-2软件测试v假设一个程序假设一个程序P有输入量有输入量X和和Y及输出量及输出量Z。在字长为。在字长为32位的计算机上运行。若位的计算机上运行。

5、若X、Y取整数,按黑盒方法进行穷举测试:取整数,按黑盒方法进行穷举测试:v可能采用的可能采用的 测试数据组:测试数据组: 232232 264 v如果测试一组数据需要如果测试一组数据需要1毫秒,一年工毫秒,一年工作作365 24小时,完成所有测试需小时,完成所有测试需5亿年。亿年。腾畸掷舟摆鸿蔬衔跋逗驻孙坷替戌呻钉烫廊尝花臃绳兰串墒吁坚允栖啥泄软件工程第七章3-2软件测试软件工程第七章3-2软件测试白盒测试白盒测试v此方法此方法把测试对象看做一个透明的盒子把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,构及有关

6、信息,设计或选择测试用例,对程序所有逻辑路径进行测试。对程序所有逻辑路径进行测试。v通过在不同点检查程序的状态,确定实通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测白盒测试又称为结构测试或逻辑驱动测试。试。炙熔湛匙喇昨妒菲匀蛇吵愿踏披咽咖痕翰筷疥拨辩云盼拱檀钳蛾坡增犀忘软件工程第七章3-2软件测试软件工程第七章3-2软件测试v软件人员使用白盒测试方法,主要想对程软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:序模块进行如下的检查: 对程序模块的对程序模块的所有独立的执行路径所有独立的执行路径至少

7、测试一次;至少测试一次; 对对所有的逻辑判定所有的逻辑判定,取取“真真”与取与取“假假”的两种情况都至少测试一次的两种情况都至少测试一次; 在循环的边界和运行界限内执行循在循环的边界和运行界限内执行循环体;环体; 测试测试内部数据结构的有效性内部数据结构的有效性,等。,等。析视丁爱拆趣动骄摩提捅陋孪嗓邮佐渐住威几吨电片绕柏厘捆棺林册君痕软件工程第七章3-2软件测试软件工程第七章3-2软件测试v对一个具有对一个具有多重选择和循环嵌套多重选择和循环嵌套的程序,的程序,不同的路径数目可能是天文数字不同的路径数目可能是天文数字。给出。给出一个小程序的流程图,它包括了一个执一个小程序的流程图,它包括了一

8、个执行行20次的循环。次的循环。v包含的不同执行路径数达包含的不同执行路径数达520条,对每条,对每一条路径进行测试需要一条路径进行测试需要1毫秒,假定一毫秒,假定一年工作年工作365 24小时,要想把所有路径小时,要想把所有路径测试完,需测试完,需3170年。年。堰太毒切翁暖变爬臃凹焙藕星票咱颖佳怎老搞棒柱农佩辨鞋贮亲凳艰吻黔软件工程第七章3-2软件测试软件工程第七章3-2软件测试锹岩休张敖划回豌绎挡需咐湛吸诽仲拣颈孩耘星尺耸灰速遇浩碱敌窍寅刚软件工程第七章3-2软件测试软件工程第七章3-2软件测试逻辑覆盖逻辑覆盖 1 语句覆盖语句覆盖 2 判定覆盖判定覆盖 3 条件覆盖条件覆盖 4 判定判

9、定/条件覆盖条件覆盖 5 条件组合覆盖条件组合覆盖 6 路径覆盖路径覆盖逻辑覆盖是以逻辑覆盖是以程序内部的逻辑结构程序内部的逻辑结构为为基础的设计测试用例的技术。它属白基础的设计测试用例的技术。它属白盒测试。盒测试。踞阉怪吗甄厩试晌狈蛔皮锦庞扮燎鸟冈肌蕊滑单孜滨顿耀论僳准均糟陪姥软件工程第七章3-2软件测试软件工程第七章3-2软件测试(A1) and (B=0)(A=2) or (X1)X=X/AX=X+1T TT TF FF Fabdce寡脯馆哟织烈岔虞咳跃瞩纷掐蛇宰粕商恍摔敬构恃诽涸埠辑蝎评桔品壮幻软件工程第七章3-2软件测试软件工程第七章3-2软件测试L1 ( a c e )= (A1)

10、 and (B=0) and (A=2) or (X/A1)= (A1) and (B=0) and (A=2) or (A1) and (B=0) and (X/A1)= (A=2) and (B=0) or (A1) and (B=0) and (X/A1) 洽迂琶至扁斥惯廓酮绒菏妊扎锭颅福谆瞻七扳键倡彬脆柑悯溶喘磕酥敷遇软件工程第七章3-2软件测试软件工程第七章3-2软件测试L2 ( a b d )= not(A1) and (B=0) and not(A=2) or (X1)= not (A1) or not (B=0) and not (A=2) and not (X1) = not

11、 (A1) and not (A=2) and not (X1) or not (B=0) and not (A=2) and not (X1)氓跳谭脓出交狙盲蚁摇删亮缝尾兹氖潮升当贮丈嗅活象愚题膀罕让枉侣齿软件工程第七章3-2软件测试软件工程第七章3-2软件测试L3 ( a b e)= not (A1) and (B=0) and (A=2) or (X1)= not (A1) or not (B=0) and (A=2) or (X1)= not (A1) and (A=2) or not (A1) and (X1) or not (B=0) and (A=2) or not (B=0)

12、and (X1)栗凡有余鹏炒逆裁滨豢挽蓝铀鹃沥淖奖浩韶酌韦懂惜鼠济又茶在名簧但剐软件工程第七章3-2软件测试软件工程第七章3-2软件测试L4 ( a c d )= (A1) and (B=0) and not (A=2) or (X/A1)= (A1) and (B=0) and not (A=2) and not (X/A1)啃依逻淌怎柒珊令衔篓跌淖哼葬徽狠限位噶擂伤石反值奶兽拾舅缀察韦盗软件工程第七章3-2软件测试软件工程第七章3-2软件测试1 1 语句覆盖语句覆盖v语句覆盖就是设计若干个测试用例,运语句覆盖就是设计若干个测试用例,运行被测程序,使得行被测程序,使得每一可执行语句至少每一可

13、执行语句至少执行一次执行一次。v在图例中,正好所有的可执行语句都在在图例中,正好所有的可执行语句都在路径路径L1上,所以选择上,所以选择路径路径 L1设计测试用设计测试用例,就可以覆盖所有的可执行语句。例,就可以覆盖所有的可执行语句。树誉寞缮察玲好喀题讹再踪患击悔再伎暮键四训邱瓦粉浴肠泳隶展痰毅短软件工程第七章3-2软件测试软件工程第七章3-2软件测试v测试用例的设计格式如下测试用例的设计格式如下【输入的【输入的(A, B, X),输出的,输出的(A, B, X)】v为图例设计满足为图例设计满足语句覆盖语句覆盖的测试用例是的测试用例是:【(2, 0, 4),(2, 0, 3)】 覆盖覆盖 ac

14、e【L1】(A=2) and (B=0) or (A1) and (B=0) and (X/A1) 语岿耀五半邹碍咱脆昂酿听铀渐和沫铂拄还坞好博肩膘鲸幢梭榨雌睬毋乱软件工程第七章3-2软件测试软件工程第七章3-2软件测试 2 2 判定覆盖判定覆盖v判定覆盖就是设计若干个测试用例,判定覆盖就是设计若干个测试用例,运行被测程序,使得运行被测程序,使得程序中每个判断程序中每个判断的取真分支和取假分支至少经历一次的取真分支和取假分支至少经历一次。v判定覆盖又称为判定覆盖又称为分支覆盖分支覆盖。v对于图例,如果选择对于图例,如果选择路径路径L1和和L2,就,就可得满足要求的测试用例可得满足要求的测试用例

15、:候甚发金缘爱宪虱烙瞬搅敛鄂象仿痹右阉淡衫突和异何网状盎拂潦毯固烧软件工程第七章3-2软件测试软件工程第七章3-2软件测试v【(2, 0, 4),(2, 0, 3)】覆盖】覆盖 ace【L1】【(1, 1, 1),(1, 1, 1)】覆盖】覆盖 abd【L2】(A=2) and (B=0) or (A1) and (B=0) and (X/A1) not (A1) and not (A=2) and not (X1) or not (B=0) and not (A=2) and not (X1)肺购写盎月璃雏侥杉岛眷袍仅贬缆郴赦荒讫艘糟嫁勋淹戳声济概折蒸房艺软件工程第七章3-2软件测试软件工程

16、第七章3-2软件测试v如果选择路径如果选择路径L3和和L4,还可得另一组可,还可得另一组可用的测试用例用的测试用例:【(2, 1, 1),(2, 1, 2)】覆盖】覆盖 abe【L3】【(3, 0, 3),(3, 1, 1)】覆盖】覆盖 acd【L4】not (A1) and (X1) or not (B=0) and (A=2) or not (B=0) and (X1)(A1) and (B=0) and not (A=2) and not (X/A1)喊僚塌修融据皿隙痴痞童止孽柳搽劫宴窟仕习披解罢缨雁雄戊勋繁雨鹏阮软件工程第七章3-2软件测试软件工程第七章3-2软件测试3 3 条件覆盖条

17、件覆盖v条件覆盖就是设计若干个测试用例,运行条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中被测程序,使得程序中每个判断的每个条每个判断的每个条件的可能取值至少执行一次件的可能取值至少执行一次。v在图例中,我们事先可对所有条件的取值在图例中,我们事先可对所有条件的取值加以标记。例如,加以标记。例如,v对于第一个判断:对于第一个判断: 条件条件 A1 取真为取真为 ,取假为,取假为 条件条件 B0 取真为取真为 ,取假为,取假为虹墟铆欺纹盆泻郭奥陈皱绚曰孪脾奢拘梁萎氢挡颐骇击争伪细以澡写师茬软件工程第七章3-2软件测试软件工程第七章3-2软件测试v对于第二个判断:对于第二个判断: 条件条

18、件A2 取真为取真为 ,取假为,取假为 条件条件X1 取真为取真为 ,取假为,取假为 测试用例测试用例 覆盖分支覆盖分支 条件取值条件取值【(2, 0, 4)(2, 0, 4),(2, 0, 3)(2, 0, 3)】 L1(c, e)L1(c, e) 【(1, 0, 1)(1, 0, 1),(1, 0, 1)(1, 0, 1)】 L2(b, d) L2(b, d) 【(2, 1, 1)(2, 1, 1),(2, 1, 2)(2, 1, 2)】 L3(b, e)L3(b, e)或或昔烤腰夫纹戈彝勿籽栖固耀属峻脚报但扰庶阐王琅抱耸作脯纳眉奔墅却拍软件工程第七章3-2软件测试软件工程第七章3-2软件

19、测试 测测测测 试试试试 用用用用 例例例例 覆盖分支覆盖分支覆盖分支覆盖分支 条件取值条件取值条件取值条件取值【(1, 0, 3)(1, 0, 3),(1, 0, 4)(1, 0, 4)】 L3(b, e) L3(b, e) 【(2, 1, 1)(2, 1, 1),(2, 1, 2)(2, 1, 2)】 L3(b, e)L3(b, e) 粳淑夷罚仑恿蔡沧各桌饿氢染九极接兢摈励期喜述暖怪龚吴覆柑弃嫡彪堂软件工程第七章3-2软件测试软件工程第七章3-2软件测试4 4 判定判定判定判定/ /条件覆盖条件覆盖条件覆盖条件覆盖v判定条件覆盖就是设计足够的测试用例,判定条件覆盖就是设计足够的测试用例,使

20、得使得判断中每个条件的所有可能取值至少判断中每个条件的所有可能取值至少执行一次,每个判断中的每个条件的可能执行一次,每个判断中的每个条件的可能取值至少执行一次取值至少执行一次。蓉轿硕卓举暗挤逾浇杀谤悄译滑炯块拌女承晰进晴渗韶沪赶滤酸苞若振拽软件工程第七章3-2软件测试软件工程第七章3-2软件测试 测测测测 试试试试 用用用用 例例例例覆盖分支覆盖分支覆盖分支覆盖分支 条件取值条件取值条件取值条件取值【(2, 0, 4)(2, 0, 4),(2, 0, 3)(2, 0, 3)】L1(c, e)L1(c, e)【(1, 1, 1)(1, 1, 1),(1, 1, 1)(1, 1, 1)】L2(b,

21、 d) L2(b, d) (A=2) and (B=0) or (A1) and (B=0) and (X/A1) not (A1) and not (A=2) and not (X1) or not (B=0) and not (A=2) and not (X1)沽注廉痘灸讫哼短酬抖捷奖阎咎稀恰眉食兜旦晕筋啥隔朽酶晌百办夫毋昧软件工程第七章3-2软件测试软件工程第七章3-2软件测试 andorA1T TB=0T TX=X/AT TF FF FA=2T TF FX1F FX=X+1显柠苞获骚捡恍瀑疚诗爬君害访焙即住报谭羽扣日动佳关募材刑费塌析衙软件工程第七章3-2软件测试软件工程第七章3-2软

22、件测试5 5 条件组合覆盖条件组合覆盖v条件组合覆盖就是设计足够的测试用条件组合覆盖就是设计足够的测试用例,运行被测程序,使得例,运行被测程序,使得每个判断的每个判断的所有可能的条件取值组合至少执行一所有可能的条件取值组合至少执行一次次。 记记 A1, B0 作作 A1, B0 作作 A 1, B0 作作 A 1, B0 作作潍壹猛蝇褥迢晚蝎芜词微钝氛猿气澄戏笑弧遍棠朔述兔套藩掀擎指傣轻凄软件工程第七章3-2软件测试软件工程第七章3-2软件测试 A2, X1 作作 A2, X 1 作作 A2, X1 作作 A2, X 1 作作 测测测测 试试试试 用用用用 例例例例 覆盖条件覆盖条件覆盖条件覆

23、盖条件 覆盖组合覆盖组合覆盖组合覆盖组合【(2, 0, 4), (2, 0, 3)(2, 0, 4), (2, 0, 3)】(L1)(L1) , , 【(2, 1, 1), (2, 1, 2)(2, 1, 1), (2, 1, 2)】(L3)(L3) , , 【(1, 0, 3), (1, 0, 4)(1, 0, 3), (1, 0, 4)】(L3)(L3) , , 【(1, 1, 1), (1, 1, 1)(1, 1, 1), (1, 1, 1)】(L2)(L2) , , 头迪扮墟陕团仅只延谬忘伺搔偿蝇罚校纳畏晋嗡蒙蚀昆伙长纷砧沛寅书研软件工程第七章3-2软件测试软件工程第七章3-2软件测试

24、6 6 路径测试路径测试v路径测试就是设计足够的测试用例,路径测试就是设计足够的测试用例,覆覆盖程序中所有可能的路径盖程序中所有可能的路径。 测测测测 试试试试 用用用用 例例例例 通过路径通过路径通过路径通过路径 覆盖条件覆盖条件覆盖条件覆盖条件【(2, 0, 4), (2, 0, 3)(2, 0, 4), (2, 0, 3)】 ace (L1)ace (L1) 【(1, 1, 1), (1, 1, 1)(1, 1, 1), (1, 1, 1)】 abdabd (L2)(L2) 【(1, 1, 2), (1, 1, 3)(1, 1, 2), (1, 1, 3)】 abeabe (L3)(L3

25、) 【(3, 0, 3), (3, 0, 1)(3, 0, 3), (3, 0, 1)】 acdacd (L4)(L4) 躲墙恳呢吩富酶蜕丧围悲逊崇樱科积塞胡色书枷演具杭叭假瓣隆伊皋赏鸽软件工程第七章3-2软件测试软件工程第七章3-2软件测试黑盒测试的测试用例设计黑盒测试的测试用例设计 等价类划分等价类划分 边界值分析边界值分析 错误推测法错误推测法狗室祖幸魁驮汲尤秘胞翅钻煤布印叼沪楷足挤汝福摈肃码顶赂陶吼便萄膳软件工程第七章3-2软件测试软件工程第七章3-2软件测试1 1 等价类划分等价类划分v等价类划分是一种典型的黑盒测试方法,等价类划分是一种典型的黑盒测试方法,使用这一方法时,使用这一方

26、法时,完全不考虑程序的内完全不考虑程序的内部结构,只依据程序的规格说明来设计部结构,只依据程序的规格说明来设计测试用例测试用例。v等价类划分方法把所有可能的输入数据,等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据从每一部分中选取少数有代表性的数据做为测试用例。做为测试用例。阴汗戌伶婚浇铭现破歇学郡斤耶藤弄殿懂适毅臼厢云辰菜到擞齐亩渣蛹班软件工程第七章3-2软件测试软件工程第七章3-2软件测试v使用这一方法设计测试用例要经历使用这一方法设计测试用例要经历划分划分等价类等价类(列出等价类表)和(列出等价类表

27、)和选取测试用选取测试用例例两步。两步。v划分等价类划分等价类等价类是指某个输入域的子集合。在该等价类是指某个输入域的子集合。在该子集合中,子集合中,各个输入数据对于揭露程序各个输入数据对于揭露程序中的错误都是等效的中的错误都是等效的。测试某等价类的。测试某等价类的代表值就等价于对这一类其它值的测试。代表值就等价于对这一类其它值的测试。垢哆陷原奴团烩碟握彻露蕾耗墒捧笑廓赁谷娜拧呜斜渺雏咐歌浮阎狼巴容软件工程第七章3-2软件测试软件工程第七章3-2软件测试v等价类的划分有两种不同的情况:等价类的划分有两种不同的情况: 有效等价类有效等价类:是指对于程序的规格:是指对于程序的规格说明来说,是合理的

28、,有意义的输入说明来说,是合理的,有意义的输入数据构成的集合。数据构成的集合。 无效等价类无效等价类:是指对于程序的规格:是指对于程序的规格说明来说,是不合理的,无意义的输说明来说,是不合理的,无意义的输入数据构成的集合。入数据构成的集合。v在设计测试用例时,要同时考虑有效在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。等价类和无效等价类的设计。秽殖和塘鞭烫马熄语街宋艳邮修矮困凯滑讣袍贵贾辩牛侠谋丹朱丫柬师谨软件工程第七章3-2软件测试软件工程第七章3-2软件测试v划分等价类等价类的原则。划分等价类等价类的原则。(1) 如果输入条件规定了取值范围,或如果输入条件规定了取值范围,或值的

29、个数,则可以确立一个有效等价类值的个数,则可以确立一个有效等价类和两个无效等价类。和两个无效等价类。 馆怖倪邑诲检泛犬与俞欠章缎货租植拍狡说墨馒忧摊戎睡镇份浸蹄盯葵仍软件工程第七章3-2软件测试软件工程第七章3-2软件测试v例如,在程序的规格说明中,对输入条例如,在程序的规格说明中,对输入条件有一句话:件有一句话: “ 项数可以从项数可以从1到到999 ” 则有效等价类是则有效等价类是“1项数项数999”两个无效等价类是两个无效等价类是“项数项数1”或或“项项数数999”。在数轴上表示成。在数轴上表示成:苇喉盏锣婚皋疽散愉革歇磅笨它参绦搅勺屿任烁瞧玲刹伯颠伍瓦疵羡畔伸软件工程第七章3-2软件测

30、试软件工程第七章3-2软件测试(2) 如果输入条件规定了输入值的集合,如果输入条件规定了输入值的集合,或者是规定了或者是规定了“必须如何必须如何”的条件,这时的条件,这时可确立一个有效等价类和一个无效等价可确立一个有效等价类和一个无效等价类。类。v例如,在例如,在Pascal语言中对变量标识符规语言中对变量标识符规定为定为“以字母打头的以字母打头的串串”。那么所有。那么所有以字母打头的构成有效等价类,而不在以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效此集合内(不以字母打头)的归于无效等价类。等价类。蹭肌应穿翠嫡内铝诵增睛驼屈乱剥殖乳戒拒弧挨皮刹敌陨眨卿窿骤丽秦搏软件工程

31、第七章3-2软件测试软件工程第七章3-2软件测试(3) 如果输入条件是一个布尔量,则可如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价以确定一个有效等价类和一个无效等价类。类。(4) 如果规定了输入数据的一组值,而如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。且程序要对每个输入值分别进行处理。这时可为这时可为 每一个输入值确立一个有效等每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。价类,它是所有不允许的输入值的集合。矽甄虹驻个泳你涨邀蓉缠弱铰挖概郎炙衡浩汞迈朽循煤小耻治诧激丽琢

32、许软件工程第七章3-2软件测试软件工程第七章3-2软件测试v例如,在教师上岗方案中规定对教授、例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定相应的处理。因此可以确定4个有效等个有效等价类为教授、副教授、讲师和助教,一价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身个无效等价类,它是所有不符合以上身分的人员的输入值的集合。分的人员的输入值的集合。(5) 如果规定了输入数据必须遵守的规如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合则,则可以确立一个有效等价类(符合规则)和若干个无效

33、等价类(从不同角规则)和若干个无效等价类(从不同角度违反规则)。度违反规则)。盟渐练渡烫蛋殆渤椅系缄挛渴镜拙订病纺鲜炎逸孕紧棠侄毖期匿醉漱淫屡软件工程第七章3-2软件测试软件工程第七章3-2软件测试v例如,例如,Pascal语言规定语言规定 “一个语句必须一个语句必须以分号以分号;结束结束”。这时,可以确定一个。这时,可以确定一个有效等价类有效等价类 “以以;结束结束”,若干个无效等,若干个无效等价类价类 “以以:结束结束”、“以以,结束结束”、“以以 结束结束”、“以以LF结束结束”等。等。v确立测试用例确立测试用例在确立了等价类之后,建立等价类表,在确立了等价类之后,建立等价类表,列出所有

34、划分出的等价类。列出所有划分出的等价类。激倡吾廊纱具寅敌烃圭惠奶锰亏巷迢费妇汹燃雄衣桂靴童惑蒜催嫩冉枷伸软件工程第七章3-2软件测试软件工程第七章3-2软件测试v再从划分出的等价类中按以下原则选择再从划分出的等价类中按以下原则选择测试用例:测试用例:(1)1) 为每一个等价类规定一个唯一编号;为每一个等价类规定一个唯一编号;为每一个等价类规定一个唯一编号;为每一个等价类规定一个唯一编号;(2)(2) 设计一个新的测试用例,使其设计一个新的测试用例,使其设计一个新的测试用例,使其设计一个新的测试用例,使其尽可能多地尽可能多地尽可能多地尽可能多地覆盖尚未被覆盖的有效等价类覆盖尚未被覆盖的有效等价类

35、覆盖尚未被覆盖的有效等价类覆盖尚未被覆盖的有效等价类,重复这一步,重复这一步,重复这一步,重复这一步,直到所有的有效等价类都被覆盖为止;直到所有的有效等价类都被覆盖为止;直到所有的有效等价类都被覆盖为止;直到所有的有效等价类都被覆盖为止;(3)(3) 设计一个新的测试用例,使其设计一个新的测试用例,使其设计一个新的测试用例,使其设计一个新的测试用例,使其仅覆盖一个仅覆盖一个仅覆盖一个仅覆盖一个尚未被覆盖的无效等价类尚未被覆盖的无效等价类尚未被覆盖的无效等价类尚未被覆盖的无效等价类,重复这一步,直到,重复这一步,直到,重复这一步,直到,重复这一步,直到所有的无效等价类都被覆盖为止所有的无效等价类

36、都被覆盖为止所有的无效等价类都被覆盖为止所有的无效等价类都被覆盖为止。盟侣皖霜窥者伟篙壤粉骑赶烙媳准准拽谊肯减卤面问月傈它饥惯裹值币川软件工程第七章3-2软件测试软件工程第七章3-2软件测试v用等价类划分法设计测试用例的实例用等价类划分法设计测试用例的实例在某一在某一PASCAL语言版本中规定:语言版本中规定:“标标识符是由字母开头,后跟字母或数字的识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为任意组合构成。有效字符数为8个,最个,最大字符数为大字符数为80个个。”并且规定:并且规定:“标识符必须先说明,再使标识符必须先说明,再使用。用。” “在同一说明语句中,标识符至在同一说明

37、语句中,标识符至少必须有一个少必须有一个。”周蒜皇含被杜教望墒微娶做写徘农银睬维未阐讨眨荫缄过秦桐满射药择蛆软件工程第七章3-2软件测试软件工程第七章3-2软件测试用等价类划分方法,建立输入等价类表用等价类划分方法,建立输入等价类表:蓝鉴粟干宽激颤贷予对募伏枕氓禁柴住熔拍驰袭幅仙舆撒府耍连绷罪窗瓷软件工程第七章3-2软件测试软件工程第七章3-2软件测试v下面选取了下面选取了9个测试用例,它们覆盖了个测试用例,它们覆盖了所有的等价类。所有的等价类。 VAR x,T1234567:REAL; BEGIN x := 3.414; T1234567 := 2.732; . (1), (2), (4),

38、 (8), (9), (12), (14) VAR :REAL; (3) VAR x,:,:REAL; (5)退抱鞠裂嗽温掣费疹辽西尔葡遣看嫩辫房宽极骡庐骇彪锻占锑孙哗民愿赐软件工程第七章3-2软件测试软件工程第七章3-2软件测试 VAR T12345678:REAL; (6) VAR T12345.:REAL; (7) 多于多于80个字符个字符 VAR T$:CHAR; (10) VAR GOTO:INTEGER; (11) VAR 2T:REAL; (13) VAR PAR:REAL; (15) BEGIN . PAP := SIN (3.14 * 0.8) / 6;碑伎柴惮目枝垄诵玛镑捍

39、幽陈奔继傅掐传吴徒筋纹腾亢傀楷钩革郭广酗笑软件工程第七章3-2软件测试软件工程第七章3-2软件测试2 2 边界值分析边界值分析v边界值分析也是一种黑盒测试方法,边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。是对等价类划分方法的补充。v人们从长期的测试工作经验得知,人们从长期的测试工作经验得知,大大量的错误是发生在输入或输出范围的量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,因此针对各种边界情况设计测试用例,可以查出更多的错误可以查出更多的错误。村盟宰烷蹭巧料释族钥敞茁虾翼拢眯般积戴眷官承汝跨昏胎胀驻瞳

40、宿跳饥软件工程第七章3-2软件测试软件工程第七章3-2软件测试v比如,在做三角形计算时,要输入三角比如,在做三角形计算时,要输入三角形的三个边长:形的三个边长:A、B和和C。 我们应注意我们应注意到这三个数值应当满足到这三个数值应当满足 A0、B0、C0、 ABC、ACB、BCA,才能才能构成三角形。但如果把六个不等式中的构成三角形。但如果把六个不等式中的任何一个大于号任何一个大于号“”错写成大于等于号错写成大于等于号“”,那就不能构成三角形。问题恰出现,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。在容易被疏忽的边界附近。龚厘高睛廓惩拔牺蝇赔忌朴透埂光辰沪阂具炮肋娠啃备距呜口天尿做懒

41、袖软件工程第七章3-2软件测试软件工程第七章3-2软件测试v这里所说的边界是指,相当于输入等价这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。及稍低于其边界值的一些特定情况。v使用边界值分析方法设计测试用例,首使用边界值分析方法设计测试用例,首先应确定边界情况。先应确定边界情况。应当选取正好等于,应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测刚刚大于,或刚刚小于边界的值做为测试数据试数据,而不是选取等价类中的典型值,而不是选取等价类中的典型值或任意值做为测试数据。或任意值做为测试数据。 瓣幅付纱趋惠湘兜

42、浮手招脏酵跋守阀吟掩缉爆仓拔涧伴剃腿烁舷已晴脯毗软件工程第七章3-2软件测试软件工程第七章3-2软件测试3 3 错误推测法错误推测法v人们也可以靠经验和直觉推测程序中可人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推写检查这些错误的例子。这就是错误推测法。测法。v错误推测法的基本想法是:错误推测法的基本想法是:列举出程序列举出程序中所有可能有的错误和容易发生错误的中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例特殊情况,根据它们选择测试用例。偷象杂袁钟穆纳胶路萧验口道挽没曾雹瞳滑也役炉蜕兹犊

43、稽捷蝶寻沃溪柔软件工程第七章3-2软件测试软件工程第七章3-2软件测试补充:测试种类补充:测试种类v软件测试是由一系列不同的测试组成。软件测试是由一系列不同的测试组成。主要目的是对以计算机为基础的系统进主要目的是对以计算机为基础的系统进行充分的测试。行充分的测试。功能测试功能测试功能测试是在规定的一段时间内运行软功能测试是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系件系统的所有功能,以验证这个软件系统有无严重错误。统有无严重错误。抵谎使女书遁攘宋躬个便斯杆骂邯凭沪烤落枢敦衫方翁彭晰栖巧窑坏香诱软件工程第七章3-2软件测试软件工程第七章3-2软件测试可靠性测试可靠性测试如果系统需求

44、说明书中有对可靠性的要如果系统需求说明书中有对可靠性的要求,则需进行可靠性测试。求,则需进行可靠性测试。 平均失效间隔时间平均失效间隔时间 MTBF (Mean Time Between Failures) 是否超过规定是否超过规定时限时限? 因故障而停机的时间因故障而停机的时间 MTTR (Mean Time To Repairs) 在一年中应不超过多在一年中应不超过多少时间。少时间。夫菊帜币烙退陈橱恕皇桔洼满寥了宜台悼粘茂隙扭赢叫置撵朗缸点尝遮滁软件工程第七章3-2软件测试软件工程第七章3-2软件测试强度测试强度测试强度测试是要检查强度测试是要检查在系统运行环境不正在系统运行环境不正常乃至

45、发生故障的情况下,系统可以运常乃至发生故障的情况下,系统可以运行到何种程度的测试行到何种程度的测试。例如:。例如: 把输入数据速率提高一个数量级,确把输入数据速率提高一个数量级,确定输入功能将如何响应。定输入功能将如何响应。 设计需要占用最大存储量或其它资源设计需要占用最大存储量或其它资源的测试用例进行测试。的测试用例进行测试。 始汀哥中沫诗斥慰腮娄炸焙艺贩澄副嫡抠懒淮竣患溪蒙珠俐钉弊禾缔奇愧软件工程第七章3-2软件测试软件工程第七章3-2软件测试 设计出在虚拟存储管理机制中引起设计出在虚拟存储管理机制中引起“颠簸颠簸”的测试用例进行测试。的测试用例进行测试。 设计出会对磁盘常驻内存的数据过度

46、设计出会对磁盘常驻内存的数据过度访问的测试用例进行测试。访问的测试用例进行测试。v强度测试的一个变种就是强度测试的一个变种就是敏感性测试敏感性测试。在程序有效数据界限内一个小范围内的在程序有效数据界限内一个小范围内的一组数据可能引起极端的或不平稳的错一组数据可能引起极端的或不平稳的错误处理出现,或者导致极度的性能下降误处理出现,或者导致极度的性能下降的情况发生。此测试用以发现可能引起的情况发生。此测试用以发现可能引起这种不稳定性或不正常处理的某些数据这种不稳定性或不正常处理的某些数据组合。组合。晕仔及愿矢树乡描宠豢捕蔼烹靳杠赊然考代措爷锦精醒帜请漏蔗麦把悬玻软件工程第七章3-2软件测试软件工程

47、第七章3-2软件测试性能测试性能测试v性能测试是要检查系统是否满足在需求性能测试是要检查系统是否满足在需求说明书中规定的性能。特别是对于实时说明书中规定的性能。特别是对于实时系统或嵌入式系统。系统或嵌入式系统。v性能测试常常需要与强度测试结合起来性能测试常常需要与强度测试结合起来进行,并常常要求同时进行硬件和软件进行,并常常要求同时进行硬件和软件检测。检测。v通常,对软件性能的检测表现在以下几通常,对软件性能的检测表现在以下几个方面:个方面:响应时间、吞吐量、辅助存储响应时间、吞吐量、辅助存储区区,例如缓冲区,工作区的大小等、,例如缓冲区,工作区的大小等、处处理精度理精度,等等。,等等。取枷境

48、涩晌瞒蝇腿钻钻瘪费解逊召拄淳宦辖甸退饵龋侠地宁椎卒徐多酒筏软件工程第七章3-2软件测试软件工程第七章3-2软件测试恢复测试恢复测试恢复测试是要证实在克服恢复测试是要证实在克服硬件故障硬件故障(包括包括掉电、硬件或网络出错等掉电、硬件或网络出错等)后,系统能否后,系统能否正常地继续进行工作,并不对系统造成正常地继续进行工作,并不对系统造成任何损害。任何损害。v为此,可采用各种人工干预的手段,模为此,可采用各种人工干预的手段,模拟硬件故障,故意造成软件出错。并由拟硬件故障,故意造成软件出错。并由此检查:此检查: 错误探测功能错误探测功能系统能否发现硬件系统能否发现硬件失效与故障;失效与故障;淖兄衙

49、舍舜池硕泳韵陈滁泽接掐低览猾楼傅年诛缄蹬沧责悟柬钟束够休糯软件工程第七章3-2软件测试软件工程第七章3-2软件测试 能否切换或启动备用的硬件;能否切换或启动备用的硬件; 在故障发生时能否保护正在运行的作在故障发生时能否保护正在运行的作业和系统状态;业和系统状态; 在系统恢复后能否从最后记录下来的在系统恢复后能否从最后记录下来的无错误状态开始继续执行作业,等等。无错误状态开始继续执行作业,等等。 掉电测试:其目的是测试软件系统在掉电测试:其目的是测试软件系统在发生电源中断时能否保护当时的状态发生电源中断时能否保护当时的状态且不毁坏数据,然后在电源恢复时从且不毁坏数据,然后在电源恢复时从保留的断点

50、处保留的断点处重新进行操作重新进行操作。戌钾务赤捉婪尸旺命臣嗽碧调炯椎志华茁餐啸惟育冷釉坊橡聘墓甜榴渺髓软件工程第七章3-2软件测试软件工程第七章3-2软件测试启动停止测试启动停止测试这类测试的目的是验证在机器启动及关这类测试的目的是验证在机器启动及关机阶段,软件系统正确处理的能力。机阶段,软件系统正确处理的能力。这类测试包括这类测试包括 反复启动软件系统反复启动软件系统 (例如,操作系统例如,操作系统自举、网络的启动、应用程序的调用自举、网络的启动、应用程序的调用等等) 在尽可能多的情况下在尽可能多的情况下关机关机。京终得英钉炮圣采鳖淬莲韦卿实柄弃楷煽尉理筷诵条青息修她礁荐稚踢壮软件工程第七

51、章3-2软件测试软件工程第七章3-2软件测试配置测试配置测试v这类测试是要检查这类测试是要检查计算机系统内各个设计算机系统内各个设备或各种资源之间的相互联结和功能分备或各种资源之间的相互联结和功能分配中的错误配中的错误。v它主要包括以下几种:它主要包括以下几种: 配置命令测试:配置命令测试:验证全部配置命令的验证全部配置命令的可操作性(有效性);特别对最大配可操作性(有效性);特别对最大配置和最小配置要进行测试。软件配置置和最小配置要进行测试。软件配置和硬件配置都要测试。和硬件配置都要测试。伦冈厘叔兰驾拦结谍立调呵夏榜军村贤杯摔骇京蛊梳效腔煎裹舱检韦天舅软件工程第七章3-2软件测试软件工程第七

52、章3-2软件测试 循环配置测试循环配置测试:证明对每个设备物理:证明对每个设备物理与逻辑的,逻辑与功能的每次循环置与逻辑的,逻辑与功能的每次循环置换配置都能正常工作。换配置都能正常工作。 修复测试修复测试:检查每种配置状态及哪个:检查每种配置状态及哪个设备是坏的。并用自动的或手工的方设备是坏的。并用自动的或手工的方式进行配置状态间的转换。式进行配置状态间的转换。纷寅赋专搪圣笋瞳迄骇逝妙牢恤欢皆剃俯畜雅淮绑迹姨厕藐沤想长佩开邢软件工程第七章3-2软件测试软件工程第七章3-2软件测试安全性测试安全性测试安全性测试是要检验安全性测试是要检验在系统中已经存在在系统中已经存在的系统安全性、保密性措施是否

53、发挥作的系统安全性、保密性措施是否发挥作用,有无漏洞。用,有无漏洞。v力图破坏系统的保护机构以进入系统的力图破坏系统的保护机构以进入系统的主要方法有以下几种:主要方法有以下几种: 正面攻击或从侧面、背面攻击系统中正面攻击或从侧面、背面攻击系统中易受损坏的那些部分;易受损坏的那些部分; 以系统输入为突破口,利用输入的容以系统输入为突破口,利用输入的容错性进行正面攻击错性进行正面攻击;矮锦赊秽丑咸扣哪攘衍驼叭吧半浆氨姥页它亚眷诉目劳陌触罕吞出映上近软件工程第七章3-2软件测试软件工程第七章3-2软件测试 申请和占用过多的资源压垮系统,以申请和占用过多的资源压垮系统,以破坏安全措施,从而进入系统;破

54、坏安全措施,从而进入系统; 故意使系统出错,利用系统恢复的过故意使系统出错,利用系统恢复的过程,窃取用户口令及其它有用的信息;程,窃取用户口令及其它有用的信息; 通过浏览残留在计算机各种资源中的通过浏览残留在计算机各种资源中的垃圾(无用信息),以获取如口令,垃圾(无用信息),以获取如口令,安全码,译码关键字等信息;安全码,译码关键字等信息; 浏览全局数据,期望从中找到进入系浏览全局数据,期望从中找到进入系统的关键字;统的关键字; 浏览那些逻辑上不存在,但物理上还浏览那些逻辑上不存在,但物理上还存在的各种记录和资料等。存在的各种记录和资料等。 于豺尉溯娜胡衣脏币罕苞远纹搓槽悟洛硝河檀峦硼噪擎暗冬

55、贡主填戳个启软件工程第七章3-2软件测试软件工程第七章3-2软件测试可使用性测试可使用性测试v可使用性测试主要从使用的合理性和方可使用性测试主要从使用的合理性和方便性等角度对软件系统进行检查,发现便性等角度对软件系统进行检查,发现人为因素或使用上人为因素或使用上的问题。的问题。v要保证在足够详细的程度下,用户界面要保证在足够详细的程度下,用户界面便于使用;对输入量可容错、响应时间便于使用;对输入量可容错、响应时间和响应方式合理可行、输出信息有意义、和响应方式合理可行、输出信息有意义、正确并前后一致;出错信息能够引导用正确并前后一致;出错信息能够引导用户去解决问题;软件文档全面、正规、户去解决问

56、题;软件文档全面、正规、确切。确切。势铆脾老啸擞力键忻务螺苫悟匪撩爸榆费继二朽急蒙棉铆硼典粒未库邀菜软件工程第七章3-2软件测试软件工程第七章3-2软件测试可支持性测试可支持性测试这类测试是要验证系统的支持策略对于这类测试是要验证系统的支持策略对于公司与用户方面是否切实可行。公司与用户方面是否切实可行。v它所采用的方法是它所采用的方法是 试运行支持过程试运行支持过程(如对有错部分打补如对有错部分打补丁的过程,热线界面等丁的过程,热线界面等); 对其结果进行质量分析;对其结果进行质量分析; 评审诊断工具;评审诊断工具; 维护过程、内部维护文档;维护过程、内部维护文档; 修复一个错误所需平均最少时

57、间。修复一个错误所需平均最少时间。箔呻翼柿逢遍教锌居纸携帘钒惟惩娥锐盗香厢鲁柿蔬私捆郊拌甚烫倾沧轰软件工程第七章3-2软件测试软件工程第七章3-2软件测试安装测试安装测试安装测试的目的不是找软件错误,而是安装测试的目的不是找软件错误,而是找安装错误。找安装错误。v在安装软件系统时,会有多种选择。在安装软件系统时,会有多种选择。 要分配和装入文件与程序库要分配和装入文件与程序库 布置适用的硬件配置布置适用的硬件配置 进行程序的联结。进行程序的联结。v而安装测试就是要找出在这些安装过程而安装测试就是要找出在这些安装过程中出现的错误。中出现的错误。却段教胚喂眼猫挠锰耍凋佯付煽川审争屯某著倪喷浴累枝关

58、痈畦揪邯械培软件工程第七章3-2软件测试软件工程第七章3-2软件测试v安装测试是在系统安装之后进行测试。安装测试是在系统安装之后进行测试。它要检验:它要检验: 用户选择的一套任选方案是否相容;用户选择的一套任选方案是否相容; 系统的每一部分是否都齐全;系统的每一部分是否都齐全; 所有文件是否都已产生并确有所需要所有文件是否都已产生并确有所需要的内容;的内容; 硬件的配置是否合理,等等。硬件的配置是否合理,等等。塞嗽兢被描耐绩沾孝睛靴纵军巢振唇打碟捡壶冰船酮良喀混蚁炎郑纺震拒软件工程第七章3-2软件测试软件工程第七章3-2软件测试过程测试过程测试v在一些大型的系统中,部分工作由软件在一些大型的系

59、统中,部分工作由软件自动完成,其它工作则需由各种人员,自动完成,其它工作则需由各种人员,包括操作员,数据库管理员,终端用户包括操作员,数据库管理员,终端用户等,按一定规程同计算机配合,靠人工等,按一定规程同计算机配合,靠人工来完成。来完成。v指定由人工完成的过程也需经过仔细的指定由人工完成的过程也需经过仔细的检查,这就是所谓的过程测试。检查,这就是所谓的过程测试。纱咎铸喳蜕宾阵蘸澎畜平鳞痹缀唆妆峭糜忘狡悼采瞒嫂初循蓖擦五榔棕厚软件工程第七章3-2软件测试软件工程第七章3-2软件测试互连测试互连测试v互连测试是要验证两个或多个不同的系互连测试是要验证两个或多个不同的系统之间的互连性。统之间的互连

60、性。兼容性测试兼容性测试v这类测试主要想验证软件产品在不同版这类测试主要想验证软件产品在不同版本之间的兼容性。有两类基本的兼容性本之间的兼容性。有两类基本的兼容性测试:测试: 向下兼容向下兼容 交错兼容交错兼容琉纪科胖虑透耿冬贼逢豺但拉息迄恳泊棕劝酸亢塑雾存平毛老现顺埠妊把软件工程第七章3-2软件测试软件工程第七章3-2软件测试容量测试容量测试v容量测试是要检验系统的能力最高能达容量测试是要检验系统的能力最高能达到什么程度。例如,到什么程度。例如, 对于编译程序,让它处理特别长的源对于编译程序,让它处理特别长的源程序;程序; 对于操作系统,让它的作业队列对于操作系统,让它的作业队列“满满员员”

61、; 对于信息检索系统,让它使用频率达对于信息检索系统,让它使用频率达到最大。到最大。在使系统的全部资源达到在使系统的全部资源达到“满负荷满负荷”的情的情形下,测试系统的承受能力。形下,测试系统的承受能力。俺罚坝溺沸离费举哎粮录粗郎涨瓷瞅喊日权踏湘增场坎阉怪茶蹭驰蓉泉书软件工程第七章3-2软件测试软件工程第七章3-2软件测试文档测试文档测试这种测试是检查用户文档这种测试是检查用户文档(如用户手册如用户手册)的清晰性和精确性。的清晰性和精确性。v用户文档中所使用的例子必须在测试中用户文档中所使用的例子必须在测试中一一试过,确保叙述正确无误。一一试过,确保叙述正确无误。劣泞屿柞狡落境们辨戚沸舷歹漫卢玲朝迷旅唬陆灌焕倔党膨拧趋亭札烬么软件工程第七章3-2软件测试软件工程第七章3-2软件测试70

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号