测试的基本理论和方法

绝世美人儿
638次浏览
2021年02月21日 09:19
最佳经验
本文由作者推荐

-

2021年2月21日发(作者:三朝出入荣)


【转】浅谈软件测试的基本理论与方法




随着软件应用领域越来越广泛,


其质量的优劣也日益受到人们的重视 。


质量保证


能力的强弱直接影响着软件业的发展与生存。


软件测试是一个成熟软件企业的重


要组成部分,


它是软件生命周期中一项非常重要且非常复杂的工作,


对软件


可靠


性保证


具有极其重要的意义。




在软件的测试过程中,


应该应用各种 测试方法,


以保证产品有一个较高较稳定的


质量。根据不同的< /p>


生产过程


进行不同的测试,包括


黑盒测试 、


cc


霜白盒测试、


携程网酒店预定功 能测试、系统测试、压力测试、安装


/


卸载测试、兼容性测试、


α


测试、


β


测试







软件测 试是整个软件开发过程中一段非常重要的阶段,


在测试过程中如能按照测


试的


基本过程


来进行测试,软件的

质量


能有所保障。



< p>
我做了一个半月的测试,


就现在的感觉而言,


其实 做测试必开发却是是轻松了一


点,不是那么的累脑子,但是测试也是很深的一门学问,针 对于不同的公司,产


品不一样,


所要求的测试的技术也不一样。


有的公司测试很轻松,


但是有的公司


测 试也是经常加班熬通宵的




1


软件测试基础




信息技术的飞速发展,


使软件产品应 用到社会的各个领域,


软件产品的质量自然


成为人们共同关注的 焦点。


不论软件的生产者还是软件的使用者,


均生存在竞争


的环境中,


软件开发商为了占有市场,


必须 把


产品质量


作为企业的


重要目标


之一,


以免在激烈的竞争中被淘汰出局。


用户 为了保证自己业务的顺利完成,


当然希看


选用

< br>优质


的软件。


质量不佳的软件产品不仅会使开发商的


维护难度


和用户的


使用

本钱


大幅增加,


还可能产生其他的


责任风险



造成公司


信誉


下降,


继而冲击股票


市场。在一些

< br>关键应用



(


如民航订票系统、 银行结算系统、证券交易系统、自动


飞行控制软件、军事防御、核电站安全控制系统等< /p>


)


中使用质量有问题的软件,


还可能造 成


灾难性


的后果。




软件危机


曾经是软件界甚至整个计算 机界最热门的话题。


为了解决这场危机,


件从业职员、


专家和学者做出了大量的努力。


现在人们已经 逐步熟悉到所谓的软


件危机实际上仅是一种状况,


那就是软件中 有错误,


正是这些错误导致了软件开


发在


本钱



进度



质量


上的失控。有错是软件的属性,而且是无法改变的,由于


软件是由人来完成的,


所有由人做的工作都不会是完美无缺的。


问题在于我们如



避免


错误的


产生



消除


已经产生的


错误



使程序中的

错误密度


达到尽可能低的


程度。




1.1


软件测试的概念




软件测试是为了


发现错误

< p>


执行程序


的过程。


或者 说,


软件测试是根据软件开发


各阶段的


规格说明


和程序的


内部结构


而精心设计 一批测试用例


(即


输进数据


及其


预期的


输出结果


),并利用这些


测试用例去运行程序


,以发现程序错误的过程。




软件测试就是在软件投进运行前,


对 软件


需求分析



设计规格说明


和编码的终极


复审,是


软件质量保证

< p>
的关键步骤。




1.2


软件测试的目的




基于不同的态度,存在着


两种


完全不同的测试目的。


1.



用户


的角度出发,普遍


希望通过软件测试,

< p>
暴露


软件中隐躲的


错误和缺陷

,以考虑是否可接受该产品。


2.



软件开发者


的角度出发,则希望


测试


成为


表明


软件产品中


不存在错误


的过


程,验证该软件已正确地实现了


用户的要 求


,确立人们对


软件质量


< p>
信心





2


测试用例




2.1


测试用例的概念




测试用例


是指对一项特定的软件产品 进行


测试任务


的描述,


体现测试


方案、


方法、


技术



策略




内容


包括:


测试目标、


测试环境、


输进数据、


测试步骤、


预期结果、


测试脚本


等,


并形成


文档< /p>





2.2


测试用例的分类




根据测试过程中具体涉及到


问题类型



测试需求


,可将测试用例分为如下:




1.


功能 性


测试用例



2.

界面


测试用例:适用于所有测试阶段中的界面测试



3.


数据处理


测试用例:适用于所有测试阶段 中的数据处理测试



4.


流程


测试用例:适用于所有流程性的测试



5.


安装


测试用例:适用于所有安装测试




2.3


测试用例的治理




1.


编写用例


:测试工程师根据需求规约、概要设计、具体设计等文档编写测试用


例。



2.


用例评审


:原则上用 例象程序一样,要经过多次的修改才可以通过,实际工作


中通常进行一次。



3.


用例修改


:评审结束 后,您需要根据评审意见进行修改,修改后通常不再进行


评审。



4.


使用用例


:执行测试用例,并记录 到测试用例执行报告中。



5.


用例升 级


/


维护


:随着软件产品不断修改、升 级,对应的用例也需要升级维护。


