软件测试简述与展望[5] 软件测试
5.软件测试过程
为了讨论方便,首先讨论一些概念:单元测试是在测试过程中的最小粒度,它在执行的过程中紧密的依照程序框架对产品的函数和模块进行测试,包含入库和出口的参数,输入和输出信息,错误处理信息,部分边界数值测试。
简而言之,就是拿一个函数出来,加上驱动模块,桩模块,让它能够运行起来,然后设计一些用例测试其内部的控制点(如:条件判断点,循环点,选择分支点等)。驱动模块是模拟调用被测函数的函数。桩函数是模拟当前测试函数所调用的函数。
集成测试是在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。
系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方。系统测试的测试用例应根据需求分析说明书来设计,并在实际使用环境下来运行。系统测试的内容极其广泛,包括功能测试、协议测试、性能测试、压力测试、容量测试等等。
验收测试的测试重点主要是产品是否按照需求开发的,而不是针对功能进行的测试。所以验收测试基本上不需要多少专业水平,也可以是承包商找到使用该产品的用户,来体验该产品是否能够满足使用要求。这样一来,使得双方可以有一个共同的平台,避免商业矛盾的产生。
验收测试的测试手段目前来说还是靠用户体验。对照合同的需求进行测试,是第三方按照双方达成的共识来跟踪和测试软件是否能达成的需求。我们将软件测试步骤分为五步:
a.文档代码测试采用静态测试方法对软件文档和代码进行检查和审阅,此测试应贯穿于整个开发生命周期中,尤其在开发早期,其作用显著。
b.单元测试对重要的控制流和数据流进行测试,以发现单元模块内程序的错误。此阶段测试大多采用白盒测试。
c.集成测试是在系统集成过程中所做的测试工作,检验与软件设计相关的程序结构问题,一般采用白盒测试与黑盒测试相结合的方法。
d.确认测试根据软件需求中定义的全部功能和性能要求,检验所开发的软件能否满足,通常采用黑盒测试。e.系统测试检验软件与系统其他部分(如硬件、数据库等)协调工作状况,通常采用黑盒测试。