软件工程导论期末复习(七)

本文详细介绍了软件工程的实现阶段,包括编码、测试和调试的流程。重点讲解了单元测试、集成测试(非渐增式与渐增式)以及确认测试的目标和方法。此外,提到了白盒测试技术如语句覆盖和条件组合覆盖,并简述了软件的可靠性和可用性概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文用书:《软件工程导论》 第六版 清华大学出版社

1、编码

2、测试技术

3、调试的途径有哪些?

4、软件可靠性和可用性的基本概念

第七章 实现

7.1 编码

1.编码:软件设计结果翻译成用某种程序语言书写的程序。

2.测试:软件测试的目的是在软件投入生产性运行前,尽可能多的发现软件中的错误。

3.实现=编码+测试。

7.2 软件测试基础

1.软件测试:为发现程序中的错误而执行程序的过程。

2.软件测试的准则(尽早和不断的测试、彻底测试的不可能、软件测试是有风险的行为、并非所有的软件错误都能恢复、反向思维逻辑、由小到大的测试范围、避免检查自己的代码、追溯至用户需求)

3.测试方法(黑盒测试和白盒测试)  

4.测试步骤(模块测试、子系统测试、系统测试、验收测试、平行运行)

5. 测试阶段的信息流( 软件配置,包括需求说明书、设计说明书和源程序清单等; 测试配置,包括测试计划和测试方案。 )

 

7.3 单元测试

1.测试内容

(1)模块接口测试

(2)重要路径测试

(3)边界条件测试

(4)错误处理测试

(5)局部数据结构测试

2.模块测试步骤:

 

3.代码审查

(1)审查小组:组长、程序设计者、程序编写者、程序测试者

4.计算机测试

模块并不是一个独立的程序,因此必须为每个单元测试开发驱动软件和(或)存根软件。  

通常驱动程序也就是一个“主程序”,它接收测试数据,把这些数据传送给被测试的模块,并且印出有关的结果。  

存根程序代替被测试的模块所调用的模块。因此存根程序也可以称为“虚拟子程序”。它使用被它代替的模块的接口,可能做最少量的数据操作,印出对入口的检验或操作结果,并且把控制归还给调用它的模块。

7.4 集成测试

1.非渐增式测试:该测试是首先对每个模块分别进行单元测试, 然后再把所有的模块按设计要求组装在一起进行的测试。

2.渐增式测试:该测试是逐个把未经过测试的模块组装到已经测试过的模块上去,进行集成测试。每加入一个新模块进行一次集成的测试,重复此过程直至程序组装完毕。

(1)自顶而下增值

优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误,能够尽早发现系统主控方面的问题。

缺点:需要存根程序,可能遇到与此相联系的测试困难,低层关键模块中的错误发现较晚,而且用这种方法在早期不能充分展开人力,无法验证桩模块是否完全模拟了下属模块的功能。

(2)自底而上增值

优点:驱动模块较容易编写桩模块,能够尽早查出底层涉及较复杂的算法和实际的I/O模块中的错误。

缺点:最后才能发现系统主控方面的问题。

3.以上二者的优缺点:

(1) 非渐增式方法把单元测试和集成测试分成两个不同的阶段, 前一阶段完成模块的单元测试,后一阶段完成集成测试。 而渐增式测试把单元测试与集成测试合在一起, 同时完成。 

(2) 非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。 

(3) 渐增式可以较早地发现接口之间的错误,非渐增式最后组装时才发现。 

(4) 渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。 

(5) 渐增式比较彻底,已测试的模块和新的模块组装在一起再测试。 

(6) 渐增式占用的时间较多,但非渐增式需更多的驱动模块、 模块, 也占用一些时间。

(7) 非渐增式开始可并行测试所有模块, 能充分利用人力, 对测试大型软件很有意义。

7.5 确认测试

1.目标:验证软件有效性。

(1)验证指的是保证软件正确地实现了某个特定要求的一系列活动;

(2)确认指的是为了保证软件确实满足了用户需求而进行的一系列活动。

2.通常使用黑盒测试法。

3.α测试:Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。开发者负责记录发现的错误和使用中遇到的问题。总之,Alpha测试是在受控的环境中进行的。

4.β测试:Beta测试由软件的最终用户们在一个或多个客户场所进行。与Alpha测试不同,开发者通常不在Beta测试的现场,因此,Beta测试是软件在开发者不能控制的环境中的“真实”应用。用户记录在Beta测试过程中遇到的一切问题(真实的或想像的),并且定期把这些问题报告给开发者。接收到在Beta测试期间报告的问题之后,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。

7.6 白盒测试技术

1.常用的覆盖标准

例子:

 

① 语句覆盖: 选择足够的测试用例,使得程序中每个语句至少都能被执行一次。

 

② 判定覆盖: 执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值。

 

③ 条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。

 

④ 判定/条件覆盖: 执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。

 

⑤ 条件组合覆盖: 执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。

 

 2.步骤:

1)选择逻辑覆盖标准。

2)按照覆盖标准列出所有情况。

3)选择确定测试用例。

4)验证分析运行结果与预期结果。

3.注意

 用例格式: [输入(A,B,X),输出(A,B,X)]

7.7 黑盒测试技术(略)

1.等价分类法

2.边值分析法

3.错误推测法

7.8 调试

1.调试:在测试发现错误之后排除错误的过程。

2.调试的途径:

(1)蛮干法;

(2)回溯法;

(3)原因排除法;

7.9 软件可靠性

1.软件可靠性:程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率

2.软件可用性:程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值