测试的基本理论和方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【转】浅谈软件测试的基本理论与方法
随着软件应用领域越来越广泛,其质量的优劣也日益受到人们的重视。质量保证能力的强弱直接影响着软件业的发展与生存。软件测试是一个成熟软件企业的重要组成部分,它是软件生命周期中一项非常重要且非常复杂的工作,对软件可靠性保证具有极其重要的意义。
在软件的测试过程中,应该应用各种测试方法,以保证产品有一个较高较稳定的质量。根据不同的生产过程进行不同的测试,包括黑盒测试、cc霜白盒测试、携程网酒店预定功能测试、系统测试、压力测试、安装/卸载测试、兼容性测试、α 测试、β 测试等。
软件测试是整个软件开发过程中一段非常重要的阶段,在测试过程中如能按照测试的基本过程来进行测试,软件的质量能有所保障。
我做了一个半月的测试,就现在的感觉而言,其实做测试必开发却是是轻松了一点,不是那么的累脑子,但是测试也是很深的一门学问,针对于不同的公司,产品不一样,所要求的测试的技术也不一样。有的公司测试很轻松,但是有的公司测试也是经常加班熬通宵的
1软件测试基础
信息技术的飞速发展,使软件产品应用到社会的各个领域,软件产品的质量自然成为人们共同关注的焦点。不论软件的生产者还是软件的使用者,均生存在竞争的环境中,软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局。用户为了保证自己业务的顺利完成,当然希看选用优质的软件。质量不佳的软件产品不仅会使开发商的维护难度和用户的使用本钱大幅增加,还可能产生其他的责任风险,造成公司信誉下降,继而冲击股票市场。在一些关键应用(如民航订票系统、银行结算系统、证券交易系统、自动飞行控制软件、军事防御、核电站安全控制系统等) 中使用质量有问题的软件,还可能造成灾难性的后果。
软件危机曾经是软件界甚至整个计算机界最热门的话题。为了解决这场危机,软件从业职员、专家和学者做出了大量的努力。现在人们已经逐步熟悉到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在本钱、进度和质量上的失控。有错是软件的属性,而且是无法改变的,由于软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于我们如何避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。
1.1软件测试的概念
软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输进数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。
软件测试就是在软件投进运行前,对软件需求分析、设计规格说明和编码的终极复审,是软件质量保证的关键步骤。
1.2软件测试的目的
基于不同的态度,存在着两种完全不同的测试目的。1.从用户的角度出发,普遍希望通过软件测试,暴露软件中隐躲的错误和缺陷,以考虑是否可接受该产品。
2.从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
2测试用例
2.1测试用例的概念
测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。
内容包括:测试目标、测试环境、输进数据、测试步骤、预期结果、测试脚本等,并形成文档。
2.2测试用例的分类
根据测试过程中具体涉及到问题类型及测试需求,可将测试用例分为如下:
1.功能性测试用例
2.界面测试用例:适用于所有测试阶段中的界面测试
3.数据处理测试用例:适用于所有测试阶段中的数据处理测试
4.流程测试用例:适用于所有流程性的测试
5.安装测试用例:适用于所有安装测试
2.3测试用例的治理
1.编写用例:测试工程师根据需求规约、概要设计、具体设计等文档编写测试用例。
2.用例评审:原则上用例象程序一样,要经过多次的修改才可以通过,实际工作中通常进行一次。
3.用例修改:评审结束后,您需要根据评审意见进行修改,修改后通常不再进行评审。
4.使用用例:执行测试用例,并记录到测试用例执行报告中。
5.用例升级/维护:随着软件产品不断修改、升级,对应的用例也需要升级维护。针对同一个项目,可以根据需求的变更不断进行维护;假如是产品,用例的维护更加重要,要达到用例和产品的版本逐一对应。
2.4测试用例的编制及使用
1设计测试用例
每个具体测试用例都将包括下列具体信息:编制人、审定人、编制日期、版本、用例类型、设计说明书编号、用例编号、用例名称、输进说明、期望结果(含判定标准)、环境要求、备注等。
1. “测试用例名称”可以是不涉及到具体模块的功能描述,如“日期格式”,“非空检验”等。
2. “输进说明”是功能模块接受的数据或各种操纵描述,如“输进非法的日期格式”等。
3. “期望结果”是模块接受输进后应有的正常输出描述,如“提示用户修改”等,期看结果应与输进说明逐一对应。
4. 测试用例用于指导执行操纵,但某些意外操纵也可导致程序错误,这些操纵称为非预期性操纵,可以先有执行报告,再后补用例。
5. 测试用例的设计应考虑通用性和简洁明了。
测试需求
软件测试需求是开发测试用例的依据,测试需求分解的越具体精准,表明对所测软件的了解越深,对所要进行的任务内容就越清楚,对测试用例的设计质量的帮助越大。具体的测试需求还是衡量测试覆盖率的重要指标,测试需求是计算测试覆盖的分母,没有具体的测试需求就无法有效的进行测试覆盖计算。
软件测试执行阶段是由一系列不同的测试类型的执行过程组成的,每种测试类型都有其具体的测试目标和支持技术,每种测试类型都只侧重于对测试目标的一个或多个特征或属性进行测试,正确的测试类型可以给软件测试带事半功倍的效果。
现有的软件测试分析技术不太成熟,对测试需求和测试类型的分析,所采用的方法主要是根据经验进行收集、整理,该方法依靠于测试设计职员的测试经验,由此方法得出的测试需求、测试类型往往导致测试用例设计不充分,测试覆盖度低,测试目的性不强,轻易遗漏等缺陷。
可见,如何对测试需求进行细致的整理分析,明确测试执行时的测试类型,是一个亟待解决的题目。
有鉴于此,本方法的主要目的在于提供一种软件测试需求的分析方法,可以方便、详尽的获取测试需求,明确测试执行时需要实施的测试类型。
1测试需求分析的方法
a)列出软件开发需求中具有可测试性的开发需求;
b)对步骤a)列出的每一条开发需求,形成可测试的分层描述的测试需求;
c)对步骤b)形成的每一条测试需求,从GB/T .1-2006《软件工程产品质量第