针对同一个项目,


可以根据需 求的变更不断进行维护;


假如是产品,


用例的维护


更加重要,要达到用例和产品的版本逐一对应。




2.4


测试用例的编制及使用




1


设计测试用例




每个具体测试用例都将包括下列具体信息:

< br>编制人、审定人、编制日期、版本、


用例类型、设计说明书编号、用例编号、用例 名称、输进说明、期望结果(含判


定标准)、环境要求、备注


等 。




1.



测试用例名称



可以是不涉及到具体 模块的功能描述,如



日期格式





非空


检验



等。



2. “


输进说明



是功能模块


接受的数据


或各种


操纵描述





输进非法的日期格式



等。



3. “


期望结果



是模块接受


输进


后应有的正常


输出描述


,如



提示用户修改



等 ,期


看结果应与输进说明逐一对应。



4.


测试用例用于


指导执行操纵


,但某些意外操纵也可导致程序错误,这些操纵


称为


非预期性操纵


,可以先有执行报告,再后补用例。



5.


测试用例的设计应考虑


通用性< /p>



简洁明了





测试需求




软件测试需求是开发


测试用例


的依据,


测试需求


分解的越具体精准,


表明对所 测


软件的了解越深,


对所要进行的


任务 内容


就越清楚,


对测试用例的


设计质量


的帮


助越大。


具体的测试需求还是衡量 测试


覆盖率


的重要指标,


测试需求是计 算测试


覆盖的分母,没有具体的测试需求就无法有效的进行测试覆盖计算。




软件测试


执行阶段


是由一系列不同的


测试类型



执行过程


组成的,


每种测试类型

都有其具体的


测试目标



支持技术



每种


测试类型


都只侧重于对测试


目标


的一个


或多个


特征或属性


进行测试,正确的测试类型可以给软件测试带事半功 倍的效


果。




现有的软件


测试分析技术


不太成熟,



测试需求



测试类型


的分析,


所采用的方


法主要是根据经验进行收集、


整理,


该方法依靠于测试设计职员的测试经验,


此方法得出的测试需求、


测试类型往往导致


测试用例设计不充分



测试覆盖度低



测试目的性


不强,


轻易遗漏


等缺陷。




可见,


如何对


测试需求


进行细致的整理 分析,


明确测试执行时的


测试类型


,< /p>


是一


个亟待解决的题目。




有鉴于此,


本方法的主要目的在于提 供一种软件


测试需求



分析方法



可以方便、


详尽的获取

测试需求


,明确测试


执行


时需要实 施的


测试类型





1


测试需求


分析的方法




a


列出软件开发


需求


中具有可测试 性的


开发需求



b



对步骤


a

)列出的每一条


开发需求


,形成可测试的

< br>分层描述



测试需求




c



对步骤


b


)形成的每一条


测试需求

,从


GB/T .1-2006


《软件工程



产品质量




1


部分:


质量模型》


中定义的软件


内部


/


外部质量模型


来确定软件产品的


质量需求




d



对步骤


c


)所确定的


质量需求


,分析测试执行时需要 实施的


测试类型



< br>e



建立测试需求


跟踪矩阵


,对测试需求进行


治理


< br>



3


软件生命周期




软件生命周期


(SDLC

< p>


Systems Development Life Cycle)< /p>


是软件的


产生


直到


报废



生命周期,周期内有


题目定义 、可行性分析、总体描述、系统设计、编码、调试


和测试、


验收 与运行、


维护升级



废弃


等阶段,


这种按


时间


分程的 思想方法是软


件工程中的一种思想原则,


即按部就班、


逐步推进,


每个阶段都要有定义、


工作、


审查、形成文档以供交流或备查,以进步软件的


质量

< br>。




3.1


问题的定义及规划




此阶段是软件开发方与需求方共同讨论,主要确定软件的


开发目标


及其


可行性





3.2


需求分析




在确定软件开发可行的情况下,


对软 件需要实现的各个功能进行具体分析。


需求


分析


阶段是一个很重要的阶段,


这一阶段做得好,


将为整个 软件开发项目的成功


打下良好的基础。



唯一不变的是变化本身。



,同样需求也是在整个软件开发过


程中不断


变化



深 进


的,


因此我们必须制定


需求变更计划


来应付这种变化,


以保


护整个项目的顺 利进行。




3.3


软件设计




此阶段主要根据


需求分析

< p>
的结果,对整个软件系统进行设计,如


系统框架设计



数据库设计


等等。


软件设计一般分 为


总体设计



具体设计



好的软件设计将为软


件程序编写打下良好的基础。< /p>




3.4


程序编码




此阶段是将


软件设计


的结果转换成计算机可运行的


程序代码



在程序编码中必须


要制定统一,符合标准的


编写规范


。以保证程序的


可读性,易维护性


,提 高程序



运行效率


< br>



3.5


软件测试




在软件设计完成后要经过


严密


的测试,



发现


软件 在整个


设计过程


中存在的


问题


并加以


纠正


。整个


测试 过程


分:


单元测试、组装测试、系统测试


三个阶段进行。


测试的方法主要有:


白盒测试



黑盒测试


两种。


在测试过程 中需要建立具体的



试计划


并严格按照


测试计划


进行测试,以


减少

< p>
测试的


随意性





3.6


运行维护



-


-


-


-


-


-


-


-