测试项目 及知识
程序测试是为了发现错误而执行的过程
- 从软件测试的实践过程看:单元测试、集成测试、确认测试、系统测试、验收测试……
- 从软件测试的方法策略看:白盒测试、黑盒测试、灰盒测试……
- 从软件测试的测试视角看:功能测试、性能测试、兼容性测试、安全测试、探索性测试……
- 从软件测试的技术程度看:手工测试、自动化测试、测试开发……
软件测试的实践过程,测试的阶段
单元测试:
最微小规模的测试,用以测试某个功能或代码块。典型的单元测试应由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识
集成测试:
也叫组装测试或联合测试,是在单元测试的基础上,将所有模块按照设计要求集成为系统或子系统,并进行测试。 如果是集成为子系统,也可以叫做部件测试。
制定集成测试计划的时候,应该考虑如下因素:
采用何种系统集成方法来进行集成测试。
集成测试过程中连接各个模块的顺序。
模块代码编制和测试进度是否与集成测试的顺序一致。
测试过程中是否需要专门的硬件设备。
列出各个模块的编制、测试计划表,标明每个模块单元测试完成的日期、首次集成测试的日期,需要的测试用例等。同时考虑测试所需特殊设备的日期情况。留出时间余量。
集成测试的目的
检测穿越模块接口的数据是否丢失;
一个模块功能的实现可能破坏了另一个模块的功能;
子功能组合之后不一定可以达到预期的功能;
全局数据可能被异常修改;
单个模块的误差被放大到了不能接受的地步。
可以根据集成测试时组装模块的方式把集成测试方案分成两大类:
一次性集成测试方式
增殖式集成测试方式
自顶向下方式
自底向上方式
混合增殖方式
1、自顶向下
的集成是从主控模块(主程序,即根结点)开始,按照系统程序结构,沿着控制层次从上而下,逐渐将各模块组装起来。在从上向下的集成测试过程中,需对那些未经集成的模块开发
桩模块
。在集成过程中,可以采用宽度优先或深度优先的策略向下推进。
优点:较早地验证了主要控制和判断点;
按深度优先可以首先实现和验证一个完整的软件功能;
功能较早证实,带来信心;
只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;
底层组件测试不充分。
适用于
产品控制结构比较清晰和稳定;
高层接口变化较小;
底层接口未定义或经常可能被修改;
产口控制组件具有较大的技术风险,需要尽早被验证;
希望尽早能看到产品的系统功能行为。
2、自底向上的集成是从最底层模块(即叶子结点)开始,按照调用图的结构,从下而上,逐层将各模块组装起来。在从下而上的集成测试环境中,需对那些未经集成测试的模块开发驱动模块。
优点:对底层组件行为较早验证;
工作最初可以并行集成,比自顶向下效率高;
减少了桩的工作量;
支持故障隔离。
缺点:驱动的开发工作量大;
对高层的验证被推迟,设计上的错误不能被及时发现。
适用于
底层接口比较稳定;
高层接口变化比较频繁;
底层组件较早被完成。
确认测试
确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般有第三方测试机构进行。