1、软件测试方法可分为静态测试和动态测试。
静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态测试包括对文档的静态测试和对代码的静态测试。对文档的静态测试主要以检查单的形式进行,而对代码的静态测试一般采用桌前检查、代码走查和代码审查。
动态测试是指在计算机上实际运行程序进行软件测试,一般采用白盒测试和黑盒测试方法。
白盒测试也称为结构测试,主要用于软件单元测试中。它的主要思想是,将程序看作是一个透明的白盒,测试人员完全清楚程序的结构和处理算法,按照程序内部逻辑结构设计测试用例。白盒测试方法主要有控制流测试、数据流测试和程序变异测试等。另外,使用静态测试的方法也可以实现白盒测试。例如,使用人工检查代码的方法来检查代码的逻辑问题,也属于白盒测试的范畴。白盒测试方法中,最常用的技术是逻辑覆盖,即使用测试数据运行被测程序,考察对程序逻辑的覆盖程度。
主要的覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径。
黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试中。黑盒测试将程序看作是一个不透明的黑盒,完全不考虑(或不了解)程序的内部结构和处理算法。
一般包括等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错法和正交试验法等。
4、软件测试可分为单元测试、集成测试、确认测试、系统测试、配置项测试和回归测试等类别。
(1)单元测试。单元测试也称为模块测试。
(2)集成测试。集成测试的目的是检查模块之间,以及模块和已集成的软件之间的接口关系。
(3)确认测试。确认测试主要用于验证软件的功能、性能和其他特性是否与用户需求一致。根据用户的参与程度,通常包括以下类型。
主要由软件开发组织内部按照SRS进行测试(SRS:软件需求说明书)。
(1)Alpha测试,对于通用产品型的软件开发而言,A|pha测试是指由用户在开发环境下进行测试,通过A|pha测试以后的产品通常称为A|pha版;
(2)Beta测试,是指由用户在实际使用环境下进行测试,通过Beta测试的产品通常称为Beta版。一般在通过Beta测试后,才能把产品发布或交付给用户。
(3)验收测试,是指针对SRS,在交付前以用户为主进行的测试。其测试对象为完整的、集成的计算机系统。
(4)系统测试。系统测试的对象是完整的、集成的计算机系统,系统测试的目的是在真实系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。
(5)配置项测试。配置项测试的对象是软件配置项,配置项测试的目的是检验软件配置项与SRS的一致性。
(6)回归测试。回归测试的目的是测试软件变更之后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性。回归测试的对象主要包括以下四个方面。
未通过软件单元测试的软件,在变更之后,应对其进行单元测试。
未通过配置项测试的软件,在变更之后,首先应对变更的软件单元进行测试,然后再进行相关的集成测试和配置项测试。
未通过系统测试的软件,在变更之后,首先应对变更的软件单元进行测试,然后再进行相关的集成测试、配置项测试和系统测试。
因其他原因进行变更之后的软件单元,也首先应对变更的软件单元进行测试,然后再进行相关的软件测试。
1、与传统的结构化系统相比,OO系统具有三个明显特征,即封装性、继承性与多态性。
2、常用的软件调试策略可以分为蛮力法、回溯法和原因排除法三类。软件调试与测试的区别主要体现在以下几个方面:
(1)测试的目的是找出存在的错误,而调试的目的是定位错误并修改程序以修正错误。
(2)调试是测试之后的活动,测试和调试在目标、方法和思路上都有所不同。
(3)测试从一个已知的条件开始,使用预先定义的过程,有预知的结果;调试从一个未知的条件开始,结束的过程不可预计。
(4)测试过程可以事先设计,进度可以事先确定;调试不能描述过程或持续时间。
软件测试的管理包括过程管理、配置管理和评审工作。
(1)过程管理。过程管理包括测试活动管理和测试资源管理。软件测试应由相对独立的人员进行。
(2)配置管理。应按照软件配置管理的要求,将测试过程中产生的各种工作产品纳入配置管理。
(3)评审。测试过程中的评审包括测试就绪评审和测试评审。
测试就绪评审是指在测试执行前对测试计划和测试说明等进行评审,评审测试计划的合理性和测试用例的正确性、完整性和覆盖充分性,以及测试组织、测试环境和设备、工具是否齐全并符合技术要求等;
测试评审是指在测试完成后,评审测试过程和测试结果的有效性,确定是否达到测试目的,主要对测试记录和测试报告进行评审。