软件测试和调试(42 - 43题,共2分,论文)

发布时间 2023-10-18 21:34:10作者: 谵语芥末

软件测试的目的是验证软件是否满足软件开发合或项目开发计划、系统/子系统设计文档、 SRS、软件设计说明和软件产品说明等规定的软件质量要求。通过测试,发现软件缺陷,为软件产品的质量测量和评价提供依据。

软件测试分类:

按照开发阶段:单元测试/模块测试(对应详细设计阶段)、集成测试(对应的概要设计阶段)、确认测试(对应的需求分析阶段)、验收测试(用户需求)

1> 单元测试:单元测试又称模块测试,是对软件组成模块进行测试,其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。

测试阶段:编码后或编码前(TDDtest driven develop测试驱动开发)

测试对象:模块

测试方法:白盒测试

测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

2> 集成测试:集成测试又称联合测试,是将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试,主要目的是检查软件单位之间的接口是否正确。

测试策略:非增量测试(一次性测试)、增量测试(包括自上而下、自下而上、三明治)

测试阶段:一般在单元测试之后进行

测试对象:模块间的接口

测试方法:黑盒测试和白盒测试相结合

测试内容:模块之间的数据传输、模块之间的功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

3> 系统测试:系统测试是包括对功能、性能、软件所运行的软硬件环境进行测试,测试时大部分时间都用在系统测试执行阶段,包括回归测试和冒烟测试。(回归测试和冒烟测试不只是在系统测试阶段出现)

测试阶段:集成测试之后

测试对象:整个系统(软、硬件)

测试方法:黑盒测试

测试内容:功能、界面、可靠性、易用性、性能、兼容、安全性等

4> 回归测试:回归测试是指修改了旧代码之后,重新进行测试以确认修改有没有引起新的错误或导致其他代码产生错误,自动回归测试将大幅度降低系统测试、维护升级等阶段的成本。

5> 冒烟测试:冒烟测试就是对软件的核心基本功能进行测试,如果测试通过了,再进行后续的正式测试工作,这种测试方式耗时短速度快,测试对象是每一个新编译的需要正式测试的软件版本。

6> 验收测试:验收测试是部署软件之前的最后一个测试操作,也成为交付测试,测试人员是最终用户或需求方。(α测试和β测试)

测试阶段:系统测试通过后

测试对象:整个系统(软、硬件)

测试方法:黑盒测试

测试内容:配置复审、合法检查、软件文档检查、软件代码检查、软件功能和性能测试、测试内容交付。

按照测试实施组织:开发方测试、用户测试、第三方测试。

测试技术:白盒测试、黑盒测试、灰盒测试。

白盒测试:逻辑覆盖法(语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、修正条件判定覆盖、条件组合覆盖、路径覆盖)、路径分析(环路数)、控制结构测试(条件测试、环路测试、Z路径覆盖)。

黑盒测试:等价类划分法、边界值分析法、错误推测法、因果图、判定表、状态迁移法、正交实验法、场景法。

按测试内容:符合性测试、验收测试、易用性测试、兼容性测试、可靠性测试、安全性测试、性能测试。

按执行被测试软件:静态测试(桌前检查、代码走查、代码审查)、动态测试(白盒测试、灰盒测试、黑盒测试)

按照是否有人工:人工测试、自动化测试

面向对象的测试方法:在OO系统中,每个类和对象封装了数据和操作这些数据的方法,而不是个体的模块,单元变成了封装的类,甚至是一个类族。因此,单元测试的意义发生了较大变化。

单元测试:包括方法层次的测试、类层次的测试和类树层次的测试。

方法层次的测试:等价类划分测试、组合功能测试(基于判定表的测试)、递归函数测试和多态消息测试等。

类层次的测试主要:不变式边界测试、模态类测试和非模态类测试。

类树层次的测试主要包括:多态服务测试和展平测试

集成测试OO系统的集成测试中,“集成”的含义也有了变化,模块集成变成了类的集成。