软件工程第九次作业

1. 软件测试的目的及原则

软件测试是为了发现软件缺陷而执行程序的过程,软件测试是为了证明软件有缺陷,而不是仅仅为了演示软件的正确功能。
软件测试的原则:
Pareto法则:也称为80/20法则

  • 一般可以发现80%的缺陷,最后20%的缺陷可能在用户大范围、长时间使用后才逐渐暴露出来。
  • 80%的软件缺陷通常集中在20%的模块中
  • 20%的缺陷通常消耗80%的维护费用
    测试不能证明软件无错,测试无法显示潜在的软件缺陷,因为完全测试软件是不可能的。
    软件缺陷的免疫力(杀虫剂怪事):软件会对相同类型的测试产生免疫力,需不断编写新的测试程序,对程序的不同部分进行测试,以找到更多的软件缺陷。
    并非所有的软件缺陷都需要修复:时间不够;并不是真正的软件缺陷(当做功能);修复的风险很大;不值得修复

2.软件测试的分类

软件测试主要有两种:

  1. 静态测试:不运行被测程序,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
  2. 动态测试:设计一组输入数据,通过运行程序来发现错误,测试任何工程化产品。
    其中动态测试又包括黑盒测试和白盒测试

3.黑盒测试

黑盒测试:了解产品的功能,然后构造测试用例,来证实所有的功能是完全可执行的
黑盒测试包括以下方法:

  • 等价类划分法
  • 边界值划分法
  • 错误推测法
  • 因果图法

4.白盒测试

白盒测试:知道测试产品的内部结构及处理过程,可以构造测试用例,对所有的结构都进行测试。
白盒测试包括以下方法:

  • 逻辑覆盖法
  • 基本路径覆盖法
  • 循环路径测试

5. 如何构建测试用例

第一步,划分等价类并编号
第二步,设计有效的测试用例,覆盖所有的等价类
第三步,为每个无效等价类设计测试用例

6.软件测试与软件开发的关系

在软件开发的过程中开发编码或需要进行单元测试、集成测试以及确认测试,每个测试需要分别修改详细设计、概要设计以及需求分析

7.单元测试

单元测试需要对模块进行测试,单元测试的任务包括模块接口测试、模块局部数据结构测试、模块边界条件测试、模块边界条件测试、模块执行路径测试以及模块内部错误处理测试。
单元测试应为测试模块开发

  • 一个驱动模块:通常被称为“主程序”,驱动模块接受测试数据并将这些数据传递到被测试模块,被测试模块调用后,驱动模块打印“进入-退出”消息
  • 若干个桩模块:通常被称为“虚拟子程序”,桩模块代替被测试所调用的模块。

8.集成测试

多模块程序的各模块之间可能有比较复杂的接口,单元测试中往往使用了测试软件,模块组装后的所积累的误差可能达到了不能容忍的地步
集成测试的策略:

  • 自顶向下
  • 自底向上

9.调试策略

调试策略包括:

  • 试探法:凭借经验猜想故障的位置,然后使用适当的调试技术。
  • 回溯法:检查错误症状,确定最先发现症状的地方,然后沿着源程序的控制流往回追踪程序代码,直到找到错误根源或确定故障范围为止。
  • 对分查找法:如果已经直到每个变量在程序内若干个关键点的正确值,则可以用赋值语句或输入语句在程序“中点”附近加入这些变量的正确值,然后检查程序的输出。如果输出结果是正确的,则故障点在程序“中点”的前半部分,反之,故障在“中点”的后半部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值