软件测试概括(包含了软考中级软件设计师的相关考点)

目录

1. 软件测试

2. 单元测试

3. 集成测试

4. 回归测试

5. 黑盒测试

6. 白盒测试

7. 软件调试方法


1. 软件测试

  • 一个成功的测试应该能发现迄今为止未发现的错误;

  • 软件测试不能表明软件中不存在错误,它只能说明软件中存在错误;

  • 开发中的每个环节都有可能产生错误,因此软件测试应该贯穿到软件开发的各个阶段中,且需尽早地和不断地进行;

  • 测试中存在一种集群现象,即在被测程序段中,若发现的错误数目越多,则残存的错误数目也较多;

  • 软件测试的目的是发现更多的错误,而不是证明软件的正确性(易错)

  • 软件测试分为单元测试、集成测试和系统测试。


2. 单元测试

侧重于模块中的内部处理逻辑和数据结构;

主要检查以下5个特征:

  • 模块接口

  • 局部数据结构:包括 输入参数是否使用了尚未赋值或者尚未初始化的变量(考过)

  • 重要的执行路径

  • 出错处理

  • 边界条件

3. 集成测试

所有模块都通过了测试之后,把模块集成起来仍可能会出现穿越模块的数据丢失、模块之间的相互影响等问题,因此,需要模块按系统设计说明书的要求组合起来进行测试,即集成测试,以发现模块之间协作的问题。

像模块之间传递参数的错误,在集成测试中最可能测试出来。

集成测试:把模块按系统设计说明书的要求组合起来进行测试。

存在多种组合的集成测试策略:自底向上、自顶向下、一次性集成、明治集成等。

自底向上:通过不断合并底层模块来测试更高层模块的方式进行。在该方法中,需要写驱动程序来调用待测试的底层模块,主要的设计问题需要到测试后期才能发现。由于是从底层的模块开始测试,因此过程中不需要写桩模块但需要设计驱动模块来辅助测试。

补充:

桩模块(Stub)是软件测试技术的一种,主要用在单元测试阶段。它是一种模拟被测试模块所调用的模块,而不是软件产品的一部分。桩模块可以模拟被测试模块依赖的其他模块的行为,但功能较为简单,只足以让被测试模块运行。

自顶向下:与自底向上相反,从最顶层的构件开始,逐步向下。需要设计桩模块来辅助测试。

三明治:结合自底向上和自顶向下两种测试策略。

优点:较早地验证了主要的控制构件和底层模块,并行测试程度较高;

缺点:需要写较多的驱动模块和桩模块。

一次性:对所有构件一次性测试,然后集成。

4. 回归测试

是在软件发生变更之后进行的测试,以发现在变更时可能引起的其他错误。

5. 黑盒测试

也称为功能测试,常用技术包括:等价类划分、边界值分析、错误猜测、因果图的报告。

6. 白盒测试

也称为结构测试,常用的技术包括:逻辑覆盖、基本路径测试。

7. 软件调试方法

  • 试探法:根据错误的特点,猜测问题的所在位置,利用在程序中设置输出语句等,一步步地试探和分析错误所在。

  • 回溯法:从发现错误症状的位置开始,人工沿着程序的控制流积往回跟踪代码,直到找出错误根源为止。

  • 对分查找法:在该方法中,如果已经知道程序中的变量在若干位置的正确取值,可以在这些位置上给这些变量以正确值,观察程序运行输出结果,如果没有发现问题,则说明从赋予变量一个正确值到输出结果之间的程序没有错误,问题可能在除此之外的程序中。否则,错误就在所考察的这部分程序中,对含有错误的程序段再使用这种方法,直到把故障范围缩小到比较容易诊断为止。总而言之就是将错误范围一步步缩小直到找到错误位置。

  • 归纳法:从测试所暴露的问题出发,收集所有正确或不正确的数据,分析它们之间的关系,提出假想的错误原因,用这些数据来证明或反驳,从而查出错误所在。

  • 演绎法:根据测试结果,列出所有可能的错误原因,然后分析已有的数据,排除不可能或彼此矛盾的原因。再去选择可能性最大的原因去分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值