前言
测试分为:软件测试和程序测试。软件测试包括程序测试,即程序测试是软件测试的一部分,因为软件测试不仅对代码部分进行测试,还要对一些文档进行检查。
目的和原则
目的:发现程序中的错误,给用户交付一个满意的软件。
原则:1.尽早不断地对程序进行测试;2.测试时要设计测试用例;
3.输入的数据和结果要对应,即输入正确的数据要得到正确的结果,不正确的数据也要得到不正确的结果。
4.避免自己测试自己设计的程序。
下面是软件测试的DFD图:
软件配置:包括需求规格说明书、设计说明书、源程序等。
测试配置:包括测试计划、测试用例以及专门用于测试的测试程序。
测试工具:测试程序、测试用的数据和其他的测试工具。
测试方法
黑盒测试:程序的内部结构不用了解,只测试模块的功能、性能以及模块之间的接口。
白盒测试:内部结构是透明的,需要对所有的程序路径进行测试。
用例设计方法
测试用例需要根据以上两种测试方法来设计。
根据黑盒测试设计测试用例的具体方法:
1.等价类划分法
2.边界值分析法
3.错误推测法
4.因果图判定法
根据白盒测试设计测试用例的具体方法:
1.语句覆盖
2.判定覆盖
3.条件覆盖
4.判定—条件覆盖
5.条件组合
6.路径组合
测试策略:
软件测试的步骤分为:单元测试->集成测试->确认测试->系统测试
1.单元测试:主要对每个模块分别进行测试,分为以下几个内容:模块接口、边界条件、独立路径、局部数据结构以及模块的出错处理情况。
测试方法:先白盒测试后黑盒测试,白盒为主,黑盒为辅。
2.集成测试:测试当所有模块组合起来的时候会不会出现错误。组装的时候有一次性组装和增殖式组装两种方式。
3.确认测试:主要测试系统是否符合用户的需求,以及对各个文档进行审查。
测试分为:有效性测试和软件配置审查。有效性测试需要用黑盒测试,软件配置审查包括软件计划、用户文档、开发文档、源程序以及支持环境等。
测试的时候先测关键模块,而且开发人员不能测试,要找专门的测试人员。
4.系统测试:把所有的设备模拟实际环境来测试,通过与需求定义作比较,发现软件与需求有矛盾的地方。
测试方法有两种:α测试和β测试。
α测试:由用户在开发环境下测试,开发人员也到现场但不参与测试,发现问题由开发人员记录下来。主要评价软件的功能和可靠性。
β测试:是测试的最后一关,由多个用户在实际环境下测试,开发人员不到现场,出现问题由用户记录给开发人员。重点考虑产品支持性,包括文档。
测试种类
1. 功能测试
2. 性能测试:测试系统的响应时间、吞吐量等方面。
3. 可靠性测试
4. 强度测试:测试系统发生故障后可以运行到何种程度,以及系统的负荷能力。
5. 恢复测试:当软件克服故障后能否按原来一样正常工作,包括数据的记录等。
6. 启动/停止测试:验证启动和关机阶段,特别是不正常关机时系统的处理能力。
7. 配置测试:检查机器设备的各种配置。
8. 安全测试
9. 可使用性测试:主要在于测试是否方便用户使用,比如界面、响应时间、输出的信息、出错信息以及帮助用户如何操作等是否流畅合适。
10. 可支持性测试:验证系统的支持策略、修复错误需要的时间等。
11. 安装测试
12. 过程测试:测试各个人员对软件的操作是否有错误。
13. 互连测试:系统之间的互连性。
14. 兼容测试:一般软件都是向下兼容。
15. 容量测试:测试软件的满负荷能力,感觉和强度测试有点儿相似。
16. 文档测试:测试用户文档、操作手册等是否符合要求,合乎规范。
调试
步骤:1.先确定测试的位置以及性质(出错的原因)2.纠错 3.重复回归测试
方法:1.强行排错法:比较简单不需要过多思考,但是效率极低。就是在可能出错地方写一些输出语句,在大批量输出中寻找出错语句。
2.回溯法:发现错误先分析错误的位置和特征
3.归纳法:先收集所有出错信息,列出所有测试用例和结果,然后归纳整理发现错误的规律。分析的时候一般采用 3W1H 原则。
4.演绎法:先根据测试用例枚举所有出错的假设,然后一一排除错误原因。
原则:调试错误一定要多思考,先找出出错的地方以及本质原因。避免自己钻入死胡同,因为一个人的想法有限,有时候可以找多人帮助调试,这一点我觉得很多人都深有体会。
后语
最后就是产生测试分析报告了,具体内容就不列举了,我觉得经过实践之后就自然而然的会写了。现在我们简单的了解一下就好,以后还需要回顾再学习。