论文部分内容阅读
摘要:软件测试作为软件工程类项目实施中必不可少的环节,却通常被减弱或者忽略。本文主要根据笔者自身从事测试工作的经验,就测试工作的作用,软件公司内部测试机制的建立以及实施方法、常见问题等进行介绍。
关键词:软件测试,质量管理,软件工程
中图分类号:O213.1 文献标识码:A 文章编号:
1 软件测试类别及作用简介
软件测试按作用分类,主要可以分为功能测试,性能测试,安全测试等,按测试阶段划分则可分为单元测试,集成测试,系统测试,验收测试,回归测试等。按是否涉及源代码测试又可分为黑盒测试,白盒测试。
下面按作用介绍几类常见的测试:
功能测试:主要按照系统功能说明书软件设计书等资料,验证软件每个功能的正确性,易用性。主要目的是保证软件功能可用,用户使用过程中有一个良好的使用体验。
性能测试:是一种非功能性测试,主要测试软件产品运行的各项性能指标是否达标。如系统反应速度,系统负载能力,系统使用过程中对计算机各类资源的占用情况等,主要是测试系统的健壮程度。最常见的是测试软件功能的反应速度。同样对保障用户使用体验有重要作用。通常使用自动化工具得到测试系统的性能指标,笔者使用的工具为Loadrunner(LR)。
安全性测试:这是经常被忽视的测试方式。很多用户软件使用安全意识淡薄,在用户未提出安全测试的情况下,有些软件开发公司为节约成本也会刻意回避这个问题。软件安全与否并不直接影响用户的使用体验。软件安全测试主要从数据访问,权限管理,防攻击能力,破坏性测试等几个方面测试软件系统的安全。政府部门所使用的软件系统通常涉密,这样的项目进行安全测试很有必要。
2 软件测试与质量管理关系
任何项目实施都需要有质量管理,否则工程产品将无法使用。软件工程更是如此,在软件工程中软件测试是软件质量管理的重要手段也是质量管理流程的重要一环。其实不管软件测试怎样分类,具体的流程怎样操作,软件测试的目的就是为了保障软件的质量。从公司组织层面项目质量管理从制度上对测试流程的完整性加以保障,从项目实施层面,项目内部的质量管理应为软件产品即将的测试做出准备提供便利。
在多种软件工程管理模型中,都将软件测试做为单独的过程纳入到管理体中来,比如CMMI软件成熟度模型,是将软件测试放在产品验证过程域中的,同产评审一起,强调软件测试对产品验证作用。
3 测试组织的建立
人们经常有开发做的较弱的人做测试的印象。这是错误的,主要是由很多软件公司不愿意调拨开发水平高的人在测试上造成的。其实测试人员作为公司于客户之间软件质量最后的守门员,不仅要保证产品功能正确,还要从用户角度对软件产品提出使用建议,根据经验预测用户可能的使用方式以及评价,同时还需同项目经理,开发人员沟通。因此不仅要具备测试理论知识,还需要具备项目经验,熟悉產品业务,了解项目各环节工作,同时具备编码,操作系统,数据库,计算机硬件等方面的有关知识,恰是要求知识构成最全面的岗位。
通常建议测试组应包括至少一名经验丰富的人员。测试组的人数根据公司开发人员总数,公司产品的成熟度确定。如果公司产品已经较为成熟,有固定框架的话,测试人员数量可维持在开发人员总数的十分之一,否则应大于这个数量。
测试组可由测试组长,或者叫测试经理带领几名测试人员组成。测试经理负责测试计划,测试过程监控,测试产品验证等工作。测试人员按要求开展测试工作。
4 测试流程简介
(1)测试工作启动阶段,项目经理提交需求规格说明书和项目计划。测试经理根据提交文档编写测试计划。需求内应包括用户方确认的系统使用环境。
(2)工程管理部对测试计划进行评审。评审通过进入测试流程。不通过则将文档返回项目经理根据项目情况重新计划,直至通过。
(3)系统经过项目经理检查,满足送测要求时,项目经理填写测试申请单,提交概要设计说明书、详细设计说明书和系统demo,澄清测试需求,明确测试环境。其中demo非必须提交。
(4)项目经理指派人员同测试组建立专门的信息交流接口,协调测试过程中的有关事宜。
(5)测试人员执行测试。
(6)记录测试过程中出现的系统缺陷和问题。填写问题跟踪记录表,并交由项目经理确认。
(7)工程管理部根据测试结果决定系统是否系统具备发布条件。如果不具备发布条件,则将督促开发人员完善系统并重新执行测试流程。
(8)测试经理编写测试报告并总结。测试活动结束。
流程如图:
以上测试流程主要按瀑布开发模型内的测试流程描述,如果选用别的开发方法,则可以根据情况将流程简化后加入开发中的每次迭代内。
5 结束语
测试工作是保障软件产品质量的重要手段,本文大多内容来自笔者工作经验的总结,仅供参考,有失偏驳之处,还请多加指正。
参考资料
[1] 佩腾 软件测试 机械工业出版社
[2] Paul Ammann,Jeff Offutt等, 郁莲(译者)软件测试基础 机械工业出版社
[3] Elfriede Dustin, Thom Garrett等, 余昭辉 (译者) 自动化软件测试实施指南 机械工业出版社
关键词:软件测试,质量管理,软件工程
中图分类号:O213.1 文献标识码:A 文章编号:
1 软件测试类别及作用简介
软件测试按作用分类,主要可以分为功能测试,性能测试,安全测试等,按测试阶段划分则可分为单元测试,集成测试,系统测试,验收测试,回归测试等。按是否涉及源代码测试又可分为黑盒测试,白盒测试。
下面按作用介绍几类常见的测试:
功能测试:主要按照系统功能说明书软件设计书等资料,验证软件每个功能的正确性,易用性。主要目的是保证软件功能可用,用户使用过程中有一个良好的使用体验。
性能测试:是一种非功能性测试,主要测试软件产品运行的各项性能指标是否达标。如系统反应速度,系统负载能力,系统使用过程中对计算机各类资源的占用情况等,主要是测试系统的健壮程度。最常见的是测试软件功能的反应速度。同样对保障用户使用体验有重要作用。通常使用自动化工具得到测试系统的性能指标,笔者使用的工具为Loadrunner(LR)。
安全性测试:这是经常被忽视的测试方式。很多用户软件使用安全意识淡薄,在用户未提出安全测试的情况下,有些软件开发公司为节约成本也会刻意回避这个问题。软件安全与否并不直接影响用户的使用体验。软件安全测试主要从数据访问,权限管理,防攻击能力,破坏性测试等几个方面测试软件系统的安全。政府部门所使用的软件系统通常涉密,这样的项目进行安全测试很有必要。
2 软件测试与质量管理关系
任何项目实施都需要有质量管理,否则工程产品将无法使用。软件工程更是如此,在软件工程中软件测试是软件质量管理的重要手段也是质量管理流程的重要一环。其实不管软件测试怎样分类,具体的流程怎样操作,软件测试的目的就是为了保障软件的质量。从公司组织层面项目质量管理从制度上对测试流程的完整性加以保障,从项目实施层面,项目内部的质量管理应为软件产品即将的测试做出准备提供便利。
在多种软件工程管理模型中,都将软件测试做为单独的过程纳入到管理体中来,比如CMMI软件成熟度模型,是将软件测试放在产品验证过程域中的,同产评审一起,强调软件测试对产品验证作用。
3 测试组织的建立
人们经常有开发做的较弱的人做测试的印象。这是错误的,主要是由很多软件公司不愿意调拨开发水平高的人在测试上造成的。其实测试人员作为公司于客户之间软件质量最后的守门员,不仅要保证产品功能正确,还要从用户角度对软件产品提出使用建议,根据经验预测用户可能的使用方式以及评价,同时还需同项目经理,开发人员沟通。因此不仅要具备测试理论知识,还需要具备项目经验,熟悉產品业务,了解项目各环节工作,同时具备编码,操作系统,数据库,计算机硬件等方面的有关知识,恰是要求知识构成最全面的岗位。
通常建议测试组应包括至少一名经验丰富的人员。测试组的人数根据公司开发人员总数,公司产品的成熟度确定。如果公司产品已经较为成熟,有固定框架的话,测试人员数量可维持在开发人员总数的十分之一,否则应大于这个数量。
测试组可由测试组长,或者叫测试经理带领几名测试人员组成。测试经理负责测试计划,测试过程监控,测试产品验证等工作。测试人员按要求开展测试工作。
4 测试流程简介
(1)测试工作启动阶段,项目经理提交需求规格说明书和项目计划。测试经理根据提交文档编写测试计划。需求内应包括用户方确认的系统使用环境。
(2)工程管理部对测试计划进行评审。评审通过进入测试流程。不通过则将文档返回项目经理根据项目情况重新计划,直至通过。
(3)系统经过项目经理检查,满足送测要求时,项目经理填写测试申请单,提交概要设计说明书、详细设计说明书和系统demo,澄清测试需求,明确测试环境。其中demo非必须提交。
(4)项目经理指派人员同测试组建立专门的信息交流接口,协调测试过程中的有关事宜。
(5)测试人员执行测试。
(6)记录测试过程中出现的系统缺陷和问题。填写问题跟踪记录表,并交由项目经理确认。
(7)工程管理部根据测试结果决定系统是否系统具备发布条件。如果不具备发布条件,则将督促开发人员完善系统并重新执行测试流程。
(8)测试经理编写测试报告并总结。测试活动结束。
流程如图:
以上测试流程主要按瀑布开发模型内的测试流程描述,如果选用别的开发方法,则可以根据情况将流程简化后加入开发中的每次迭代内。
5 结束语
测试工作是保障软件产品质量的重要手段,本文大多内容来自笔者工作经验的总结,仅供参考,有失偏驳之处,还请多加指正。
参考资料
[1] 佩腾 软件测试 机械工业出版社
[2] Paul Ammann,Jeff Offutt等, 郁莲(译者)软件测试基础 机械工业出版社
[3] Elfriede Dustin, Thom Garrett等, 余昭辉 (译者) 自动化软件测试实施指南 机械工业出版社