测试策略 - wolai 笔记

1.测试步骤

2.单元测试

模块通过编译的语法检查后进入单元测试

2.1模块接口

数据是否正确进出模块。

2.2局部数据结构

局部数据的说明、初始化、默认值是否有问题。

2.3 重要执行路径

重要执行路径是否有错误计算、不正确比较或不适当控制流。

2.4 出错处理通路

(1)错误描述是否难于理解;
(2)记下错误是否与实际遇到错误不同;
(3)错误处理之前,错误条件已引起系统干预;
(4)错误处理不正确;
(5)描述错误信息不足以帮助确定错误位置;

2.5边界条件

最重要,软件容易在边界上失效。

2.6测试方法

(1)代码审查(人工)

先由编写人非正式进行,再由审查小组正式进行,可查30%到70%设计错误和编码错误。
  • 程序编写者讲解,审查小组审查;
  • 预排演(代码走查),发现逻辑错误。

(2)计算机测试

需要辅助模块模拟与被测模块相联模块,两种:
  • 驱动模块──相当被测模块主程序。接收测试数据,传送给被测模块,再输出测试结果。
  • 桩模块──存根模块。代替被测模块调用的子模块。

3.集成测试

3.1测试与接口有关问题

  • 穿越接口数据是否丢失;
  • 一模块功能是否对另一模块功能产生不利影响;
  • 各子功能组合起来,能否达到预期的父功能;
  • 全局数据结构是否有问题;
  • 单个模块误差累积起来,是否会放大等。

3.2非渐增式集成

把所有模块一次组装进行测试。

3.3渐增集成

将模块逐步组装成较大系统

(1)自顶向下集成

(2)自底向上集成

(3)混合策略

  • 改进的自顶向下测试方法:基本用自顶向下方法,早期用自底向上测试关键模块。
  • 混合法:软件结构上层模块用自顶向下,下层用自底向上。

3.4回归测试

当有新模块加入时,要对原测试通过的测试模块进行重新测试。
重新执行已作过测试的某子集,保证变化没带来非预期副作用。
回归测试集:
(1)检测软件全部功能的代表性测试用例;
(2)专门针对可能受修改影响的软件功能附加测试;
(3)针对被修改过软件功能测试

4.系统测试

使软件和其它系统元素(硬件、数据库等)结合测试

4.1恢复测试

以不同方式强制软件出现故障,检测软件能否恰当完成恢复
  • 自动恢复:检测重新初始化、数据恢复、重新启动等是否正确。
  • 人工干预恢复:检测平均恢复时间是否在允许范围内。

4.2安全性测试

突破软件安全保护机构的安全保密措施,检验系统预防机制的漏洞。
设计目标:攻破系统付出代价大于攻破系统后得到信息价值。
  • 测试者扮演试图攻击系统角色:
  • 通过外部手段获取密码;
  • 通过客户软件攻击系统;
  • 控制系统使其他人无法访问;
  • 引发系统错误,期望在系统恢复中侵入系统等。

4.3强度测试

检验系统能力最高达到实际限度, 让系统处于资源异常数量、异常频率、异常批量条件下测试系统承受能力。
一般比平常限度高5-10倍的限度做测试用例。

4.4性能测试

软件运行性能与性能要求比较,检验是否达到性能要求规格
  • 动态数值需求:数据传输的速度达到56KBPS。
  • 静态数值需求:自助缴费设备对每笔交易记录唯一、连续的流水号并存储历史记录达3万条,支持重发、查询。
  • 时间需求:
    • 平均无故障时间(MTBF)>10,000小时
    • 平均无故障次数(MTCF)>100,000次交易
    • 每笔交易时间<3秒(不包括用户操作,浏览时间)。
    • 任何查询网页打开时间<5秒。

5.确认测试(验收测试)

系统测试后,客户再验收测试。确认测试以需求规格说明书为测试基础;采用黑盒法。

5.1 α测试

用户对即将面市软件产品(称α版本)进行测试,开发者坐在用户旁边,随时记下错误情况和使用中问题,是受控环境下测试
目的:评价软件功能、可使用性、可靠性、性能、界面。

5.2 β测试

多个用户在实际使用环境下进行的测试用户与公司签定支持产品预发行合同,使用产品,并返回错误信息。是在开发者无法控制的环境下进行的软件现场应用
目的: 产品的支持性。



Comment