软件测试

来源:互联网 发布:网络验证哪个好 编辑:程序博客网 时间:2024/05/02 02:14

概念:

软件测试:对软件计划、软件设计、软件编码进行查错和纠错的活动(包括代码执行活动和人工活动)

程序测试:对编码阶段的语法错、语义错、运行错进行查找的编码执行活动。找出编码中错误的代码执行活动。

各种软件错误的出现比例:

1)功能错,27%,是需求分析设计不完整而引起的

2)系统错,16%,是总体设计错误而引起的

3)数据错,10%,由编码错误引起。

4)编码错,4%,程序员编码错误引起。

5)其他错,16%,由文档错和硬件错引起。

测试信息流(3个输入,3个输出):

1)软件配置:软件的需求规格说明,软件设计说明,原程序

2)测试配置:测试计划,测试用例,测试程序

3)测试工具:专门数据库,工具

4)测试结果分析

5)排错(调试)

6)修正后的文档再测试

测试用例设计:

黑盒测试:功能测试,数据驱动,测试程序的接口、功能

白盒测试:结构测试,逻辑驱动,测试模块的独立路径(关键路径)、逻辑条件(成立/不成立)、循环边界(0次,1次,最大次循环)

       逻辑覆盖:语句覆盖,判定覆盖,条件覆盖,判定-条件覆盖,条件组合覆盖,路径覆盖

       条件测试路径选择:嵌套式分支结构,连锁式分支结构

       循环测试路径选择:简单循环,嵌套循环,连锁循环,非结构循环

单元测试:先做白盒测试

集成测试/系统测试:黑盒测试

黑盒测试的测试用例设计:

A.等价类划分

1.划分等价类,画出等价类表(输入条件 有效等价类 无效等价类)

2.设计测试用例

B.边界值分析(正好等于,刚刚大于,刚刚小于---取值范围,数据个数)

C.错误推测法:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。

D.因果图:如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这个就需要利用因果图。(因果图最终生成的就是判定表)

软件测试的策略:

1.单元测试(Unit Testing,模块测试)

内容:模块接口,局部数据结构,边界条件,独立路径,出错处理

模块接口:测试调用这个模块传入的数据、被调用的模块运算完输出的结果,全局量。

步骤:驱动模块(driveà被测模块à桩模块(stub

常见错误清单:

A.模块接口检查表

1.模块接受的输入参数个数与模块的变元个数是否一致

2.参数与变元的属性是否匹配

3.参数与变元所用的单位是否一致

4.传递给被调用模块的变元的数目是否等于那个模块的参数的数目

5传递给被调用模块的变元属性和参数的属性是否一致

6.传递给被调用模块的边缘的单位和该模块参数的单位是否一致

7.传递给内部函数的变元属性、数目和次序是否正确

8.是否修改了只是作为输入用的变元

9.全程变量的定义在各个模块中是否一致

10.有没有把常数当做变量来传递

B.完成外部输入/输出时的检查表

1.文件属性是否正确

2Open语句是否正确

3.格式说明与输入/输出语句给出的信息是否一致

4.缓冲区容量与记录长度是否匹配

5.在进行读写操作之前是否打开了文件

6.对结束文件条件的判断和处理是否正确

7.对输入/输出错误的处理是否正确

8.有没有输出信息中有正文错误

C.模块局部数据结构检查表

1.不正确或不一致说明

2.错误的初始值或错误的缺省值

3.变量名拼写错或缩写错

4.不相容的数据类型

5.下溢、上溢或是地址错误

2.组装测试(Integrated Testing)——接口测试

把模块组装成为系统的方式:一次性组装方式(big bang),增值式组装方式

一般采用混合式顶层模块自顶向下底层模块自底向上先测试关键模块

3.确认测试(Validation Testing)——需求测试,有效性测试

1.进行有效性测试(黑盒测试)

2.软件配置复查

4.验收测试(Acceptance Testing

测试:系统的功能、性能+可移植性、可维护性

验收测试,确认文档

(1)       测试的分析报告

(2)       用户手册,操作手册

(3)       开发的总结报告

5.系统测试(System Testing

α测试1个用户(在开发者指导下)进行的测试,软件开发者记录错误和使用中出现的问题。

β测试:在开发者不能控制的环境下进行,用户记录遇到的问题,报告给开发者。所有测试的最后一关。

测试种类:功能测试,可靠性测试,强度测试,性能测试(响应时间、存储量、缓冲器大小、处理的精度),恢复测试,启动/停止测试,配置测试,安全性测试,可使用性测试,可支持性测试,安装测试,过程测试,互连测试,兼容性测试,容量测试,文档测试,

调试——方法:

强行排错:在程序可能出现问题的地方,安排一些输出语句,然后把可能出现错误的数据或单元打印出来,然后在大批量的数据中寻找出错的数据。

回溯法调试

归纳法调试

演绎法调试