关于软件测试的基本概念和基本模型
- 前言
- 一个优秀的测试人员具备的素质
- 关于需求
- 测试用例
- 软件错误(BUG)概念
- 开发模型
- 瀑布模型(Waterfall Model)
- 螺旋模型(Spiral Model)
前言
首先,什么是软件测试?
通俗来讲:软件测试就是找BUG,发现缺陷。
专业点的话:软件测试就是验证软件产品特性是否满足用户的需求
😀😃😄😁😆😅😍🥰😘😗😙😚
哈哈哈哈哈哈哈哈哈哈
😀😃😄😁😆😅😍🥰😘😗😙😚
一个优秀的测试人员具备的素质
综合能力
- 沟通能力
测试工程师的沟通能力会直接影响事务开展的效率。良好清晰的沟通能力,是一个技术优秀的测是
工程师是否可以获得更好发展的“敲门砖”。 - 快速学习的能力
对不同业务需求和功能的快速学习与理解能力。 对于测试新技术和新方法的学习能力. - 开发能力
- 文字能力
掌握自动化测试技术
掌握自动化测试技术,可以把你从大量重复性的手工劳动中解放出来,这样可以把更多的精力花在更多类型的测试上。
优秀的测试用例设计能力
测试用例设计能力是指,无论对于什么类型的测试,都能够设计出高效地发现缺陷,保证产品质量的优秀测试用例.
如何提高测试用例设计的能力?
1,掌握设计测试用例的方法
2,积累,总结
3,阅读好的测试用例设计案例
探索性思维
探索性思维是指,测试工程师在执行测试的过程中不断学习被测系统,结合自己的经验,知识,直觉,进行系统的错误猜测和逻辑推理,整理和分析出更多有针对性的的测试关注点。
案例:测试一台自动售票机。
正向,逆向,边界,压力,性能,耗电量,断电,外观,没零钱…
有责任感和一定的压力
责任感是任何工作的都需要的,对于测试工作者而言:
测试往往是产品质量的最后个把关者;由于测试工作成效很难衡量,测试用例执行、bug数目的多少都无法说明产品的质量是否合格;所以,责任感是最重要的测试必备素质之一。
压力,测试工作者,特别是属于互联网行业需要能够抗住各种压力。
关于需求
概念
:满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。
用户需求
:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。该需求一般比较简略。
软件需求
:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。
软件需求是测试人员进行测试工作的基本依据。
需求是测试人员开展软件测试工作的依据。
在具体设计测试用例的时候,首先需要搞清楚每一个业务需求对应的多个软件功能需求点,然后分析出每个软件功能需求点对应的多个测试需求点,然后针对每个测试需求点设计测试用例。
过程如下,业务需求—>软件功能需求点—>测试需求点—>测试用例
**以“用户登陆”为例,来阐述下整个过程:**😘😗😙😚
测试用例
测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
测试用例解决了两大问题:测什么,怎么测。
软件错误(BUG)概念
第一个BUG
1945年9月的某天,在一间老式建筑里,从窗外飞进来一只飞蛾,此时Hopper正埋头工作在一台名为Mark Il的计算机前,并没有注意到这只即将造就历史事件的飞蛾。这台计算机使用了大量的继电器(电子机械装置,那时还没有使用晶体管)。突然,Mark II死机了。Hopper试了很多次还是不能启动.
他开始用各种方法查找问题,最后定位到了某个电路板的继电器上。Hopper观察这个继电器,惊奇地发现一只飞蛾已经被继电器打死。Hopper小心地用镊子将飞蛾夹出来,用透明胶布贴到“事件记录本”中,写上“第一个发现虫子的实例”,Hopper的事件记录本,连同那只飞蛾,现在都陈列在美国历史博物馆中。
软件错误的一般定义:程序与规格说明之前不匹配。
注意:以上说法是片面的,准确的来说:当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。
当需求规格说明书没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。
开发模型
随着软件工程学科的发展,人们对计算机软件的认识逐渐深入。软件工作的范围不仅仅局限在程序编写,而是扩展到了整个软件生命周期,如软件基本概念的形成、需求分析、计、实现、测试、安装部署、运行维护,直到软件被更新和替换新的版本。软件工程还包括很技术性的管理工作,例如过程管理、产品管理、资源管理和质量管理,在这些方面也逐步地立起了标准或规范。
软件的生命周期
软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。 如果把软件看成是有生命的事物,那么软件的生命周期可以分成6个阶段,即需求分析、计划、、设计、编码、测试、运行维护。
瀑布模型(Waterfall Model)
优点
:–强调开发的阶段性; –强调早期计划及需求调查; –强调产品测试。
缺点
:–依赖于早期进行的唯一一次需求调查,不能适应需求的变化; –由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程; –风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会。
在瀑布模型中,测试阶段处于软件实现后,这意味着必须在代码完成后有足够的时间预留给测试活动,否则将导致测试不充分,从而把缺陷直接遗留给用户。
瀑布模型的一个最大缺陷在于,可以运行的产品很迟才能被看到。这会给项目带来很大的风险,尤其是集成的风险。因为如果在需求引入的一个缺陷要到测试阶段甚至更后的阶段才发现,通常会导致前面阶段的工作大面积返工,业界流行的说法是:“集成之日就是爆炸之日”。尽管瀑布模型存在很大的缺陷,例如,在前期阶段未发现的错误会传递并扩散到后面的阶段,而在后面阶段发现这些错误时,可能已经很难回头再修正,从而导致项目的失败。但是目前很多软件企业还是沿用了瀑布模型的线性思想,在这个基础上做出自己的修改。例如细化了各个阶段,在某些重点关注的阶段之间掺入迭代的思想。
螺旋模型(Spiral Model)
一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模式。螺旋模型是渐进式开发模型的代表之一。
这对于那些规模庞大、复杂度高、风险大的项目尤其适合。这种迭代开发的模式给软件测试带来了新的要求,它不允许有一段独立的测试时间和阶段,测试必须跟随开发的迭代而迭代。因此,回归测试的重要性就不言而喻了。😅😍🥰
优点: –强调严格的全过程风险管理。 –强调各开发阶段的质量。 –提供机会检讨项目是否有价值继续下去。
缺点: –引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求。这需要人员、资金和时间的投入。
😀😃😄😁😆😅😍🥰😘😗😙😚