软件质量测试理论基础(一)
软件测试的定义的两面性:
软件质量的定义:
是人们实践产物的属性和行为,是可以认识以及科学描述的,并且通过一些方法和人类的活动来改进的。
软件质量的模型:
McCall模型、Boehm模型、ISO9126模型
软件缺陷的产生:
(1)技术问题:算法错误,语法错误,接口问题
(2)团队问题:沟通不充分,误解
(3)软件本身:文档错误,用户使用场合不正确;时间上不协调、或不一致;系统自我恢复或数据的异地备份、灾难性恢复等问题。
缺陷构成:规格说明书>设计>代码
在真正的程序测试之前,通过审查、评审会可以发现更多的缺陷。规格说明书的缺陷会在需求分析审查、设计、编码、测试等过程中会逐步发现,而不能在需求分析一个阶段发现。
软件质量保证实施的五个步骤:
(1)目标。以用户需求和开发任务为依据,对质量需求准则、质量设计准则的质量特性设定质量目标进行评价。
(2)计划。设定适合于待开发软件的评测检查项目,一般设定20-30个。
(3)执行。在开发标准和质量评价准则的指导下,制作高质量的规格说明书和程序。
(4)检查。以计划阶段设定的质量评价准则进行评价,算出得分,以图形的形式表示出来,比较评价结果的质量得分和质量目标,确定是否合格。
(5)改进。对评价发现的问题进行改进活动,重复计划到改进的过程直到开发项目完成。
什么是软件质量保证?
软件质量保证(Software Quality Assurance,SQA)活动是通过对软件产品有计划的进行评审和审计来验证软件是否合乎标准的系统工程,通过协调、审查和跟踪以获取有用信息,形成分析结果以指导软件过程。
SQA和测试的区别
SQA是一项管理工作,侧重于对流程的评审和监控
测试是一项技术性的工作,侧重对产品进行评估和验证
软件质量测试的分类
(1)按测试的对象或阶段和层级分类,如单元测试、集成测试、系统测试、验收测试
(2)按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等(目标/特性)
(3)根据测试过程中被测软件是否被执行,分为静态测试和动态测试
(4)根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试(方法)
软件测试过程中的模型
V模型:仅吧测试作为在编码之后的一个阶段,是针对程序进行的寻找错误的活动,而忽视了测试活动对需求分析、系统设计等活动的验证和确认的功能。(最具有代表意义)
W模型:W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步的,从而有利于尽早的发现问题。(W模型也有局限性。W模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动,无法支持迭代、自发性以及变更调整。)
H模型:强调测试是独立的,只要测试准备完成,就可以执行测试。