软件测试入门基础知识

目录

1.软件测试的定义

2.软件测试的生命周期

3.如何描述一个bug

4.bug的级别如何定义

5.bug生命周期

6.软件测试策略

7.软件测试模型

   7.1传统瀑布模型

   7.2V模型

   7.3W模型(双V模型)

   7.4敏捷模型

   7.5X模型


1.软件测试的定义

首先要明确测试的定义,所谓测试,就是以检验产品是否满足需求为目标。

而软件测试,自然是为了发现软件(产品)的缺陷而运行软件(产品)

比较标准的软件测试的定义是:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估。

IEEE 标准的定义:使用人工或自动的手段来运行或测定某个系统的过程,其目的在于检验;它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。

2.软件测试的生命周期

首先先来看软件的生命周期

然后根据软件的生命周期可以对比下图的软件测试生命周期

 

 3.如何描述一个bug

首先我们站在开发人员的角度看看测试人员描述bug不准确会带来什么问题?

1.描述bug不清晰,就一句话,没有具体的操作步骤。
比如:拨打电话出现死机。(就简单的一句话,就啥都没了,拨打什么号码–没写,在什么情况下拨打电话–没写)


2.提交的bug看不懂啥意思,不知所云。
这种bug只有测试工程师自己能看懂,别人根本看不懂,他却以为别人能懂。


3.没有写出现的概率
偶发的bug没有log和其他更多信息,有的bug概率很小,小到不影响用户使用,如果不写清楚,开发人员将浪费大量时间去定位问题。


4.bug发生的前提条件都不写。
比如:bug描述是充电图标显示重叠。但是没有写什么条件下出现,开机状态?还是关机状态?开发工程师懵逼,还要自己去一个个去试,浪费开发人员的时间,描述不详细但是测试工程师还觉得自己没毛病,一切挺好。


5.bug等级乱定位
比如一个很小的甚至是建议性的问题,把bug等级提到最高。软件开发一看,全是致命性1级bug,仔细一看很多小问题也被提为1级bug,此时开发人员的心情肯定的奔溃的。


6.测试工程师描述bug,却不写预期结果。

开发都不知道要修改成什么样,一脸懵逼。结果开发理解错了,修改的结果不是预期的结果,这就浪费开发的时间了,你想想此刻开发人员的心情是怎样的?


7.出现问题的软件版本没写清楚,开发人员不知道是在哪个软件版本出现的。

所以正确的bug描述才是开发人员和测试人员好的沟通方式

1.bug标题要简洁明了,不要啰嗦一堆


2.要写出现问题的前提条件。

什么情况才会出现,必须要写清楚。


3.操作步骤要分步骤一步步写清楚,不要怕麻烦。比如步骤1,步骤2,步骤3。


4.要写实际结果和预期结果,让开发清楚要修改bug到达的预期效果。


5.要写出现的概率,比如操作10次出现1次。


6.提供必要的截图和log,甚至复杂的操作步骤要提供视频。

7.bug等级要分类好,致命性bug、严重bug、一般性bug、建设性意见,必须严格按照标准划分。


8.出现bug的软件版本号,要写清楚。

例如:

 

 4.bug的级别如何定义

Blocker(崩溃):

阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等

Critical(严重):

系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。如:软件中数据保存后数据库中显示错误,用户所要求的功能缺失,程序接口错误,数值计算统计错误等

Major(一般):

功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。如:操作时间长、查询时间长、格式错误、边界条件错误,删除没有确认框、数据库表中字段过多等

Minor(次要):

界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等。如:错别字、界面格式不规范,页面显示重叠、不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐,光标位置不正确,用户体验感受不好,可以优化性能的方案等

5.bug生命周期

发现BUG-->提交BUG-->指派BUG-->研发确认BUG-->研发去修复BUG-->回归验证BUG-->是否通过验证-->关闭BUG

 

 

6.软件测试策略

1、选择测试方法:选择最合适当前项目的测试方法(比如项目紧急的时候?项目频繁发版)(例如:重复测试的工作可以采用自动化测试)

2、角色和职责:需要在测试策略里面明确定义各个角色,以及该角色的职责。比如项目经理、测试组长、测试工程师。

3、环境需求:这一点非常重要,它将描述测试时需要的系统环境(软件,服务器Linux,windows,数据库MySQL),包括软硬件以及网络环境等等。在澄清环境需求的时候,测试组织可以识别出资源方面的风险。

4、风险分析:影响测试过程的风险都应该尽早被识别出来,而且必须有相应的解决办法以便消除或减轻这些风险。(例如:人员休假、软件是否完成)

5、测试进度评估:测试进度将会评估完成测试所需要的时间。在设定进度的时候,首先需要明测试范围(比如说这次增加一个D模块,部分功能会影响原来已经上线的B模块的功能)然后根据测试资源的多少来指定能被各方面认可的测试进度计划。

6、回归测试(Regression Testing)策略:回归测试用来保证之前fix bug的代码不会影响软件的其他部分,这样需要我们选择已经执行过的测试用例重新运行。测试人员需要找到一个方法来确定哪些测试用例应该在回归测试中运行,用例不能太多,因为资源有限,用例也不能太少,否则会达不到必须的测试强度。

