软件测试质量
1.1什么是质量
美国著名的质量管理专家朱兰(J.M.Juran)博士从顾客的角度出发,提出了产品
质量就是产品的适用性
质量:反映实体满足明确或隐含需要能力的特性总和。
1.2软件质量
软件质量就是:“软件与明确的和隐含的定义的需求相一致的程度”
衡量软件质量的标准:
上图总结:满足客户明确的需求,符合软件开发的准则,满足隐含的需求
1.4软件质量考虑的要素
红色的为测试按内容分类有哪些?
1.4.1功能性
功能性
当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。
适合性
软件产品符合需求,能解决用户业务问题
准确性
软件产品数据和处理处理能力要准确
互操作性
软件产品与其他系统的交互和对接能力。
安全保密性
软件产品权限安全,不同角色进入拥有不同的操作权限
1.4.2性能
时间特性
软件产品执行其功能时,提供满足需求的响应时间和处理时间以及吞吐率等指标的能力。
资源利用性
软件产品执行其功能时,提供满足需求的CPU、内存等占用率的能力
1.4.3安全性
软件在受到恶意攻击的情形下依然能够继续正确运行的能力
软件被在授权范围内合法使用的能力,如:序列号决定使用数。
软件完整,避免被盗版、破解或植入病毒
1.4.4兼容性
软件适应不同的规定环境下的能力
软件遵循与可移植性有关的标准或约定的能力
软件与其他替代软件兼容的能力
常见的兼容性(浏览器、操作系统)
1.4.5可靠性
可靠性
在指定条件下使用时,软件产品维持规定的性能级别的能力。
成熟性
软件产品为避免由软件内部的故障而导致失效的能力。
容错性
软件出现故障或者违反其指定接口的情况下,依然维持规定的性能级别的能力。
易恢复性
失效发生后,重建规定的性能级别并恢复受直接影响的数据的能力。
1.4.6易用性
易用性
在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
易理解性
软件产品让用户无须过多学习就能理解的能力。
易学性
软件产品让用户即使参加了学习,学习成本高低的能力。
易操作性
软件产品让用户操作方便,符合使用习惯的能力。
吸引性
软件产品让用户觉得舒服、操作吸引眼球的能力。
用户体验性
是以上几个特性的统称,部分企业把易用性也称之为用户体验性,是一个比较时髦的词。
1.4.7安装卸载
执行安装/卸载时,能按照一定的规格和流程将软件安装上的能力。
简化的软件安装/卸载过程
提供亲切友善的操作逻辑或接口
1.4.8可维护性
易分析性
软件出问题后,快速判断问题点并能快速修复的能力。
易改变性
软件修改后可快速发布,快速投入生产的能力。
稳定性
软件避免由于软件修改而造成意外结果的能力。
易测试性
软件版本升级修改后被快速确认的能力。
1.4.9可移植性
适应性
软件不需采用其他手段就可适应不同的指定环境的能力。
易安装性
软件在指定环境中被快速安装的能力。
共存性
软件在同一环境下同与其他软件共存的能力。
易替换性
软件在同一环境下,替代另一个相同用途的软件的能力。
1.5 什么是质量保证
1.6QA与QC
QC和QA的主要区别:前者是保证产品质量符合规定 , 后者是建立体系并确保体系按要求运作,以提供内外部的信任。
QC就是测试人员,职责是尽可能早地发现软件的缺陷,并确保缺陷得到修复(有些企业里,测试人员被称为SQA)。
QA是流程的监督者,职责是创建和执行 改进软件开发过程,并防止软件缺陷发生的标准和方法。
软件测试概念
2.1为什么要软件测试?
提高软件质量
保证软件安全
降低软件开发成本
减低企业风险
提升用户体验感
2.2软件测试的概念
回答1:在规定的条件下对程序,进行操作,以发现错误,对软件质量进行评估
2.3软件测试的目的
发现Bug
提高质量
降低成本
或者回答:发现bug,检验用户需求,提高体验
软件测试原则
3.1软件测试的原则
所有的软件测试都应追溯到用户需求(用户需求为核心)
应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭(尽早测试)
完全测试是不可能的,测试需要终止(完全测试是不可能的)
测试无法显示软件潜在的缺陷(潜在缺陷不容易被发现)
充分注意测试中的群集现象(减少群集现象)
开发工程师应避免测试自己的程序(开发避免自测)
尽量避免测试的随意性(避免随意性)
测试的抗药性(重复的检测容易产生抗药性)
软件测试对象
4.1软件测试对象
软件包括程序、数据、文档,所以软件测试应该贯穿于整个软件生命周期中。
在整个软件生命周期中,各阶段又有不同的测试对象,形成了不同开发阶段的不同类型的测试。
软件测试分类
5.1按阶段划分
单元测试,集成测试,确认测试,系统测试,验收测试
单元测试:
又称为,模块测试,是针对程序的一种测试,测试单个模块
集成测试:
也叫接口测试,就是多个单个的模块进行整合的测试
系统测试:
系统将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试.(软件,硬件,外设,网络结合在一起的测试)
系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案(对整个产品进行测试,检验是否满足需求规定)
对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等测试
系统测试范围:功能、性能、界面、强度、容量、安全性、配置、安装、卸载、数据库等
确认测试:
验收测试:
Alpha: Alpha测试是在用户组织模拟软件系统的运行环境下的一种验收测试,由用户或第三方测试公司进行的测试,模拟各类用户行为对即将面市的软件产品进行测试,试图发现并修改错误。
Beta:Beta测试是用户公司组织各方面的典型终端用户在日常工作中实际使用beta版本,并要求用户报告异常情况,提出批评意见。
5.2按是否运行程序划分
静态测试:不运行被测试的软件,而只是静态的检查代码、界面或者文档
动态测试:实际运行被测试的软件,输入相应的测试数据,检查实际的输出结果是否和预期结果相一致的过程。
5.3按是否查看代码划分
1、黑盒测试
把软件看成一个黑盒子,不管内部逻辑和内部特性,只依据规格说明书检查程序的功能是否符合功能说明
2、白盒测试
又称为结构测试。着重于程序内部结构和算法,不关心功能和性能指标。
3、灰盒测试
介于白盒和黑盒测试之间,基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。
5.4其他划分
回归测试:
1.测试新建bug,开发修改后将状态修改为“已修改”后通知测试进行验证,此时测试人员所进行的测试称为回归测试。
2.当测试回归后没有问题,但所测试的功能和其他模块或功能有一定的关系(如数据有交叉和公式计算等),这时测试人员要针对这个部分再次测试,保证不会因为修改了这个bug而导致新bug的产生(开发在修改代码或注释时容易注释错),此时测试人员所进行的测试也称为回归测试
3.当项目(或模块和功能)快上线,测试经理会通知测试人员再把所有功能测试一次,保证上线后不会出问题,此时测试人员所进行的测试称为回归测试
冒烟测试:
发布一个版本时,先对该版本进行最基本功能的测试,用以确认该版本基本功能正常后再开展进一步的测试工作;如基本功能不通过,打回给开发,直到冒烟通过
只有公司需要时才冒烟,并不是任何时候都冒烟,因为实际工作中项目往往比较紧
部分公司是让开发做冒烟,会给开发提供一个checklist
随机测试(又名猴子测试)
随机选择测试数据做测试,主要根据经验进行功能和性能等抽查
敏捷测试(敏捷开发引发)
敏捷最大特点是高度迭代,有周期性,并且能够及时、持续地响应客户的频繁反馈。简单点理解:天下武功,为快不破。
TDD(测试驱动开发)
软件测试风险
软件测试风险
软件测试中的软件风险分析是根据预测软件将出现的风险,制定软件测试计划并排列优先等级,风险分析是对软件中潜在的问题进行识别、估计和评价的过程。
风险也包括进度风险、质量风险、人员风险、变更风险、成本风险等文章来源:https://www.toymoban.com/news/detail-401051.html
遇到进度风险该怎么办:给领导两条路,是保进度还是保质量,保进度的话就得加大人手,对不影响用户体验的BUG比较难修复的先等下个版本再进行修复,保质量的话就应该给我们更多的时间,加大人力投入,以提高软件的质量文章来源地址https://www.toymoban.com/news/detail-401051.html
到了这里,关于学测试必看!测试理论知识之测试基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!