版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件测试技术授课:孔春波 软件的缺陷-BUG恐怖的BUG恐怖的BUG千年虫问题.爱国者导弹防御系统.火星登陆事故.高铁的自动闭塞系统.软件测试的发展软件调试独立的软件测试第一次定义成为专门的学科与开发的融合国内测试行业现状国内测试行业现状测试人员现状基础知识不够扎实专业技术不够精通没有建立起相对完整的测试体系概念国内软件测试未来发展职业重视程度正在快速提高企业对高质量的测试工程师需求量越来越大短期将出现测试工程师严重短缺的现象技术要求 腾讯技术要求 腾讯技术要求 百度技术要求 迅雷测试人员要掌握的技术1.系统编程语言:C/C+,JAVA,C#.2.脚本语言:PERL,RUBY,PYTHON3.
2、软件架构,UML4.数据库5.网络协议,操作系统6.人机交互认知编写文档的能力测试技术测试工具课程目标本课程是计算机或软件专业课程,重在培养我们的实践能力,适应软件企业的工作环境和业界标准,并和国际先进的软件开发理念和测试技术保持同步。通过本课程的学习,了解并掌握软件产品质量保证的基本思想和科学体系、软件测试技术的基本内容,以及软件测试的方法、技术和工具的使用,为全面掌握软件技术和软件项目管理打下坚实的基础 课程内容有效的测试策略、方法和技术测试计划和测试用例的设计测试自动化的引入、应用 测试团队的建立和测试项目的管理更清楚、准确地报告测试缺陷 对软件产品质量的正确评估软件测试和质量保证的关系
3、和区别 课程培养方向- 测试工程师 Test engineer QA工程师/经理 QA Engineer/Manager 软件工程过程组成员 The member of SEPG 项目经理 Project manager 程序员 Programmer 软件分析师 Software Analyst 软件咨询顾问 Software Consultant 授课的层次Know What某领域基本知识点的掌握Know How可以活用学到的知识来解决实际问题Know Why了解各种知识之后的复杂交错的因果关系,一切都是那么有条理,因此可能解决更大更复杂的问题Care Why(创新)软件产品也需要创意和洞察
4、先机我们短期努力可以达到Know Why的阶段Case Why(创新)则需要多年的实际开发经验并具有敏锐的市场商业头脑才能做到。参考书籍软件测试Ron Patton 机械工业出版社 软件测试教程 宫云战 机械工业出版社 联系方式电子邮件:kakaru移动电话相信你能或者不能你都是对的软件测试综述内容软件概念和特点软件危机软件测试的产生软件测试的定义软件测试的发展和前景软件的概念GB/T 17544-1998:信息处理系统的所有或部分程序、规程、规则和任何相关的文档的集合 程序:源程序目标程序 源程序:高级语言、汇编语言编写的程序 目标程序:源程序经编译或解释加工以后可
5、以由计算机直接执行的程序 文档:用自然语言或形式化语言所编写的文字资料和图表,用来描述程序的内容、组成、设计、功能规格、开发情况、测试结果及使用方法软件的特点计算机软件是工具,同时也是作品,是工具性与作品性紧密结合的智力成果 计算机软件开发工作量大,成本高,但复制容易,成本极低 计算机软件具有无形性,可以多次使用,但商业寿命较短软件危机落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象 如何开发软件,怎样满足对软件日益增长的需求如何维护数量不断膨胀的已有软件 软件危机的表现对软件开发成本和进度的估计很不准确成本高,进度拖延信誉低赶进度,节约
6、成本质量低用户对“已完成的”软件系统不满意对用户需求模糊,匆忙开始,开发和用户交流不充分软件产品质量常常靠不住软件质量保证刚出现,质保技术刚应用,没有坚持贯彻软件危机的表现软件常常不可维护错误难改正,程序难适应新硬件环境,难新增功能软件通常没有适当的文档资料软件成本在计算机系统成本中所占比例逐年上升硬件成本降低,开发人力增加,通货膨胀,软件规模增大,数量急剧增加,软件成本占系统成本90软件危机产生的原因软件本身存在着复杂性与软件开发人员和所使用的方法、技术有关科学技术发展计算机广泛应用要求软件跟上开发大型软件软件技术发展复杂程度高研发周期长正确性难以保证软件危机软件测试的发展软件调试独立的软件
7、测试第一次定义成为专门的学科与开发的融合软件测试的产生软件危机能够解决吗?没有银弹!软件测试的产生社会的发展与进步,信息化产业的飞步增长,软件系统越来越大,软件中存在的问题也越来越多软件测试的产生需要第三方平衡开发人员和用户技术员:用什么技术实现需求、展现自己的实力、不关心对用户使用有什么弊端用户:是否满足需求、是否易用、不关心开发人员用什么难度技术实现三个角度看测试公司经济角度以最少人力,物力和时间找出软件中潜在的各种错误和缺陷通过修正各种错误和缺陷提高软件质量回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险三个角度看测试客户角度是以评价一个程序或者系统属性为目标的活动对软件
8、质量的度量与评估,以验证软件的质量满足用户的需求的程度为用户选择与接受软件提供有力的依据三个角度看测试开发技术角度通过分析错误产生的原因,可以帮助发现当前开发工作所采用的软件过程的缺陷,以便进行软件过程改进通过对测试结果的分析整理,可以修正软件开发规则,为软件可靠性分析提供依据软件测试的定义1979年,Glenford Myers,The Art of Software Testing:为了发现错误而执行程序或者系统的过程1980年,在美国俄勒冈计算机会议上软件测试被正式确认为软件工程的一部分软件测试的定义1983年,Bill Hetzel在软件测试完全指南(Complete Guide of
9、 Software Testing)一书中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动1983年,IEEE软件工程标准术语:使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别软件缺陷的定义缺陷软件未达到产品说明书中已标明的功能软件出现了产品说明书中指明不会出现的错误软件功能超出了产品说明书指明的范围软件未达到产品说明书虽未指出但应达到的目标软件测试员认为软件难以理解,不易使用,运行速度缓慢,或者最终用户认为该软件使用效果不好测试与调试的区别测试调试完成任务发现程序中的缺陷定位并且解决程序中的问题执行人测试人员 黑盒
10、单元、集成测试 开发人员执行周期贯穿整个软件开发生命周期一般在开发阶段软件测试过程及分类本节内容测试过程测试的分类按测试的方法分类按测试的阶段分类软件测试的过程测试需求的分析和确定测试计划测试执行测试记录和缺陷跟踪回归测试测试总结报告测试过程1. 测试需求需求文档的测试测试过程2.测试的计划对测试过程的整体设计确定测试范围制定测试策略安排测试资源进度制定风险评估,应对策略测试过程3.测试设计及用例测试设计用例设计用例评估测试过程4.测试的执行用例的选择(难的?复杂的?优先级高的?)测试环境的搭建每日构建测试过程5.测试的记录和跟踪Bug记录Bug管理Bug的报告(沟通,评审,提交)Bug的跟踪
11、测试过程5.回归测试再测一次?测试过程6.测试总结和报告缺陷的分类报告(类型,区域,状态,趋势)客观全面的报告生成(人员,用例,功能覆盖,时长)经验总结软件测试的分类-按方法静态与动态测试静态测试不运行程序动态测试运行程序,需要准备测试数据软件测试的分类-按方法黑盒测试、白盒测试、灰盒测试y=2x?y=x2软件测试的分类-按方法冒烟测试对每一个新编译的需要正式测试的软件版本,确认软件基本功能正常,可以进行后续的正式测试工作回归测试在修改程序以后,重新测试先前的测试以保证修改的正确性软件测试的分类-按方法功能测试与性能测试根据软件产品特性、操作描述和用户方案测试软件产品的特性和可操作行为以确定满
12、足设计需求评价软件产品与性能需求是否符合(包括负载测试、强度测试、数据库容量测试、基准测试等)软件测试的分类-按方法压力测试和负载测试获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力用于检查系统在使用大量数据的时候正确工作的能力,即检验系统的能力最高到什么程度负载测试是通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力软件测试的分类-按方法配置测试检查计算机系统内各个设备或各种资源之间的相互连接和功能分配中的错误文档测试检查文档的正确性、完备性、可理解性兼容性测试测试软件是否和系统的其他与之交互的元素之间兼容软件测试的分类-按方法安全性测试检查系统对非法
13、侵入的防范能力,检查系统中已经存在的系统安全性、保密性措施是否发挥作用,有无漏洞恢复测试检查系统的容错能力 可移植性测试测试软件是否可以被成功移植到指定的硬件或软件平台上软件测试的分类-按方法引导测试软件开发中,验证系统在真实硬件和客户基础上处理典型操作的能力外包测试中,是客户检查软件测试公司测试能力的一种形式随机测试没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试软件测试的分类-按方法手工和自动测试手工测试是采用人工手动的方式执行测试自动化测试是使用自动化测试工具来进行测试,不需要人工干预,主要用在GUI、性能等测试中通过测试失败测试使用满足不满足需求的数据测试系统错误猜测通过直觉
14、发现程序中的错误和缺陷的能力软件测试的分类-按方法易用性测试主要从使用的合理性和方便性等角度对软件系统进行检查安装测试确保软件在正常情况和异常情况的不同条件下都能进行安装界面测试测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字图片组合是否完美,操作是否有好软件测试的分类-按阶段单元测试针对每一个程序模块进行正确性检查,检查各个程序模块是否正确的实现了规定的功能集成测试在单元测试的基础上将已经通过测试的单元模块按照设计要求组装成系统或子系统进行测试,找出被测系统组件之间关系和接口中的错误非增式集成增式集成自顶向下自底向上软件测试的分类-按阶段确认测试由集成测试进入系统测试之前
15、,需要对软件是否可以进入系统测试进行评价,这个称为确认测试测试所开发的软件是否能按用户提出的要求运行软件配置审核保证软件配置的所有成分都齐全,各方面质量都符合要求系统测试与计算机硬件、外设、支持软件、数据、人员等其他元素结合,在实际运行环境下的测试软件测试的分类-按阶段验收测试测试内测测试公测END!共享资源公共邮箱: 6dao16课件,笔记会放在邮箱的网盘中作业,实验报告按班级打包以邮件方式发送到这个邮箱软件测试的目的和原则目的建立软件的信心理件软件测试目的验证(Verfication):软件生命周期的各个阶段,用下一个阶段的产品来检查是否满足上一个阶段的规则确认(Validation):软
16、件生命周期的各个阶段,检查是否满足需求阶段定义的各项规格和要求。原则Good Enough原则:投入与产出平衡Pareto原则:二八原则尽可能早的开展测试错误多的地方多投入同化问题:交叉测试,利用不同人的观点问题:软件测试的目的?软件测试是否发现所有的BUG?测试人员在进行测试的时候遵循什么原则?软件测试开始的时间?软件测试的过程测试需求的分析和确定测试计划测试执行测试记录和缺陷跟踪回归测试测试总结报告测试需求对需求文档的测试或评审 需求的测试是重点需求可能存在的问题需求文档编写有问题、功能不明确,流程不清晰,不正确占50%余下50%是需求的遗漏造成的检查的要点对于需求文档,应该遵循尽早测试的
17、原则完整性:每一项需求都必须将所要实现的功能描述清楚,以使开发人员获得设计和实现这些功能所需的所有必要信息。正确性:每一项需求都必须准确地陈述其要开发的功能。一致性:一致性是指与其它软件需求或高层(系统,业务)需求不相矛盾。可行性:每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施的。无二义性:对所有需求说明的读者都只能有一个明确统一的解释,由于自然语言极易导致二义性,所以尽量把每项需求用简洁明了的用户性的语言表达出来。健壮性:需求的说明中是否对可能出现的异常进行了分析,并且对这些异常进行了容错处理。必要性:“必要性”可以理解为每项需求都是用来授权你编写文档的“根源”。要使每项需求都
18、能回溯至某项客户的输入,如Use Case或别的来源。可测试性:每项需求都能通过设计测试用例或其它的验证方法来进行测试。可修改性:每项需求只应在S R S 中出现一次。这样更改时易于保持一致性。另外,使用目录表、索引和相互参照列表方法将使软件需求规格说明书更容易修改。可跟踪性:应能在每项软件需求与它的根源和设计元素、源代码、测试用例之间建立起链接链,这种可跟踪性要求每项需求以一种结构化的,粒度好(f i n e - g r a i n e d )的方式编写并单独标明,而不是大段大段的叙述。另外应当对所有的需求分配优先级。如果把所有的需求都看作同样的重要,那么项目管理者在开发或节省预算或调度中就
19、丧失控制自由度需求文档检查步骤尝试理解需求规格说明书原始需求文档检查列表讨论、评审、修订需求文档检查列表序号检查项检查结果说明1是否覆盖了用户提出的所有需求项是否NA2用词是否清晰,语义是否存在有歧义的地方是否NA3是否清楚地描述了软件系统需要做什么及不做什么是否NA4是否描术了软件使用的目标环境,包括软硬件环境是否NA5是否对需求项进行了合理的编号是否NA6需求项是否前后一致,彼此不冲突是否NA7是否清楚说明了系统的每个输入、输出的格式,以及输入输出之间的对应关系是否NA8是否清晰描述了软件系统的性能要求是否NA9需求的优先级是否合理分配是否NA10是否描述了各种约束条件是否NA编写测试用例
20、需求规格说明书测试用例虚拟软件产品测试人员开发人员“预演”测试测试用例编号:Input_001测试优先级:中测试目的:验证业务单据数据的查询正确性标题:业务单据查询步骤: 1.打开查询界面 2.输入查询条件 3.确定并提交查询 4.查看并验证返回的信息还有.除了文档检查和测试用例外,可以通过用户调查和利用现存产品对需求进行测试一些技术建议熟悉UML测试前了解软件系统对应的行业多熟悉需求: 温伯格的探索需求设计前的质量 Exploring Requirements:Quality Before DesignEND!测试计划的编写测试用例设计的方法软件测试的过程测试需求的分析和确定测试计划测试执行
21、测试记录和缺陷跟踪回归测试测试总结报告测试计划制定可行的计划 凡是预则立,不预则废项目的关键项目成功的四大要素时间成本范围质量测试计划的作用内部作用:作为测试计划的结果,让相关人员和开发人员来评审存储计划执行的细节,让测试人员进行评审存储计划进度表,测试环境等更多的信息外部作用:给顾客信心交待测试过程,人员,资源,使用工具测试计划的设计与实现取得需求文档确定测试策略确定测试系统测试设计和实现复查测试计划预估测试工作量需求规格说明书1.测试的范围(将要测试什么)2.测试方法(如何完成测试)3.测试入口/退出条件和质量检查点4.自动化策略1.测试构架2.测试环境3.测试配置1.确定任务2.预估工作
22、量3.确定时间进度计划1.编写策略、系统、工作量和时间进度文档2.与项目团队一起复查测试计划IEEE定义的测试计划测试计划:一个叙述了预定的测试活动范围、途径、资源及进度安排的文档。它确定了测试项、被测特征、测试任务、人员安排以及与计划相关的风险。三要素:时间资源范围其他方面策略风险控制测试计划内容5-1 确定测试范围5-2 制定测试策略5-3 测试资源安排5-4 进度及安排5-5 风险及对策5-1确定测试范围明确哪些要测,哪些不要测,比如大部分软件系统不需要测硬件不要忽略了用户手册,安装包,数据库等信息,这些也决定产品好坏某些阶段的测试或者某些内容的测试可以简化当对原有系统进行修改升级时,某
23、些测试不需要某些测试根本不可能进行5-2 制定测试策略测试策略(1/4)确定测试顺序先测优先级最高的需求对新功能和修改功能的代码进行测试运用等价划分技术和边界值分析技术减少测试工作量测试那些最有可能出现问题的地方关注用户最常使用的功能和配置情况等测试策略(2/4)确定测试方法对需求文档进行静态测试,主要采用审查走查的方法验证需求的完整性、一致性可行性需求分析阶段白盒测试方法由程序员完成编码和单元测试阶段黑盒测试方法设计用例时注意等价划分和边界值方法集成测试阶段黑盒测试方法测试工具,进行自动化测试,包括系统的功能和性能测试系统测试阶段动态、黑盒测试方法由用户来进行验收测试阶段测试策略(3/4)测
24、试标准入口标准:描述在开始之前需要做哪些工作出口标准:描述在怎样的情况下可以结束测试暂停/继续测试:描述如果缺陷妨碍测试进行下去,会发生什么事情。如果情况很糟,无法执行计划的测试,则应暂停测试,等完成修复工作后,再完成测试工作。通过/失败标准执行每项测试应该有一个明确的预期结果。如果得到了预期的结果,测试就通过。否则表示测试失败。测试策略(4/4)自动化测试工具的选择是否使用自动化测试工具,哪个阶段用什么工具好处:能够很好进行性能测试和压力测试能够改进回归测试能够缩短测试周期能够提高测试工作的课重复性测试软件的编写5-3 安排好测试资源根椐测试对象的复杂度、质量要求,结合经验数据对测试工作量进
25、行评估注意:每个测试项最好安排不少于两人,以便交叉测试5-4 安排测试进度5-5 计划风险项目计划变更、测试资源不能到位可能产生风险实际操作时的建议:建立后备机制,让后备测试人员参与项目例会,评审,培训,交流等活动复查测试文档详细描述工作的范围估计定义测试用例和实施测试所需工作确定所需资源(人、硬件、软件和工具)为各个人物分配资源制定进度表确定进度安排或质量风险制定解决风险的应急计划追踪项目进展并采取纠正措施在适当的时候重新定制向整个项目提供测试状态的可视性对失败或堵塞测试纠正后重新测试测试计划是一份描述软件测试工作的目标、策略、方法和重点的文档测试计划的准备过程是思考检查并确认一个软件产品的
26、可接受性的一个有用的方法测试计划测试计划文档测试计划的目的尽早地明确测试工作内容(范围)、测试工作的方法以及测试工作所需要的各种资源。所有涉及到测试工作的人员,尽快将下一步测试工作需要考虑的问题和准备的条件落实。测试计划工作的重点在于:对当前工作任务的准备和规划以及信息的交流。增强测试计划的实用性坚持“5W1H”规则,明确内容与过程采用评审和更新机制,保证测试计划满足实际需求测试计划和测试策略测试计划注意事项测试计划编写6要素?(5W1H) wherewhat when why为什么要进行这些测试相应文档,缺陷的存放位置,测试环境等测试不同阶段的起止时间测试哪些方面,不同阶段的工作内容 who
27、项目有关人员组成,安排哪些测试人员进行测试 how如何去做,使用哪些测试工具以及测试方法进行测试测试的设计及测试用例测试用例的作用交付给顾客的产品一部分,提高产品可信度做内部使用,在代码未完成前,准备好,在代码开发或结束后可以快速投入测试基于需求的测试用例设计验证需求是否正确,完整性,无二义性,并且逻辑一致从“黑盒”角度设计出充分并且必要的测试集基于需求的测试需要工具支持,比如QC(QualityCenter)测试用例设计等价类划分法边界值分析法基本路径分析法因果图法场景设计法错误猜测试正交分解法测试的设计及测试用例黑盒测试用例的设计测试用例的作用交付给顾客的产品一部分,提高产品可信度做内部使
28、用,在代码未完成前,准备好,在代码开发或结束后可以快速投入测试基于需求的测试用例设计验证需求是否正确,完整性,无二义性,并且逻辑一致从“黑盒”角度设计出充分并且必要的测试集基于需求的测试需要工具支持,比如QC(QualityCenter)测试用例设计等价类划分法边界值分析法因果图法基本路径分析法场景设计法错误猜测试正交分解法.黑盒测试的基本概念 黑盒测试是从一种从软件外部对软件实施的测试,也称功能测试或基于规格说明的测试。其基本观点是:任何程序都可以看作是从输入定义域到输出值域的映射,这种观点将被测程序看作一个打不开的黑盒,黑盒里面的内容(实现)是完全不知道的,只知道软件要做什么。因无法看到盒
29、子中的内容,所以不知道软件是如何实现的,也不关心黑盒里面的结构,只关心软件的输入数据和输出结果。黑盒测试的基本概念 黑盒测试是从用户观点出发的测试,其目的是尽可能发现软件的外部行为错误。在已知软件产品功能的基础上,检测软件功能能否按照需求规格说明书的规定正常工作,是否有功能遗漏;检测是否有人机交互错误,是否有数据结构和外部数据库访问错误,是否能恰当地接收数据并保持外部信息(如数据库或文件)等的完整性;检测行为、性能等特性是否满足要求等;检测程序初始化和终止方面的错误等。黑盒测试的基本概念 黑盒测试着眼于软件的外部特征,通过上述方面的检测,确定软件所实现的功能是否按照软件规格说明书的预期要求正常
30、工作. 两个显著的优点: 黑盒测试与软件具体实现无关,所以如果软件实现发生了变化,测试用例仍然可以使用; 设计黑盒测试用例可以和软件实现同时进行,因此可以压缩项目总的开发时间。黑盒测试的基本概念 穷举输入测试是不现实的。这就需要我们认真研究测试方法,以便能开发出尽可能少的测试用例,发现尽可能多的软件故障。 常用的黑盒测试方法有等价类划分、边界值分析、决策表测试等,每种方法各有所长,我们应针对软件开发项目的具体特点,选择合适的测试方法,有效地解决软件开发中的测试问题。 等价类划分等价类划分法是一种典型的黑盒测试方法,它完全不考虑程序的内部结构,只根据程序规格说明书对输入范围进行划分,把所有可能的
31、输入数据,即程序输入域划分为若干个互不相交的子集,称为等价类,然后从每个等价类中选取少数具有代表性的数据作为测试用例,进行测试。等价类划分等价类划分方法 所谓等价类是指输入域的某个互不相交的子集合,所有等价类的并便是整个输入域。 1划分等价类(1)有效等价类检验程序是否实现了规格说明预先规定的功能和性能。(2)无效等价类检查软件功能和性能的实现是否有不符合规格说明要求的地方。等价类划分方法2常用的等价类划分原则(1)按区间划分(2)按数值划分(3)按数值集合划分(4)按限制条件或规则划分(5)细分等价类等价类划分方法 在确立了等价类之后,可按下表的形式列出所有划分出的等价类表: 等价类表 同样
32、,也可按照输出条件,将输出域划分为若干个等价类。输入条件有效等价类无效等价类等价类划分方法3等价类划分测试用例设计 在设计测试用例时应同时考虑有效等价类和无效等价类测试用例的设计。根据等价类表设计测试用例,具体步骤如下: (1)为每个等价类规定一个唯一的编号。 (2) 设计一个新的测试用例,尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到测试用例覆盖了所有的有效等价类。 (3) 设计一个新的测试用例,使其覆盖并且只覆盖一个还没有被覆盖的无效等价类。重复这一步,直至测试用例覆盖了所有的无效等价类。等价类划分等价类划分法的测试运用 三角形问题的等价类测试 【例】 三角形问题是软件测试文献中使
33、用最广泛的一个例子。输入三个整数a、b和c分别作为三角形的3条边,通过程序判断由这3条边构成的三角形类型是:等边三角形、等腰三角形、一般三角形或非三角形(不能构成一个三角形)。 等价类划分法的测试运用三角形问题可以更详细地描述为: 输入3个整数a、b和c分别作为三角形的三条边,要求a、b和c必须满足以下条件: Con11a10 Con 21b100 Con 31c100 Con 4ab+c Con 5ba+c Con 6ca+b如果a、b和c满足Con1、Con2和Con3,则输出为4种情况之一:如果不满足条件Con 4、Con 5和Con 6中有一个,则程序输出为“非三角形”。如果三条边相等
34、,则程序输出为“等边三角形”。如果恰好有两条边相等,则程序输出为“等腰三角形”。如果三条边都不相等,则程序输出为“一般三角形”。等价类划分法的测试运用2保险公司人寿保险保费计算程序的等价类测试【例2】 某保险公司人寿保险的保费计算方式为: 保费投保额保险费率 其中,保险费率根据年龄、性别、婚姻状况和抚养人数的不同而有所不同,体现在不同年龄、性别、婚姻状况和抚养人数,点数设定不同,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则见表。年龄性别婚姻状况抚养人数20394059其它MF已婚未婚1人扣0.5点,最多扣
35、3点6点4点2点4点3点3点5点等价类划分法的测试运用 分析程序规格说明中给出和隐含的对输入数据的要求,可以得出: 年龄:一位或两位非零整数,取值的有效范围为199。 性别:一位英文字符,只能取 M或F 值。 婚姻:字符,只能取已婚或未婚。 抚养人数:空白或字符无或一位非零整数(19) 点数 :一位或两位非零整数,取值范围为819 通过对规格说明输入数据的取值分析,可以得出保险公司人寿保险保费计算程序的等价类。等价类划分法的测试运用等价类测试存在两个问题: 一是规格说明往往没有定义无效测试用例的期望输出应该是什么样的。因此,测试人员需要花费大量时间来定义这些测试用例的期望输出。 二是强类型语言
36、没有必要考虑无效输入。传统等价类测试是诸如FORTRAN和COBOL这样的语言占统治地位年代的产物,那时这种无效输入的故障很常见。事实上,正是由于经常出现这种错误,才促使人们使用强类型语言。 边界值分析法大量的软件测试实践表明,故障往往出现在定义域或值域的边界上,而不是在其内部。为检测边界附近的处理专门设计测试用例,通常都会取得很好的测试效果。边界值分析法是一种很实用的黑盒测试用例方法,它具有很强的发现故障的能力。 边界值分析法1边界条件边界条件就是软件计划的操作界限所在的边缘条件。一些可能与边界有关的数据类型有:数值,速度,字符,地址,位置,尺寸,数量等。同时,考虑这些数据类型的下述特征:
37、第一个/最后一个,最小值最大值,开始完成,超过/在内,空满,最短最长,最慢/最快,最早/最迟,最高最低,相邻最远等。常见的边界值 对16-bit 的整数而言 32767 和 -32768 是边界 屏幕上光标在最左上、最右下位置 报表的第一行和最后一行 数组元素的第一个和最后一个 循环的第 0 次、第 1 次和倒数第 2 次、最后一次边界值分析法 其实边界值和等价类密切相关,输入等价类和输出等价类的边界是要着重测试的边界情况。在等价类的划分过程中产生了许多等价类边界。边界是最容易出错的地方,所以,从等价类中选取测试数据时应该关注边界值。 在等价类划分基础上进行边界值分析测试的基本思想是,选取正好
38、等于、刚刚大于或刚刚小于等价类边界的值作为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。边界值分析法2边界值分析测试 这里讨论一个有两个变量x1和x2的程序P。假设输入变量x1和x2在下列范围内取值: ax1b, cx2d 边界值分析利用输入变量的最小值(min),稍大于最小值(min+),域内任意值(nom),稍小于最大值(max-),最大值(max)来设计测试用例。边界值分析法 对于一个n变量的程序,边界值分析测试会产生4n+1个测试用例。边界值分析法3. 健壮性边界值测试 健壮性测试是边界值分析的一种扩展。 变量除了取min,min,nom,max,max五个边界值外,还要考
39、虑采用一个略超过最大值(max+)以及一个略小于最小值(min-)的取值边界值分析法 健壮性边界值测试将产生6n+1个测试用例. 健壮性测试最有意义的部分不是输人,而是预期的输出,观察例外情况如何处理。边界值举例250-500边界值:249、250、251、499、500、501边界值分析法边界值分析法的测试运用 1. 三角形问题的边界值分析测试用例设计 边界值分析测试用例测试用例abc预期输出Test 1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等边三角形等腰三角形非三角形Test6Test7Test8Test960
40、605050129910060605050等腰三角形等腰三角形等腰三角形非三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形非三角形边界值分析法的测试运用加法器边界值测试用例设计【例】 加法器程序计算两个1100之间整数的和。 对于加法器程序,根据输入要求可将输入空间划分为三个等价类,即1个有效等价类(1100之间),两个无效等价类(100)。但这种等价类划分不是很完善,我们只考虑了输入数据的取值范围,而没有考虑输入数据的类型,我们认为输入应为整数,但用户输入什么都有可能。边界值分析法的测试运用为此,我们可综合考虑
41、输入数据的取值范围和类型划分等价类,其结果如下表所示。 加法器等价类编号输入条件所属类别编号输入条件所属类别11100之间整数有效等价类5非数值(字母)无效等价类2100整数无效等价类7非数值(空格)无效等价类4小数无效等价类8非数值(空白)无效等价类 边界值分析法的测试运用 加法器边界测试用例测试用例输入数据预期输出加数1加数2和Test115051Test 225052Test 39950149Test 410050150Test 550151Test 650252Test 75099149Test 850100150Test 9050提示“请输入1100间的整数”Test 10500提示
42、“请输入1100间的整数”Test1110150提示“请输入1100间的整数”Test1250101提示“请输入1100间的整数”Test130.250提示“请输入1100间的整数”边界值分析法的测试运用 加法器边界测试用例测试用例输入数据预期输出加数1加数2和Test14500.2提示“请输入1100间的整数”Test15A50提示“请输入1100间的整数”Test1650A提示“请输入1100间的整数”Test1750提示“请输入1100间的整数”Test1850提示“请输入1100间的整数”Test19空格50提示“请输入1100间的整数”Test2050空格提示“请输入1100间的整数
43、”Test2150提示“请输入1100间的整数”Test2250提示“请输入1100间的整数”边界值分析法的测试运用应用边界值分析法进行测试用例设计时,应遵循以下一些原则:(1)如果输入条件对取值范围进行了限定,则应以边界内部以及刚超出范围边界外的值作为测试用例。(2)如果对取值的个数进行了界定,则应分别以MAX、MAX-、MAX+、MIN、MIN-、MIN+个数作为测试用例。(3)对于输出条件,同样可以应用上面提到的两条原则来进行测试用例设计。(4)如果程序规格说明书中指明输入或者输出域是一个有序的集合,如顺序文件、表格等,则应注意选取有序集合中的第一个和最后一个元素作为测试用例。 因果图法
44、 等价类划分法和边界值分析方法都是着重考虑输入条件,如果程序输入之间没有什么联系,采用等价类划分和边界值分析是一种比较有效的方法。但如果输入之间有关系,例如,约束关系、组合关系,这种关系用等价类划分和边界值分析是很难描述的,测试效果难以保障,因此必须考虑使用一种适合于描述对于多种条件的组合,产生多个相应动作的测试方法,因果图正是在此背景下提出的。进行因果图法处理某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。 因果图法因果图法的原理 1因果图因果图法的原理 因
45、果图法的原理2因果图法测试用例的设计步骤:(1)确定软件规格中的原因和结果。分析规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(2)确定原因和结果之间的逻辑关系。分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。(3)确定因果图中的各个约束。由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。(4)把因果图转换为决策表。(5)根据决策表设计测试用例。因果图法的测试运用有一个处理单价为1元5角钱的盒
46、装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币 投入1元5角硬币投入2元硬币按“可乐”按钮按“雪碧”按钮按“红茶”按钮 退还5角硬币送出“可乐”饮料送出“雪碧”饮料送出“红茶”饮料 已投币 已按钮 因果图决策表法在所有的黑盒测试方法中,基于决策表的测试是最严格,最具有逻辑性的测试方法。决策表法决策表法 1决策表 决策表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。 它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试
47、用例集合。 决策表法决策表通常由条件桩、条件项、动作桩和动作项4部分组成。 条件桩 条件项 动作桩 动作项规则 决策表的组成 动作项和条件项紧密相关,指出在条件项的各组取值情况下应采取的动作。决策表法2决策表的构造及化简构造决策表可采用以下5个步骤:(1)列出所有的条件桩和动作桩。(2)确定规则的个数。(3)填入条件项。(4)填入动作项,得到初始决策表。(5)简化决策表,合并相似规则。因果图生成决策表因果+决策案例中国象棋中走马的实际情况 如果落点在棋盘外,则不移动棋子;如果落点与起点不构成日字型,则不移动棋子;如果落点处有自己方棋子,则不移动棋子;如果在落点方向的邻近交叉点有棋子(绊马腿),
48、则不移动棋子;如果不属于1-4条,且落点处无棋子,则移动棋子;如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子;如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束设计测试用例的方法原因: 1.落点在棋盘上 2.落点与起点构成日字3.落点处不为自己方棋子4.落点方向的邻近交叉点有棋子5.落点处无棋子6.落点处为对方棋子(非老将) 7.落点处为对方老将 结果 :21不移动棋子 22移动棋子23移动棋子,并除去对方棋子 24移动棋子,并提示战胜对方,结束游戏设计测试用例的方法决策表的例子因果图法+决策表作业 某软件规格说明书规定:输入的第一个字符必
49、须是#或*,第二个字符必须是一个数字,此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。 黑盒测试方法的比较与选择上面讨论了几种典型的黑盒测试方法,这些测试方法的共同特点是,它们都把程序看作是一个打不开的黑盒,只知道输入到输出的映射关系,根据软件规格说明设计测试用例。在等价类分析测试中,通过等价类划分来减少测试用例的绝对数量。边界值分析方法则通过分析输入变量的边界值域设计测试用例。在因果图测试方法和决策表测试中,通过分析被测程序的逻辑依赖关系,构造决策表,进而设计测试用例。黑盒测试方法的比较与选择1测试工作量 以边界值分析、等价类划分和决策表
50、测试方法来讨论它们的测试工作量,即生成测试用例的数量与开发这些测试用例所需的工作量。每种测试方法的测试用例数量黑盒测试方法的比较与选择由每种方法设计测试用例的工作量曲线:每种方法设计测试用例的工作量趋势 测试方法研究的目的就是在开发测试用例工作量和测试执行工作量之间做一个令人满意的折中。黑盒测试方法的比较与选择2测试有效性 解释测试有效性是很困难的。因为我们不知道程序中的所有故障,因此我们也不可能知道给定方法所产生的测试用例是否能够发现这些。 所能够做的,只是根据不同类型的故障,选择最有可能发现这种缺陷的测试方法(包括白盒测试)。根据最可能出现的故障种类,分析得到可提高测试有效性的实用方法。通
51、过跟踪所开发软件中的故障的种类和密度,也可以改进这种方法。黑盒测试方法的比较与选择 利用程序的已知属性,选择处理这种属性的方法,在选择黑盒测试方法时一些经常用到的属性有: 变量表示物理量还是逻辑量? 在变量之间是否存在依赖关系? 是否有大量的例外处理?黑盒测试方法的比较与选择 下面给出一些黑盒测试方法选取的初步的“专家系统”: 如果变量引用的是物理量,可采用边界值分析测试和等价类测试。 如果变量是独立的,可采用边界值分析测试和等价类测试。 如果变量不是独立的,可采用决策表测试。 如果可保证是单缺陷假设,可采用边界值分析和健壮性测试。 如果可保证是多缺陷假设,可采用边界值分析测试和决策表测试 如
52、果程序包含大量例外处理,可采用健壮性测试和决策表测试。 如果变量引用的是逻辑量,可采用等价类测试用例和决策表测试。测试的设计及测试用例(补充)黑盒测试用例的设计场景设计法大部分软件是由事件触发来控制流程的,事件触发时的情景就是所谓的场景编辑申请单确认取消确认审批生成申请报告不通过通过场景设计法根椐UML覆盖系统用例中的主成功场景和扩展场景,并且适当补充各种正反面的测试用例和考虑出现的异常情形测试人员要充分发挥对用户实际业务场景的想像关心用户做什么,而不是关心产品做什么优点:实用性强,有效,设计出来的用例有价值缺点:可能使用的场景不一定能对事件系列进行全面的分析,设计出来的用例不完整。场景设计法
53、场景设计法场景1成功提款基本流场景2ATM内没有现金基本流备选流2场景3ATM内现金不足基本流备选流3场景4PIN有误(还有输入机会)基本流备选流4场景5PIN有误(不再有输入机会)基本流备选流4场景6账户不存在/账户类型有误基本流备选流5场景7账户余额不足基本流备选流6场景设计法-场景设计TC(测试用例)ID号场景/条件PIN账号输入(或选择)的金额账面金额ATM内的金额预期结果Test1场景1:成功提款VVVVV成功提款Test2场景2:ATM内没有现金VVVVI提款选项不可用,用例结束Test3场景3:ATM内现金不足VVVVI警告消息,返回基本流步骤6,输入金额Test4场景4:PIN
54、有误(还有不止一次输入机会)IVn/aVV警告消息,返回基本流步骤 4,输入 PINTest5场景4:PIN有误(还有一次输入机会)IVn/aVV警告消息,返回基本流步骤 4,输入 PINTest6场景4:PIN有误(不再有输入机会)IVn/aVV警告消息,卡予保留,用例结束场景设计法-用例数据TC(测试用例)ID号场景/条件PIN账号输入(或选择)的金额(元)账面金额(元)ATM内的金额(元)预期结果Test1场景1:成功提款4987809-49850.00500.002 000成功提款。账户余额被更新为450.00Test2场景2:ATM内没有现金4987809-498100.00500.
55、000.00提款选项不可用,用例结束Test3场景3:ATM内现金不足4987809-498100.00500.0070.00警告消息,返回基本流步骤6,输入金额Test4场景4:PIN有误(还有不止一次输入机会)4978809-498n/a500.002 000警告消息,返回基本流步骤4,输入PINTest5场景4:PIN有误(还有一次输入机会)4978809-498n/a500.002 000警告消息,返回基本流步骤4,输入PINTest6场景4:PIN有误(不再有输入机会)4978809-498n/a500.002 000警告消息,卡予保留,用例结束错误猜测法是基于经验的直觉推测程序中可
56、能发生的各种错误,有针对性设计测试用例。优点:充分发挥个人的经验和潜能,命中率高缺点:覆盖率难以保证;过多的依赖个人的经验注意:最重要的是要思考和分析测试对象的各个方面,多参考以前发现的Bug的相关数据、总结的经验,个人多考虑异常的情况、反面的情况、特殊的输入,以一个攻击者的态度对待程序,那么就能设计出比较完善的测试用例。常见错误(1)聊天窗口功能输入特殊字符(全角、半角)后,窗口是否能够正常显示输入空格,是否能够过滤,是否会算长度计算 输入html字符 输入脚本语言函数 在需要密码验证,或者需要二次输入确认的地方,通过复制粘贴第一次的输入内容是否能够通过常见错误(2)查询功能 无条件查询 是
57、否支持模糊查询 查询的关键字之间是否可用连接符 输入正确的查询条件以前加上空格,看是否能正确查出相应的数据登陆功能 输入的数据前存在空格,是否能够正常登陆 输入的密码是否能够加密显示 用户在注销之后是否能够再登陆成功有趣的BUGX5O!P%AP4PZX54(P)7CC)7$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*联通、私通xp的IE下notepad问题xp下AAAA BBB CCC DDDDD正交表法正交表法是一种有效减少测试用例个数的设计方法。正交表是一整套规则的设计表格,L9(34), 。正交表的构造需要用到组合数学和概率学知识正交表例 : 姓名:填
58、,不填 性别:男,女 状态:激活,不激活2水平3因素正交表法步骤:确定有哪些因素每个因素有哪几个水平选择一个合适的正交表注意:不是每一个输入条件和参数的组合都能找到现在合适的正交表,有些时候需要进一步地通过拟水平法,拟因素法来变换正交表以便适应实际的情况/njas/oadir/index.html可以看到更多正交矩阵Allpairs正交矩阵工具/tools.shtml组合覆盖法有效减少测试用例个数的测试用例方法单因素覆盖、成对覆盖(pairwise)、三三组合覆盖 /成对组合覆盖要求任意两个因素的所有水平组合要被覆盖一次。组合覆盖法 假设某功能有3个因素(或者叫输入项),每个因素(输入项)有2
59、个不同的取值,分别为 【A1,A2】、 【B1,B2】 、 【C1,C2】 引入成对组合的概念之后,我们可以用成对组合集合来表示通常的测试用例集。对于某个给定的测试用例,它能覆盖一定数量的成对组合元素。例如: 测试用例(A1,B1,C1)覆盖了(A1,B1),(A1,C1),(B1,C1)3个成对组合元素。 测试用例(A1,B1,C2)覆盖了(A1,B1),(A1,C2),(B1,C2)3个成对组合元素。【A1,B1,C2】、【A1,B2,C1】、【A2,B1,C1】、【A2,B2,C2】组合覆盖法示例Type: Primary, Logical, Single, Span, Stripe,
60、Mirror, RAID-5Size: 10, 100, 500, 1000, 5000, 10000, 40000Format method: quick, slowFile system: FAT, FAT32, NTFSCluster size: 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536Compression: on, off组合覆盖法自动化工具微软PICT:/en-us/testing/bb980925.aspx/tools.asp分类树分类树方法的基本原理是:首先把测试对象的可能输入按照不同的分类方式进行分类,每一种分类要考虑的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度农村土地租赁协议模板(农业产业升级)
- 二零二五年度农村宅基地交易合同协议书(农村土地流转市场建设)2篇
- 2025年度租赁代售房屋广告推广服务合同2篇
- 二零二五年度体育场馆兼职教练员聘用协议3篇
- 2025年度农村养殖场智能监控系统租赁协议2篇
- 二零二五年度农机作业与农村电商物流服务合同3篇
- 二零二五年度公寓楼出租合同样本(含精装修、家具家电及物业费)3篇
- 二零二五年度婚庆行业独家竞业禁止授权书3篇
- 2025年度幼儿园后勤保障与设施租赁承包合同3篇
- 2025年农村旧房屋买卖与土地承包经营权合同3篇
- 湖南2025年湖南电气职业技术学院招聘14人历年参考题库(频考版)含答案解析
- 生物除臭系统施工方案
- DB51T 1069-2010 四川泡菜生产规范
- 《电工技术》课件-电气安全及电气火灾预防
- 湖南省湘西州吉首市2023届九年级上学期期末素质监测数学试卷(含解析)
- 2023-2024学年湖北省武汉市东西湖区三年级(上)期末数学试卷
- GB/T 31771-2024家政服务母婴护理服务质量规范
- 2023-建筑施工技02课件讲解
- 期末试卷:福建省厦门市集美区2021-2022学年八年级上学期期末历史试题(原卷版)
- 美容院2024年度规划
- 装饰装修巡查记录表
评论
0/150
提交评论