7、优先级:测试范围内的东西不会都是一样重要的,加上测试资源各种有限,所以为测试的模块排定优先级是十分的必要。

 7.软件测试模型

   7.1传统瀑布模型

 

优点:

强调需求,设计的作用,前一阶段完成后只需关注后续阶段;

为项目提供按阶段划分的检查点,里程碑清晰
缺点:

线性研发过程难以适应需求的频繁变化

项目周期后段才可看到成果,用户要到末期才能看到开发结果,增加了开发的风险

强制的里程碑,对于开发过程中出现的变化,适应能力较差,

文档工作量较大,测试在项目的后期,文档的开发带来很大的工作量。

   7.2V模型

优点:

  在V模型里,强调软件开发的协作和速度,反应测试活动和分析测试的关系,并且将软件的实现和验证有机的结合了起来,V模型,明确的界定测试过程是存在不同阶段的。

缺点:

  但是V模型也有一定的局限性,它仅仅把测试过程放在需求分析、系统设计、编码之后的一个阶段,忽视了测试对于需求的分析和验证。我们对需求的验证,对系统设计的验证,到后期的验收测试才有可能被发现,对于我们测试当中的测试需要尽早进行的原则在V模型中没有体现,这是V模型的局限。

   7.3W模型(双V模型)

 

优点:开发与测试并行,有利于尽早发现问题,有利于及时的了解项目的测试风险,来及早的执行相应的应对方案,加快项目的进度。

局限性:需求、设计、编码仍然是串行进行的,测试和开发保持线性的关系,上一个阶段完成之后才能进行下一个阶段,不能够很好的支持迭代的开发模型。

   7.4敏捷模型

敏捷模型是在互联网的快节奏下应运而生的,也是当前最为主流的开发测试模型。

举一个例子:

以抖音为例,在需求分析阶段,先收集用户的需求:市场上目前缺少短视频的APP,同时,有了今日头条的成功,能不能沿用它的设计思路,将展现形式由文字转变为短视频,通过标签推荐的算法,向用户推送他可能感兴趣的短视频呢?

基于这样的需求,形成需求文档,接下来,产品经理拉着团队里开发、测试、设计一起做需求评审。

除了开发根据需求文档做开发计划之外,与此同时,测试人员由于更早的介入到软件项目当中,也可以根据需求文档开始编写测试计划了。

形成测试计划之后,开始着手测试用例的设计与开发。

跟传统的瀑布模型、V模型不同,等到开发人员提测的时候,测试用例已经设计开发完成,可以直接开展测试工作。

执行测试的过程中,发现了 bug 立即反馈给开发团队进行修复,修复后进行回归测试,直到全部测试用例通过,由产品经理来验收。

以上就是关于敏捷模型的介绍

    7.5X模型

左边描述的是针对单独的程序片段相互分离的编码和测试,此后进行频繁的交接,再通过集成,最终合成可执行的程序,对这些程序进行测试,这些程序还是需要冀衡测试,已经通过的程序可以进行封板提交给用户,也可以作为更大集成的一部分,X模型还定位了探索式测试,探索式测试是不进行事先计划的特殊类型的测试,能够帮助测试人员在测试计划之外发现更多的错误。 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
说明: 一、由于附件大小的限制,已将文件打成两个包发布(保证内容完整),请需要的朋友分开下载,谢谢合作。 二、请自行下载超星阅读器 简介:   我所见过的最好最经典的软件测试入门书,有一个别名叫“软件测试的本质”。书中没有讨论太多的软件测试理论,只包含了一部分常用的、基本的知识。从什么是软件测试、为什么要作软件测试开始,逐步引入基本的和高级的测试技术和方法,然后开始把读者引入实际工作中,讲述了一般的测试过程中要经历哪些阶段,要作哪些具体的工作,如何开展测试工作,如何找到缺陷并提交缺陷。甚至还包括了对测试人员的职业指导。建议所有的测试人员都读一读。 编辑推荐: 本书与同类书相比,具有一个显著的特点,就是浅显易懂。虽然整本书涉及的范围相当广泛,但是作者始终没有忘记,是读者的书,而不是他本人在自言自语。能够在如此庞杂的学科中流畅讲解、层层剖析,可见作者深厚的技术功底和对软件测试、软件工程的透彻理解。 目录 第一部分 软件测试综述 第1章 软件测试背景 第2章 软件开发过程 第3章 软件测试的实质 第二部分 测试基础 第4章 检查产品说明书 第5章 闭着眼睛测试软件 第6章 检查代码 第7章 带上X光眼镜检查软件 第三部分 运用测试技术 第8章 配置测试 第9章 兼容性测试 第10章 外国语言测试 第11章 易用性测试 第12章 测试文档 第四部分 加强测试 第14章 自动测试测试工具 第15章 臭由轰炸和Beat测试 第五部分 使用测试文档 第16章 计划测试工作 第17章 编写和跟踪测试案例 第18章 报告发现的问题 第19章 评价成效 第六部分 软件测试展望 第20章 软件质量评判 第21章 软件测试员职业指导 附录测验问题解答

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北~笙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值