宁华 刘煜
摘要:从20世纪40年代,电子计算机问世以来,人们对其的依赖也越来越强。软件技术发展至今,软件测试技术已经成为了软件开发过程中不可缺少的一部分。随着软件开发难度日益提高、团队规模日益壮大、开发过程日益细致,软件测试的重要性也日益突出。测试技术是软件开发中的重要环节,是软件质量的重要保障手段,可以大大减少软件缺陷,提高軟件质量和软件的可信度。
关键词:软件测试;功能测试;性能测试
1 前言
从20世纪60年代,为了证明软件的正确性而产生了软件测试,从初期的程序调试到现在的各类测试。软件测试技术也在越来越完善,越来越规范。
1972年举行了首届软件测试正式会议;1979年,正式对软件测试进行了定义;1983年,测试是对软件质量的度量;1996年,提出测试能力成熟度TCMM;从此,软件测试工具盛行起来,软件测试进入了高速发展,不断完善的新进程。
2 软件测试
2.1 软疾测试定义
所谓测试,就是以检验产品是否满足需求。而软件测试,是为了发现软件(产品)的缺陷而运行软件(产品)的活动。
软件测试发展至今,针对其定义出现过很多的版本。其中较标准的定义是:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估的活动。
IEEE标准定义:使用人工或自动的手段来运行或测定某个系统的过程,其目的在于检验;它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
G.J.Myers给出的定义:“程序测试是为了发现错误而执行程序的过程”。
要完整地理解软件测试,就要从不同方面和视角去辨证地审视软件测试。概括而言,软件测试就是贯穿整个软件开发生命周期、对软件产品进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中存在的各种问题和与用户需求、预先定义不一致的地方。
2.2 软件刚试目的
软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。它是软件生命周期中一项非常重要的工作,对软件可靠性保证具有极其重要的意义。在目前形式化方法和程序正确性证明技术还无望成为实用性方法的情况下,软件测试在将来相当一段时间内仍然是软件可靠性保证的有效方法。
2.3 软件测试分类
软件缺陷在开发前期发现比在开发后期发现节约90%成本;软件缺陷在推向市场前发现比在推出后发现节约90%成本。因此软件的缺陷应该尽早发现。但不是所有的软件都要进行任何类型的软件测试的,可以根据产品的具体情况进行不同类型的测试,测试的分类如下:
按运行状态分:动态测试、静态测试;
按执行过程分:手工测试、自动化测试;
按内容分:功能测试、性能测试、兼容性测试,Ul测试、文档测试等;
按测试用例技术分:黑盒测试、白盒测试、灰盒测试;
按开发阶段分:单元测试、集成测试、系统测试、验收测试;
按组织方分:Alpha测试、Beta测试、第三方测试;
其他测试方法:随机测试、冒烟测试、回归测试、恢复测试等; 藏鑫粼鼎擎裂过程中管理,测试工作可以分为如下的5个阶段:
(1)计划阶段:编写测试计划,制定整体测试方案。
(2)设计阶段:主要编写测试用例。
(3)执行阶段:搭建测试环境,执行测试、记录跟踪测试bug.
(4)评估阶段:测试报告,对整体过程做总结,对质量评估。
(5)验收阶段:完成用户操作手册等,保证每一步输出的有效。
2.5 软件测试工具
软件测试工具是通过一些工具能够使软件的一些简单问题直观的显示在读者的面前,这样能使测试人员更好的找出软件错误的所在。软件测试工具分为自动化软件测试工具和测试管理工具。具体工具如下:
软件测试管理工具:Bugfree、TestLink、禅道等。
软件功能自动化测试工具:Watir、Selenium、MaxQ、Weblnject、QTP等。
软件性能目动化测试工具:Jmeter、ODenSTA、TPTEST、LoadRunner等。
其他测试工具与框架:Rational Functional Tester、WinRunner、Robot等。
使用较为广泛的工具有:
(1)禅道:功能比较全面的测试管理工具,功能涵盖软件研发的全部生命周期,为软件测试和产品研发提供一体化的解决方案。是一款优秀的国产开源测试管理工具。
(2)Quality Center:基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。
(3)QuiekTest Professional:用于创建功能和回归测试。
(4)LoadRunner:预测系统行为和性能的负载测试工具。
3 结束语
在具体工作过程中,测试工程师的工作是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试用例,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。对软件测试工程师而言,必须具有高度的工作责任心和自信心。任何严格的测试必须是一种实事求是的测试,因为它关系到一个产品的质量问题,而测试工程师则是产品出交付前的把关人,所以,没有专业的技术水准是无法胜任这项工作的。
参考文献
[1]王轶辰,软件测试从入门到精通.
[2]辛庆,基于Selenium的Web UI自动化测试[D]2012.
[3]杜丽洁,基于QTP自动化3111试框架的开发与应用[D],2012.