【软件测试】进一步认识测试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zjx624bjh/article/details/81568021

关于测试我们会说是发现程序错误(找bug)的过程,同时也是证明软件不存在错误的过程。
像生活中的一场考试,做完一遍题目之后检查一遍,就是在测试。
进一步理解即验证软件功能是否满足用户的需求,为了发现错误而执行程序或者系统的过程。
总之,测试是对软件质量的度量。

首先认识几个关于测试的概念:

bug:凡是实现效果和需求不相符的都可以认为是bug。
软件错误:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。
软件的生命周期:软件的生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。
用户需求:可以简单理解为甲方提出的需求,若没有就是终端用户使用产品时必须要完成的任务。
软件需求:该需求会详细描述开发人员必须实现的软件功能。

软件测试的目的和原则:

目的:验证软件有或没有问题。
原则:以客户为中心,遵循软件测试的规范,流程,标准和要求。

测试与调试的区别:

目的不同:测试任务是发现程序中的缺陷,调试任务是定位并且解决程序中的问题。
角色不同:调试由开发人员来执行,测试主要是由测试人员和开发人员来执行 ,黑盒测试主要由测试人员完成,单元/集成测试主要由开发人员完成。
执行级阶段不同:测试贯穿软件开发生命周期,调试一般在开发阶段

测试模型:
(1)瀑布模型(线性顺序进行的软件开发模式)
缺点:风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会。
(2)螺旋模型(渐进式的开发模型)
对于那些规模庞大,复杂度高,风险大的项目尤其适合。
优点:强调严格的全过程风险管理。强调各开发阶段的质量。
缺点:严格的风险分析和控制对人员,资金和时间提出更高的要求。
增量和迭代:
增量是逐块建造的概念,例如一幅人物画,可以先画头部,再画身体,再手脚;而迭代是反复求精的概念,可以先画整体轮廓,再勾勒基本雏形,再细化,着色。

软件测试相关岗位:

(1)软件测试开发工程师
(2)测试工程师
(3)软件开发测试工程师
(4)其它分类:自动化测试工程师,功能测试,性能测试,安全测试。

软件测试和研发的区别:

(1)难易程度:开发广度小,专业度高。 测试广度大,专业度低。
(2)发展前景:自动化测试,安全测试等领域发展前景和研发基本一致。
(3)繁忙程度:一般比研发轻松,产品发布前压力比较大。
(4)技能要求:测试要求更广泛,业务能力,设计和架构分析能力,测试手段和工具使用,用户模型分析和理解,编程能力。

软件测试相关的职业规划方向:
初级:测试定义,测试方法,测试生命周期,测试执行,测试管理工具
中级:编写测试用例,Linux,mysql… jenkins(持续集成工具)
高级:
team leader(介于技术和管理范围之间)
自动化测试(自动化测试框架,app,web,C/S)
性能测试(性能测试框架,loadrunner,jmeter 调优 linux mysql oracle redis缓存管理 http)
安全测试(sql注入,xss,白帽子)
功能测试(兼容性测试,界面测试,易用性测试:使用上是否方便,业务测试,回归测试:验证之前坏的地方是否修好了,探索性测试:针对现在新型模式开发)
管理线条:(1)主管,经理,总监 (2)CMMI :能力成熟度的集合,项目认证(参与体系建设认证,考虑层面更高,站在整个项目角度),ISO:一种质量认证(对其他部门有监督指导工作),敏捷(敏捷教练)

配置管理:
是通过对在软件生命周期的不同时间点上的软件配置进行标识,并对这些被标识的软件配置项的更改进行系统控制,从而达到保证软件产品的完整性和可塑性的过程。
好处:
(1)能够对项目中的文档,代码等的变化进行有效管理。
(2)能够方便的重现某个文件的历史版本,维护更容易。
(3)能够使异地多团队开发,并行开发成为现实

猜你喜欢

转载自blog.csdn.net/zjx624bjh/article/details/81568021