软件测试,描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件测试的类型可分为静态测试和动态测试。
静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态测试包括对文档的静态测试和对代码的静态测试。对文档的静态测试主要以检查单的形式进行,而对代码的静态测试一般采用桌前检查、代码走查和代码审查。
动态测试是指在计算机上实际运行程序进行软件测试,一般采用白盒测试和黑盒测试方法。
白盒测试也称为结构测试,主要用于软件单元测试中。白盒测试方法主要有控制流测试、数据流测试和程序变异测试等。另外,使用静态测试的方法也可以实现白盒测试。例如,使用人工检查代码的方法来检查代码的逻辑问题,也属于白盒测试的范畴。白盒测试方法中,最常用的技术是逻辑覆盖,即使用测试数据运行被测程序,考察对程序逻辑的覆盖程度。主要的覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。
黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试中。黑盒测试根据SRS所规定的功能来设计测试用例,一般包括等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错法和正交试验法等。
测试的阶段
可以把测试分为单元测试、集成测试、确认测试、系统测试、配置测试和回归测试等类别。 1、单元测试:又称为模块测试。 2、集成测试:目的是检查模块之间,以及模块和已集成的软件之间的接口关系。也称为组装测试、联合测试(对于子系统而言,则称为部件测试)。 3、确认测试:主要用于验证软件的功能、性能及其他特性是否与用户要求(需求)一致。根据用户的参与程度,通常包括以下4种类型: 内部确认测试:主要由软件开发组织内部按软件需求说明书SRS进行测试。 Alpha测试:由用户在开发环境下进行测试。 Beta测试:由用户在实际使用环境下进行测试。 验收测试:针对软件需求说明书SRS,在交付前以用户为主进行的测试。 4、系统测试:系统测试的对象是完整的、集成的计算机系统,系统测试的目的是在真实系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。 5、配置项测试:的对象是软件配置项,目的是检查软件配置项与SRS的一致性。
|