软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。以下是小编精心准备的软件工程技术检测论文,大家可以参考以下内容哦!
摘要:软件工程的目的是开发出具有可修改性、可靠性、有效性、可适应性、可移植性、可重用软件工程性、可追踪性和可互操作性并且满足用户需求的软件产品。但是为了保证软件产品的质量和开发效率,同时也为了减少维护的困难。我们一定要重视软件测试。本文就软件工程测试进行一个探讨分析。
关键词:软件工程 软件测试 产品 质量 测试工具 需求
在软件测试日新月异发展的今天,自动化测试正在成为软件测试领域里的一个非常瞩目的趋势和潮流,软件测试在软件工程中是极其重要的过程,在软件测试组织中,对测试过程中的知识进行有效的管理,是提升组织整体测试水平的关键。一个重要的研究问题是怎样将知识管理过程与软件测试过程有效集成,从而促进知识资产在软件测试组织中的传播与重用。首先我们来了解一下软件测试的概念,目前软件测试的定义比较多,如果想要找一个比较清晰的定义:软件测试主要是为了发现错误而执行程序的过程,也就是说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。所以,我们知道,软件测试其实是为了发现程序中的错误,是一个找错的过程。
同时,我们知道,软件测试是一个知识密集型的活动,软件测试人员的工作不仅仅是依据测试计划对软件进行测试,与测试相关的知识、技巧、经验和灵感在测试过程中有着重要的作用,但是随着软件技术的快速发展,不断出现的新的待测软件产品,常使软件测试人员感到压力重重,力不从心,他们有探寻新的测试知识和技术的紧迫需求。而软件测试的自动化的出现为我们提供了一种新思路和解决问题的新方法,下面对软件测试几个方面进行探讨。
1 软件测试的目标
1.1 软件测试员的基本目标是发现软件缺陷。这个是软件测试的终极目标,之所以再次强调。是因为有时软件开发团队进行软件测试只是为了证实软件不存在错误的过程,证明该软件满足了用户的要求,而不是找缺陷。在这样的情况下,测试人员也就缺乏不懈努力发现缺陷的探索精神和热情,不会希望在软件测试中暴露软件中隐藏的错误和缺陷。所以做好测试的首要条件是明确软件测试员的基本目标是发现软件缺陷。
1.2 软件测试员追求的是尽可能早地找出软件缺陷。根据调查和实践,软件的修复费用,随着时间的推移,将数十倍的增长,所以软件测试员应尽可能早地找出软件缺陷。这样,在测试中,就不要选择那些导致程序失效概率小的测试用例,因为这样的测试对于完善和提高软件质量是没有任何价值的。同时,应当把软件测试贯穿到整个软件开发的过程中,因为很多预料不到的错误,往往只在特定的环境下才会暴露出来,不然一些隐藏的错误和问题查不出来,就可能会出现在运行阶段中去。
1.3 软件测试人员必需确保找出的软件缺陷得以关闭。在软件工程测试的过程中,主要目的是发现至今未发现的错误,从用户的角度出发,替用户着想,将更深层次可能的问题都测试出来。但是,因为各种原因并不是每个软件缺陷都是必须要修复的。如:没有足够时间、风险太大等。但是,测试人员必需确保找出的软件缺陷得以关闭, 因为软件测试的目标就是揭示不同类型的错误,并且修正它,使得用户能够顺利使用软件。
2 软件测试的基本原则
2.1 软件开发人员应当避免测试自己的程序
软件测试时一项复杂、富有创造性和高度挑战性的工作,在软件测试中,如果让开发人员来测试自己的代码,那是一件非常不妥当的事情。因为开发和测试生来就是不同的活动。所以,不管是程序员还是开发团队都应当避免测试自己的程序或者本团队开发的功能模块。如果有条件的话,应当由独立于开发组和客户的第三方测试组或测试机构来进行软件测试。因为人类的活动具有高度的目的性,建立适当的目标具有重要的心理作用。如果我们的目的是要证明程序中没有错误,那我们就会不自觉地朝这个方向去做;也就是说,我们会倾向于挑选那些使程序出错的可能性较小的测试数据。或者由于程序员对问题的叙说和说明有误解而产生的.错误,这种情况让程序员测试自己的程序是不可能发现问题的。
2.2 在软件测试中,确定预期输出或结果是测试必要的,不可缺少的一部分,如果事先无法肯定预期的测试结果,往往会把看起来似是而非的结果当成正确的。同时还要注意各种输入条件,无论合理与否。因为在实际使用中各种情况都有。
2.3 一定严格执行软件测试计划,禁止软件测试的随意性,这样就可以避免软件交付后出现问题,这样也可以改善测试的效率和有效性。
2.4 软件测试并不等于程序测试,软件测试贯穿于软件定义和开发的整个过程,因此,需求分析、概要设计和程序编码等各阶段所得到的文档都是软件测试的对象。
2.5 必须检查每一个测试结果,事实上在最终发现的错误中,有相当一部分在前边的测试中已经显露了出来,但是由于人们没有认真检查先前的测试结果而遗漏了。
2.6 为了提高对程序重新测试的效率,尤其是在对程序作了修改后,为了减少测试工作量和成本,除了对真正没有用的程序外,一定不要扔掉测试用例,测试用例代表了一定的价值投资。
3 软件测试自动化工具的选择
随着软件规模不断扩大,软件的复杂度不断加大,采用手工测试软件已经不能适应要求。采用电子自动化测试技术对于人工而言,能更好地保证测试的准确度,而且大大提高了测试的效率,加快软件的开发速度。因此,软件自动化测试应用越来越广泛,目前,自动测试是软件测试的一个重要组成部分,它能完成许多手工测试无法实现或难以实现的测试,从而提高软件质量,节省经费,缩短软件发布周期。在自动化测试中,首先我们要根据要求来合理选择测试工具,测试工具的价格在开发资金中占有较高的比例,从成本角度必须考虑,而且它参加了测试的大部分活动,影响测试的准确性和效率。根据测试方法不同,测试工具有黑盒和白盒两种;而从测试目的和对象的角度区分亦可分为:单元测试、性能测试、功能测试、负载测试等。
在测试中,对于测试工具的选择,并非测试功能越强大越好,有一个前提,那就是必须适用,而且必须满足兼容性,能够支持不同的运行平台,能对不同的脚本进行测试,同时对待测试的脚本具有追踪报道、错误定位的功能;再次,拥有测试结果总结功能,能够将测试结果以图表的形式展示出来,相对于一般的结果表述形式,图标表示更直观。更容易让人理解、信服,可以及时对测试结果进行分析。一般还要从功能、价格、测试工具的集成能力、测试工具的易用性、侧重点、技术支持等多方面考虑。
4 结束语
软件测试有其自身的特点。软件测试的目的不是为了仅仅找出错误,而是通过它发现错误、分析错误,找到错误的分布特征和规律,从而帮助项目管理人员发现当前所采用的软件开发过程的缺陷,以便改进;同时也能够通过设计有针对性的检测方法,改善软件测试的有效性。即使测试没有发现任何错误,也是十分有价值的,因为完整的测试不仅可以给软件质量进行一个正确的评价,而且是提高软件质量的重要方法之一。并以此来最终提高软件产品的质量和企业的经济效益,加强软件企业的核心竞争力。
参考文献:
[1]史济民.软件工程原理方法与应用[M].北京:高等教育出版社,2001.
[2]张海藩.软件工程导论[M].北京:清华大学出版社,1997.
[3]佘健明,等编著.工程咨询概论.中国计划出版社,2007,11转
[4]Sam Guckenheimer.The Revolution in Software Testing. Rational Software.2002.
[5]James Newkirk Robot C.Martin. Extreme Programming in practice中文版.人民邮电出版,2002年6月出版.
[6] Ron Patton 著.软件测试.周予槟,姚静等译.机械工业出版社,2002.
[7]崔启亮著.国际化软件测试.电子工业出版社.2006.4.
[8]孙建.软件测试工具的研究与建立.浙江大学,2006.
[9]Ann Scblosser.The experience and Web site success[J].The E_business Review,2003,41(6):20.