




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Module2.软件测试技术,主要内容,软件测试基本方法静态分析白盒测试黑盒测试测试模式范围测试说明书测试风险测试情景测试组合测试探索测试实际练习,什么是静态分析?,不实际运行程序,通过检查和阅读等手段来发现错误并评估代码质量的软件测试技术。作用通过对代码标准及质量的监控提高代码可靠性尽可能早地通过对源代码的检查发现缺陷组织代码审核定位易产生错误的模块非常有效的质量保证手段越来越多地被采用,静态分析的主要内容,检查需求检查设计检查代码,检查需求,需求的标准完整性是否完整描述一个功能正确性是否正确反应客户要求可行性必要性Goldplating?无二义性会引起歧义吗可验证性测试用例怎么写?实施无关
2、性,需求规格说明的标准完整性是否包含所有需求FURPS一致性相互矛盾重复,需求检查练习,例1产品必须在固定的时间间隔内提供状态信息,并且每次时间间隔不得小于60秒。完整吗?清晰吗?例2分析程序应该能生成HTML标记错误的报告,从而使HTML初学者可以用它来快速排错。是否有歧义?可验证吗?例3如果可能的话,应当根据系统货物编号列表,在线确认输入的货物编号。“如果可能的话”是什么意思?,需求检查练习,例4产品不应该提供将带来灾难性后果的查找和替换选择。真正的需求是什么?例5系统对标准XYZ1.4.1的支持是可选的。有歧义吗?例6当用户选择“紧凑内存”选项时,程序通过Huffman解析矩阵方法将邮件
3、列表数据压缩到相应的大小。可测吗?代码无关吗?,规格说明用语清单,绝对的肯定总是、每一种、所有、没有、从不注意隐含的假设当然、因此、显然、必然模棱两可的词某些、有时、常常、通常、经常、太多、几乎不可测的描述良好、迅速、廉价、高效、稳定隐藏的需求已处理、已拒绝、已忽略、已消除缺少的分支如果那么(没有“否则”分支),检查设计,在编码开始前进行检查功能设计说明,消除歧义功能的用意、总体位置输入、输出可能的错误/例外接口定义交互细节实施建议,检查代码,通过检查代码发现模块中的错误,通过代码检查能够发现大部分的错误,检查代码,研究分析代码而不用实际执行包括可执行的代码和非执行的代码提供的信息度量标准容易
4、产生错误的代码代码规则的执行流图和调用图的分析,80%的问题是由于20%的代码引起的,度量元,复杂度度量McCabeHalstead嵌套级别(最大/平均)规格度量行数语句数注释数声明数,代码审核内容,分析容易产生错误的代码:控制流分析非结构化的代码死代码数据流分析未定义的数据的使用未使用的数据信息流分析断言分析,代码审核内容,流图和调用关系图作为理解代码的帮助作为审核符合设计的帮助作为测试设计的帮助作为调试的帮助代码规则的执行针对不同语言的特征格式和形式命名规范度量标准的强制,静态分析方法,走查:Walkthrough审查:Inspection自动化工具,走查(Walkthrough),开发组
5、内部进行的采用讲解、讨论和模拟运行的方式查找错误的活动限时-避免跑题参加人员经验丰富的开发人员和本模块相关的开发人员本项目组的新人由本模块的开发者进行讲解、回答问题并记录不要现场修改检查要点逻辑错误代码标准/规范/风格,审查(Inspection),开发组、测试组和相关人员(QA、产品经理等)联合进行。采用讲解、提问并使用Checklist方式进行的查找错误的活动。以会议的形式,制定目标、流程、规则和结果报告。相关资料要在会议前下发并阅读。参加人员经验丰富的开发人员和本模块相关的开发人员测试组和相关人员,审查(Inspection),由另外一名开发者进行讲解、其他开发者主要按照Checklis
6、t进行提问并填表、本模块开发者回答问题并记录不要现场修改检查要点设计需求代码标准/规范/风格文档的完整性和一致性,自动化工具,基于编码规则LogiscopeLDRANuMega的CodeReview基于质量度量LogiscopeMcCabeLDRA,如何使静态分析更有效?,必须引入“别人”的眼睛根据团队及项目的实际情况,设计合理的实施办法有准备地进行应该有包含所有关注要点的Checklist把握会议时间每次以2小时为限可以进行多次,白盒测试,把测试对象看做一个透明的盒子利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试通过在不同点检查程序的状态,确定实际的状态是否
7、与预期的状态一致,白盒测试目标,尽可能高的覆盖率对程序模块的所有独立的执行路径至少测试一次对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次在循环的边界和运行界限内执行循环体测试内部数据结构的有效性执行效率,逻辑覆盖,以程序内部的逻辑结构为基础的设计测试用例的技术主要包含以下几种情况语句覆盖判定覆盖条件覆盖路径覆盖,逻辑覆盖,语句覆盖设计若干个测试用例,使得每一可执行语句至少执行一次判定覆盖设计若干个测试用例,使得程序中每个判断的取真分支和取假分支至少经历一次判定覆盖又称为分支覆盖条件覆盖设计若干个测试用例,使得程序中每个判断的每个条件的可能取值至少执行一次路径覆盖设计足够的测试用例
8、,覆盖程序中所有可能的路径,黑盒测试,把测试对象看做一个黑盒子不考虑程序内部的逻辑结构和内部特性只依据程序的需求规格说明书检查程序的功能是否符合它的功能说明,黑盒测试,在程序接口上进行测试主要是为了发现以下错误是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?,黑盒测试,在过去的测试中,我们常从开发者的视角出发分析代码和规格说明书。规格说明书仅能给我们提供一部分风险类型,我们必须在更广的范围内进行测试。不同领域的专家能够看到不同的使系统产生缺陷的机会,并设计出能够
9、引发这些缺陷的测试用例。跳出框框进行思考和设计,是黑盒测试的精髓。,黑盒测试模式,模式与技术,测试技术是进行测试的方法。测试模式指用于指导设计测试的思路,一种测试模式可能会用到一种或多种技术。设计任何测试需要包含五个方面的内容:测试什么?试图发现什么问题?如何判断测试通过或失败?怎么进行测试?谁来执行测试?,测试模式,范围测试规格说明测试风险测试情景测试探索测试组合测试,模式:范围测试,采用“抽样”的策略,从众多的可能情况中抽取合理的典型用例常见办法等价类划分将输入划分成若干等价组。从每一类中取一个代表值作为整个组的代表。如果一个测试发现的缺陷,也能被另一个测试发现,则两个测试等价。边界值测试
10、边界值是一个等价类向另一个等价类过度的点。程序在边界更容易出错,所以边界值和边界附近的值是最佳的测试点。,范围测试,优点可以通过较少的用例检测出最可能发生的错误很直观的方法,易于普及弱点漏掉不位于边界或典型值的错误边界不易确定,范围测试典型案例,三角型问题输入:a,b,c分别为三角形的三个边长值输出:该三角形为等边、等腰、或不等边如何设计测试用例?选择什么样的输入值,模糊边界问题,理论上说,等价类划分的任务是将输入分类成相互独立并排斥的范围。3D动画游戏对显卡的要求处理速度画面效果兼容性必须测试游戏程序可支持的显卡,模糊边界问题(续),如何从数目众多的显卡中选出典型的测试对象?分类的思路市场占
11、有率时间范围品牌、驱动工业标准、芯片支持的操作系统,划分等价类,设备兼容性测试显示了多维空间无法明确划分的情况。范围测试成功的关键是记住“分区只是一种抽样策略”。它的目标是从大量潜在的测试中,选出最为合理并有价值的几个代表。好的抽样策略依赖于我们对具体领域的了解,而不仅仅是说明书。如果你知道多种使程序出错的方法,那么对每一种错误,寻找最有可能使错误产生的设备(型号、版本)。,划分等价类,客户的问题:“等价类方法对那些要求支持所有OEM系统、所有声卡和显卡、所有操作系统、及所有技术(例如DirectX3和5)的人非常有用。那么测试人员怎样才能保证他的等价类表可以提供很好的覆盖率?”令人失望但真实
12、的回答:“即使分析和执行的过程非常好,我们也很可能错过一个可能造成缺陷的设备或驱动,或它们的组合。”,模式:规格说明测试,检查产品满足所有规格、需求文档中的每一条陈述。检查用户手册,安装步骤,操作范例。优点彻底分析每个被测功能项避免向客户传递虚假或误导信息,减少支持成本/客户申告弱点未考虑交互影响任何没有列入规格说明、和处理不当的问题,没有规格说明怎么办?,所有存在的文档内部版本的软件变更备忘录用户手册草稿(或旧版本)有关产品的文章公布的样式指南或UI标准第三方产品兼容性测试系列公布的规范内部备忘录(项目经理给工程师的功能描述)采访参与上一个版本开发的人员查看旧版本的客户电话记录,查看现场发现
13、的缺陷易用性测试结果Beta测试结果,没有规格说明怎么办?,市场演示,产品概念推销缺陷报告及回复工程师对产品的审核会个人采访开发负责人技术写作人员客户服务领域专家项目经理察看header文件,源代码,数据库表定义原型,实验室有关原型的记录,模式:风险测试,从可能发生的问题(风险)出发,设计测试“先找最大的缺陷”风险测试实例失败模式和影响分析从预报的缺陷清单中抽取测试用例压力测试,安全性测试测试预期的或担心的错误,风险测试,优点测试作用大直观的测试弱点没有识别或想像到的风险,风险测试,主要任务识别风险因素(系统发生故障的情形)对每一种风险因素,设计有足够能力对付它的测试评估风险测试的覆盖率,查找
14、测试工作的漏洞评估测试结果和发现的缺陷,判断这些测试所针对的风险是什么,考虑是否有更有效的测试方法。,哪里有风险?,质量属性能力可靠性易用性性能易安装性兼容性可支持性可测试性可移植性可维护性,哪里有风险,从公布的缺陷统计和缺陷分类中,寻找你感兴趣的缺陷。从清单中找出一个缺陷分析你的软件是否会出现这个缺陷如果从理论上分析被测系统可能存在这个缺陷,思考如何把它找出来思考这个缺陷存在的可能性有多大,及它的严重性针对这类缺陷设计一个或多个测试公布的缺陷信息往往是过时的,且与你的被测系统相差很大。应逐步积累并建立自己的缺陷模式。,哪里有风险?,需求:不完整、不正确、不清楚新东西:新功能可能出错新技术:新
15、的概念可能引发新错误学习曲线:由于无知或习惯而造成的错误修改:变更可能会破坏旧的代码仓促的工作:经费和时间不足造成低质量工作疲劳的程序员:长时间的持续工作造成低效和错误,模式:情景测试,模拟真实使用情景的测试情景测试实例依照商业规范、客户数据、或竞争对手的结果,对产品进行评估测试生命周期测试特点很现实(来自真实用户或竞争对手的情形)测试通过或失败的判定很明确测试覆盖多个特征或功能每个测试都关系到某些涉众(stakeholder)的利益,情景测试,优点复杂、真实的事件。可以处理那些不易模拟的情形。能暴露随时间发展而发生的问题弱点单个功能失败可以使测试效率降低必须仔细考虑测试的覆盖率,构造情景的方
16、法,目标驱动:某人想得到X。他怎么能得到X?序列驱动:某人(或系统)通常按照某个顺序完成任务X。完成X所要经历的常见顺序是什么?交易驱动:我们想完成一桩交易,如开银行帐户或发送信息。完成这个交易的步骤,数据,输出和显示是什么?从竞争对手的产品中获取思路:文档,广告,帮助等。所有关于如何最好或最新颖地使用产品的途径。我们的产品如何完成这些事情?,构造情景的方法,竞争对手的输出:嗨!看看他们生成的这些漂亮的文件。或者,瞧他们能够把语法错误的网页显示出来。咱们的产品能吗?客户的表格:这儿有几种客户在业务中使用的表格,我们的程序能处理(读、填写、显示、确认)它们吗?用例分析中提到的情景XP开发过程中的
17、客户故事,电视连续剧法,基于实际生活经验构造情景,即用户/客户的经验。夸大其中的每一个方面:例如,对每一个变量,输入一个极端的值例如,如果一个情景包含一个重复的环节,那就重复很多很多次将测试用例所处的环境设置得很糟糕(减少内存,减少硬盘空间,网络故障,打印机分辩率低,视频分辨率低,等等)不要忘了所有可能发生问题的情形!将所有元素包含在一个“真实”的故事中。,模式:组合测试,系统化地对测试变量进行合理组合为使某些缺陷发生(或重现),你必须有意识地控制两个或多个变量的值。将数目众多的组合减少到合理的程度组合测试实例组合多个变量的边界值组合多个测试“因果图”测试优点可以用很少的测试达到很高的测试覆盖
18、率弱点可信度,组合测试实例,一个汽车保险公司的保险购买系统保险的档次分为:1类(高风险)2类(中等风险)3类(低风险)系统根据用户的年龄及驾龄,判断应给予哪一类的保险。,组合测试实例,保险公司政策年龄18,驾龄不计:拒绝服务18=年龄22,且驾龄1:1类18=年龄22,且1=驾龄:2类22=年龄55,且驾龄1:1类22=年龄55,且1=驾龄3:2类22=年龄55,且3=驾龄:3类55=年龄75,且驾龄1:1类55=年龄75,且1=驾龄:2类75=年龄,驾龄不计:拒绝服务,组合测试实例,组合表,模式:探索测试,测试文档缺少或不足的软件时,测试人员必须在测试的过程中学习产品,及测试用例/策略可能发
19、现的缺陷。边学边计划,边测试探索测试实例对整个产品进行熟练的探索测试游击式测试(对某个方面进行一段苛刻的测试)紧急测试第三方构件测试故障排除/发现缺陷后的补充测试,探索测试,在同一时间段里:了解产品了解市场了解导致产品失败的途径了解产品弱点学习如何测试产品测试产品报告问题要求修复在对产品已有了解的基础上,设计新测试,探索测试,优点关注用户,关注风险利用测试者的能力应变能力强可以避免重复的分析和测试高缺陷发现率弱点知道的越少,错过的缺陷越多受测试者弱点的限制(可通过好的协调管理减轻对个人能力要求很高,没有监督的初期测试人员不能很好完成任务,需要注意的问题,适应程度会影响发现问题的可能缺乏足够信息
20、会阻碍探索昂贵或困难的系统设置可能增加探索的耗费探索的反馈环节可能会比较慢问题可能会重复出现如果没有完善的测试用例和过程,MTBF(MeanTimeBetweenFailure)可能较低,探索的风格,经验丰富、老练的探索者形成自己特有的风格。通过观察这些经验丰富的探索者,可以发现非常不同的风格。,配对测试(PairedTesting),与XP开发模式中的PairedProgramming类似两个测试人员工作结伴完成测试工作自愿结合负责某项测试任务的人,征召一个或多个同伴(每次一人)辅助自己的工作一个测试人员负责操作,另一人负责提供思路、意见、做记录,询问问题,找参考资料,等。,探索测试模式的推
21、荐方法,配对测试过程,从项目概要出发,选择一个需要化一天或更少时间完成的任务略述将要进行的一期测试活动测试什么用什么工具使用什么测试方法可能有哪些风险关注什么样的缺陷检查什么文档期望的结果是什么每期测试活动一般持续6090分钟,配对测试的好处,有利于开发思路,产生建议的活动启发式,开放式,多维的迫使测试人员解释的思路,或对别人的建议做出反应交流的过程能够促使更多的想法产生鼓励创造性思维有助于获得更多深入的信息有助于让一个测试人员集中精力,进行持续的测试。非操作的测试人员可以:收集和记录思路和零星的想法在第二台机器上再现某个事件获取执行测试所需要的资源:查手册、工具,打电话,找开发人员,等等。,
22、配对测试的好处,提供缺陷报告的质量重现的可能更大所有报告的内容都有第二个人审阅对每个设计问题进行合理性检查有效的培训方式对新手极有效的培训不断从别人那里学习新知识对经验丰富的测试人员快速掌握新领域很有帮助还有一些技术上的益处可以在两台机器上进行同样的测试人工的负载测试易于完成一些需要多角色交互的测试,一些建议,应允许初级测试人员执行操作和发表看法,而不只是做一些杂物。责任应当明确。配对测试组中的一人应对任务的完成付责任。有些内向的人可能需要一些独立思考和工作时间,以准备团队的合作。有些人有很强的思维主导性,不愿意接受别人的意见。需要接受一定的培训。,测试模式小结,测试模式只是辅助测试人员构思测试的框架,并不局限于列举的这些。模式相互可以重叠,例如你可以采用:基于规范说明的组合测试基于风险的情景测试探索式的范围测试最重要的是思考的方式,而不是教条。你可以总结自己的模式,并不断提高。,黑盒测试技术练习,BroadbandGateway,互联网,服务器,ISPRouter,用户电脑,被测系统,规格说明及相关信息,具有4个10/100Base-TEthernet端口,可与PC网卡相连LAN侧支持DHCP协议,可给PC分配动态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农行知识点课件
- 二零二五年展会现场保洁与设施管理合同补充条款
- 2025版教育培训机构劳动合同封面
- 2025版茶叶礼盒定制与销售合同
- 二零二五年电子烟ODM定制加工合同
- 2025版茶餐厅连锁经营合同范本
- 2025版厂房建设项目风险管理与应急预案合同
- 二零二五年度挖掘机零配件采购合同范本
- 二零二五版新型节能门窗安装与节能减排评估合同范本
- 2025年玻璃纤维增强塑料安装工程合同范本
- 装修售后维修合同协议
- EBU导管选择和操作长头指引导管课件
- MT/T570—1996煤矿电气图专用图形符号
- 燃气输配工程设计施工验收技术规范 DB11T 302-2005
- 自动喷水灭火系统严密性试验记录
- 河北省城市集中式饮用水水源保护区划分
- 工程材料采购方案(完整版)
- 部编本新人教版一年级下册语文教学计划
- 慢阻肺的健康教育
- CH-iVMS-4200部署方案
- 银河YH3120系列智能称重显示控制器
评论
0/150
提交评论