软件测试是在将软件交付给客户之前所必须完成的重要步骤。
软件测试仍是发现软件错误(缺陷)的主要手段。
软件测试的目的,是验证软件是否满足软件开发合同或项目开发计划、系统/子系统设计文档、 SRS、 软件设计说明和软件产品说明等规定的软件质量要求。
软件测试方法可分为 静态测试 和 动态测试。
静态测试
①静态测试:是指被测试程序不在机器上运行, 而采用人工检测和计算机辅助静态分析的手段对程序进行检测。
静态测试包括对文档的静态测试 和 对代码的静态测试。
对文档的静态测试主要以检查单的形式进行,
而对代码的静态测试一 般采用桌前检查 (Desk Checking)、 代码走查和代码审查。
动态测试
②动态测试:是指在计算机上实际运行程序进行软件测试, 一般采用白盒测试和黑盒测试方法。
白盒测试:也称为结构测试,主要用于软件单元测试中。它的主要思想是,将程序看作是一个透明的白盒,测试人员完全清楚程序的结构和处理算法,按照程序内部逻辑结构设计测试用例,检测程序中的主要执行通路是否都能按预定要求正确工作。
白盒测试方法:主要有控制流测试、数据流测试、程序变异测试等。
另外,使用静态测试的方法也可以实现白盒测试(即静态测试 或 动态测试,均可使用白盒测试方法)。例如,使用人工检查代码的方法来检查代码的逻辑问题,也属于白盒测试的范畴。
白盒测试方法中,最常用的技术是逻辑覆盖,即使用测试数据运行被测程序, 考查对程序逻辑的覆盖程度。主要的覆盖标准有:语句覆盖、判定覆盖、条件覆盖、条件/判定 覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。
黑盒测试:也称为功能测试,主要用于集成测试、确认测试、系统测试中。黑盒测试将程序看作是一个不透明的黑盒,完全不考虑(或不了解)程序的内部结构和处理算法,而只检查程序功能是否能按照SRS的要求正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息(例如,文件和数据库等)的完整性等。
黑盒测试根据SRS所规定的功能来设计测试用例, 一般包括等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错法、正交试验法等
注:SRS指 软件需求规格说明书。