您好,欢迎来到客趣旅游网。
搜索
您的当前位置:首页软件测试浅谈

软件测试浅谈

来源:客趣旅游网
维普资讯 http://www.cqvip.com 垫 ! Q: Science and Technology Consulting Herald T技术 软件测试浅谈 丁斌 (东北大学秦皇岛分校管理系 河北秦皇岛066004) 摘要:软件测试是软件质量控制和质量管理的关键环节,是软件开发企业生存与发展的核心。本文总结了软件测试中的一些基本原则 和软件测试的技术方法,阐述了软件测试自动化的意义及其局限性。 关键词:软件缺陷 黑盒测试 白盒测试 测试自动化 中图分类号:TP319 文献标识码:A 文章编号:1673—0534(2007)10(c)~0022—01 1引言 近年来,软件产品的质量控制与质量管理 入与输出之间的对应关系)进行分析。动态 工具为软件测试工程师服务。 测试根据测试时的方法不同,又分为黑盒测试 测试自动化的优点是能够很快、很广泛 越来越受到重视,并逐渐成为企业生存与发展 与白盒测试两类。 的核心。随着软件工业发展到了与其他传统 3.2.1黑盒测试 工业相当的规模,软件测试的必要性已经完全 黑盒测试又称为功能测试或数据驱动测 为软件开发的决策人士所接收。在许多IT企 试。该方法把被测试对象看成一个黑盒子,测 业中,软件测试并非只担当“挑错”的角色,其 试人员完全不考虑程序的内部结构和处理过 重要性已不亚于软件的开发环节。 程,只在软件的界面上进行测试,用来证实软 件功能的可操作性,检查程序是否满足功能要 2软件测试目的和原则 求或遗漏了功能,程序是否能正确地接收输入 软件开发和使用的历史已经留给了人们 数据并产生正确的输出信息,数据结构是否错 太多由于软件缺陷而导致的巨大财力、物力 误或外部数据库访问是否错误,界面和性能是 损失的经验教训。这些经验教训迫使测试工 否错误,初始化和终止是否错误。黑盒测试方 程师们必须采取更有效的检测措施来检测未 法主要有等价类划分、边界值分析、错误推测 发现的隐藏的软件缺陷。可以说软件测试是 等,它主要用于软件系统测试阶段。 贯穿软件开发过程的软件质量保证诸多活动 3.2.2白盒测试 中最关键的步骤。 白盒测试也称结构测试或逻辑驱动测试。 软件测试的目的是找出软件中潜在的各 它是在已知程序内部结构和处理过程的前提 种错误和缺陷。为了设计出有效的测试方案, 下,通过测试来检测程序中的每条路径是否按 需要深入理解并正确运用指导软件测试的基 预定要求正常运行。该方法把被测试对象看 本原则: 成一个透明的白盒子,测试人员完全知道程序 (1)不完全原则:测试是不完全的,穷举测 的内部结构和处理算法,并按照程序内部的逻 试是不可能的。 辑测试程序,对程序中尽可能多的逻辑路径进 (2)免疫性原则:软件缺陷具有免疫性,测 行测试,在所有的点检验内部控制结构和数据 试人员完成的测试越多,其免疫能力就越强, 结构是否和预期相同。白盒测试方法主要有 寻找更多软件缺陷也就更加困难。 逻辑覆盖、基本路径测试等,它主要用于验证 (3)缺陷繁殖原则:即没有任何一个软件没 测试的充分性。 有Bug,也不可能找出并修复所有的Bug。在 3.3测试步骤 修复了旧的Bug的同时,往往又会产生新的 从测试的工程角度来看,软件测试上是由 Bug。根据微软的统计,每修复三到四个Bug 一系列的不同测试步骤所组成,这些软件测试 一般就会产生一个新的Bug。 的步骤分为:单元测试、组装测试(集成测试)、 (4)80/20原则:80%的软件缺陷存在于软 确认测试和系统测试。软件开发的过程是自 件20%的空间里,软件缺陷具有空间聚集性。 顶向下的,测试则正好相反,以上这些过程就 是自底向上,逐步集成的。 3软件测试的方法和步骤 软件测试方法研究以最少的测试数据来 4软件测试自动化 测试出更多的程序中潜在错误。如何测试得 软件测试的工作量很大,据统计,测试时 彻底,如何设计测试数据是测试的关键技术。 间会占到总开发时间的40%,一些可靠性要求 根据测试过程是否需要运行被测试的程序,软 非常高的软件,测试时间甚至占到总开发时间 件测试方法一般分为静态测试方法与动态测 的60%。但是测试的许多操作是重复性的、非 试方法。 智力创造性的、需要细致注意力的工作,而计 3.1静态测试 算机就最适合于代替人类去完成这些任务。 静态测试是在对软件代码进行分析、检 测试自动化是通过开发和使用一些工具 查和测试时不实际运行被测试的程序,同时它 自动测试软件系统,适合于测试中重复而繁琐 还可以用于对各种软件文档进行测试。例如 的活动。随着软件测试工作日益得到重视,测 对需求文档的验证和确认,系统设计文档的检 试工具的应用已经成为普遍趋势。在微软,测 查以及程序代码的检查。 试人员分为两类,测试工具软件开发工程师 3.2动态测试 (Software Development Engineer in Test, 动态测试就是通过运行软件来检验软件 简称SDE/T)和软件测试工程师(Software 的动态行为和运行结果的正确性。动态测试 Test Engineer,简称STE)。其中测试工具软 的主要特征是计算机必须真正运行被测试的 件开发工程师主要负责开发自动测试工具和 程序,通过输入测试数据,对其运行情况(up输 利用测试工具对软件进行测试,或者开发测试 22科技咨询导报Science and Technology Consulting Herald 的查找Bug,可以使某些测试任务比手工测试 执行的效率高,并可以执行一些手工测试困难 或不可能做的测试,例如要测试一个网站的服 务器在50000个用户同时浏览一个Web页面 时会不会死机。一般来说,找到50000个测试 者同时打开一个网页是不现实的,即便能够做 到这一一点成本也非常高,但是通过测试工具则 很容易做到。此外,测试自动化对程序的新版 本可以自动运行已有的测试,特别是在频繁的 修改许多程序的环境中,一系列回归测试的开 销应是最小的;测试自动化能够更好地利用资 源,将繁琐的任务自动化,如重复输入相同的 测试输入,可以提高准确性和测试人员的积极 性,将测试技术人员解脱出来投入更多精力设 计更好的测试用例,甚至可以利用整夜或周末 空闲的机器执行自动测试;自动化测试具有一 致性和可重复性,对于自动重复的测试可以重 复多次相同的测试,如不同的硬件配置、使用 不同的操作系统或数据库等,从而获得测试的 一致性,这在手工测试中是很难保证的;自动 化使测试可以重用,而且软件经过自动测试 后,人们对其信任度会增加;一旦一系列测试 已经被自动化,则可以更快地重复执行,从而 缩短了测试时间,使软件更快地推向市场。总 而言之,测试自动化通过较少的开销可以获得 更彻底的测试,并提高产品的质量。 5结语 软件测试是一门新兴的学科,目前研究的 内容还不很深入,所涉及的只是测试数字 测 试函数等一些非常简单的问题,可以说软件测 试学科还不成熟,与此相对的却是人们对软件 测试的日益重视,社会对测试人员的需求越来 越大。此外,测试实际上可以覆盖到硬件,甚 至非计算机产品的测试,也可以相互借鉴。软 件测试是一种实践性很强的学科,软件测试学 的发展还有赖于大家的共同努力,促进其研究 的不断深入。 参考文献 【1】Roger S.Pressman著、梅宏译.软件工 程~实践者的研究方法(第5版)【M】.北京: 机械工业出版社,2002. 【2】齐治昌,谭庆平,宁洪.软件工程(第2版) 【M】.北京:高等教育出版社,2004. 【3l陈洪刚,林斌,张亚勤.软件开发的科学与 艺术【M】.北京:电子工业出版社,2002. 14I Robert CLllbertson Chris Brown Gary Cobb著.王海鹏译.快速测试【M1.北京: 人民邮电出版社,2004. 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- kqyc.cn 版权所有 赣ICP备2024042808号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务