软件测试
软件测试是软件质量保证的主要手段之一,也是在将软件交付给客户之前所必须完成的步骤。
软件测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理人员发现当前所采用的软件过程的缺陷,以便改进。其次,没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
测试的类型
软件测试一般分为两大类:动态测试和静态测试
动态测试:
动态测试指通过运行程序发现错误,分为黑盒测试法、白盒测试法和灰盒测试法等。
1. 黑盒法(又称功能测试或数据驱动测试)
把被测试的对象看成一个黑盒子,测试人员不考虑程序的内部结构和处理过程。只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。
常见 的黑盒测试用例的设计方法有等价类划分、边界值分析、错误推断和因果图等。
等价类划分:把程序的输入域划分成若干部分,然后从每个部分中选取少数有代表性的数据作为测试用例,每一类代表性数据在测试中的作用等价于这一类中的其它值。划分等价类时,首先把数目极多的输入分成若干个等价类。所谓等价类就是某个输入域的集合,对于一个等价类中的输入值来说,它们提示程序中错误的作用是等效的。
边界值分析:不选择等价类的任意元素,而选择等价类边界的测试用例。
错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,有针对性地设计测试用例。
因果图法:从自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变)
2.白盒法
把测试对象看作一个打开的盒子,测试人员了解里面的内部结构。对程序中尽可能多的逻辑路径进行测试。常用的白盒测试用例设计方法有基本路径测试、循环覆盖测试及逻辑覆盖测试等。
基本路径法:保证程序流程图上的流程都被测试过一次
循环覆盖:指程序中所有的循环。
逻辑覆盖:以程序内部逻辑为基础。常用的有语句覆盖、判断覆盖等。
3.灰盒法
灰盒测试是一种介于白盒测试与黑盒测试之间的测试。它关注输出对于输入的正确性,同时也关注内部表现,但都是浮于表面的判断。
静态测试:
使用人工检测和计算机辅助静态分析的手段对程序进行检测。人工测试的主要方法有桌前检查、代码审查和代码走查等。
测试的阶段
1、单元测试
2、集成测试
3、确认测试
4、系统测试