10月下旬T-NSS主轴项目在部件工廠的恒温车间进入了零件的正式组装阶段。
T-NSS主轴项目作为公司关键功能部件国产化项目得到公司领导大力支持、工作指导及相关部門的通力协作。该项目在经过前期大量的学习、调研、测试、准备工作以及项目组、研究院、部件工厂相关人员积极配合下,按照日本NSS公司要求明确职责、明确工艺、明确加工、装配小组的分组人员情况,使得现场工作有条不紊地展开
目前,组装人员对零件进行清洗去毛刺并试装零件11月底,对要求结束的B、C类零件已认真排好进度计划同时也拿出工艺改进的具体方案。T-NSS主轴项目的实施是公司的┅项长远战略目标掌握先进制造技术,以达到独立生产优质主轴的目的在两年的时间内实现BBT40-8000rpm和12000rpm、BBT50-8000rpm三种主轴的完全国产化,实现市场销售
据悉,11月底项目组将完成5套B、C两类零件的加工,并送日本进行检测为此,10月20日NSS项目组召集研究院、部件工厂、通能精机的楿关人员约20人,对加工零件的工艺及刀具进行了梳理明确了加工方法。 (张令)
数据统计:24 小时内发布0条 ... 一周内发布0条 ... 总发布数 1664
第一部分:软件评测知识
软件测試:在规定条件下对如果两个小组独立地测试同一个程序进行操作以发现错误,对软件质量进行评估包括对软件形成过程的文档、数據以及如果两个小组独立地测试同一个程序进行测试
软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力
软件测试只是质量保证工作中的一个环节软件质量保证与软件测试是软件质量工程的两个不同层面的工作;
质量保证:通过预防、检查与改进来保证软件質量,采用全面质量管理和过程改进的原理来开展质量保证工作主要关注软件质量的检查与测试,主要着眼于软件开发活动的过程、步驟和产特
软件测试:通过执行软件来对过程中的产物(开发文档和如果两个小组独立地测试同一个程序)进行走查,发现问题报告质量
测试是如果两个小组独立地测试同一个程序的执行过程,目的在于发现错误;
一个好的测试用例在于发现了至今未发现的错误;
一个成功的测试是发现了 至今未发现的错误的测试;
所有的软件测试都应追溯到用户需求
应当把“尽早地和不断地进行软件测试”作为测试者的座右铭
完全测试是不可能的测试需要终止
测试无法显示软件潜在的缺陷;
充分注意测试中的群集现象
如果两个小组独立地测试同一个程序员应避免检查自己的如果两个小组独立地测试同一个程序
如果两个小组独立地测试同一个程序开发过程中的各个文档、源如果两个小组獨立地测试同一个程序
是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系;
局限性:把测试作为编码之后的最后一个活動需求分析等前期产生的错误直到后期的验收测试才能发现
在V模型的基础上,增加千开发阶段的同步测试形成W模型;测试与开发同步進行,有利用尽早的发现问题
局限性:仍把开发活动看成是从需求开始到编码结束的串行活动只有上一阶段完成后,才可以开始下一阶段的活动不能支持迭代,自发性以及变更调整
在H模型中软件测试过程活动完全独立,贯穿于整个产品的周期与其他流程并发地进行,某个测试点准备就绪时就可以从测试准备阶段进行到测试执行阶段;软件测试可以进行尽早的进行;软件测试可以根据被测物的不同洏分层次进行
在实际工作中应灵活地运用各种模型的优点
强调了在整个软件项目开发中需要经历的若干个测试级别,并与每一个开发级别對应;忽略了测试的对象不应该仅仅包括如果两个小组独立地测试同一个程序没有明确指出对需求、设计的测试 |
补充了V模型中忽略的内嫆,强调了测试计划等工作的先行和对系统需求和系统设计的测试;与V模型相同没有对软件测试的流程进行说明 |
强调测试是独立的,只偠测试准备完成就可以执行测试 |
又称模块测试,是针对软件设计的最小单位如果两个小组独立地测试同一个程序模块进行正确性检查的測试工作;可以从如果两个小组独立地测试同一个程序的内部结构出发设计测试用例多个模块测试可以平行地独立进行测试 |
发现模块内蔀可能存在的各种差错 |
模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试 |
利用设计文档设计测试用例;创建被测模塊的桩模块或驱动模块;利用被测试模块、驱动模块和桩模块来建立测试环境,进行测试 |
又称组装测试或联合测试在单元测试基础上,將所有模块按概要设计和详细设计进行组装 |
发现模块连接中的接口可能存在的各种差错 |
穿越模块之间的数据是否会丢失;一个模块组装后昰否会对另一模块或其他模块存在影响;各个子功能组装在一起是否会达到预期的父功能;全局数据结构是否有问题;单个模块的错误累積起来是否会放在 |
一次性组装方式非增殖式方式也叫整体拼装,对模块分别测试然后将所有模块组装;第二种增殖式组装方式可以是洎顶向下或自底向上 |
成功地执行了测试计划中规定的所有测试用例;修正了所发现的错误;测试结果通过专门小组的评审 |
验证软件的功能囷性能及其他特性是否与用户的要求一致 |
有效性测试 运行黑盒测试方法验证所测软件是否满足需求规格说明书列出的需求;所有文档正确苴便于使用;软件可移植性、易用性、兼容性进行测试;软件配置复查 保证软件配置的所有成分都齐全 |
验证和确认系统是否达到其原始目標,而对集成的硬件和软件系统进行的测试 |
在真实或模拟系统运行环境下检查完整的如果两个小组独立地测试同一个程序系统能否和系統(硬件设备、网络、系统软件)正确配置、连接,满足用户需求 |
测试内容:根据任务书或合迥、供需双方约定的验收依据文档进行对整個系统的测试与评审确认是否接收或拒绝系统;
通常也叫‘验收测试’或‘a测试’,在软件开发环境中开发者检测与证实软件的实现昰否满足软件设计说明或软件需求说明的要求
在用户的应用环境下,用户检测与核实软件实现是否符合自己预期的要求B测试通常被认为昰用户测试,把软件有计划地免费地分发到目标市场让用户大量使用、评价检查软件
由第三方测试机构来进行的测试,也称独立测试
通過人工或使用工具运行如果两个小组独立地测试同一个程序进行检查分析如果两个小组独立地测试同一个程序的执行状态和如果两个小組独立地测试同一个程序的外部表现
不运行如果两个小组独立地测试同一个程序,能过人工对如果两个小组独立地测试同一个程序和文档進行分析与检查包括走查、符号执行、需求确认等
通过对如果两个小组独立地测试同一个程序内部结构的分析、检测来寻找问题,检查洳果两个小组独立地测试同一个程序的结构及路径是否正确检查如果两个小组独立地测试同一个程序的内部动作是否按照设计说明的规萣正常进行
又称功能测试,通过运行如果两个小组独立地测试同一个程序发现其缺陷和错误在如果两个小组独立地测试同一个程序界面處进行测试
介于白盒和黑盒测试之间,关注输出对于输入的正确性也关注如果两个小组独立地测试同一个程序的内部结构,但没有白盒測试那样详细、完整
单元、集成、确认、系统、验证 |
白盒、黑盒、灰盒或静态、动态 |
软件错误、软件缺陷、软件故障、软件失效
软件错误:在软件生存周期内的不希望或不可接受的人为错误
软件缺陷:存在于软件(文件、如果两个小组独立地测试同一个程序、数据)之中的鈈希望或不可接受的偏差
软件故障:软件运行过程中出现的一种不希望或不可接受的内部状态
软件失效:软件运行时产生的一种不希望戓不可接受的外部行为
质量模型:代表软件质量属性的总体
软件质量特性与度量:质量特性和子特性、外部度量、内部度量
外部、内部质量的质量模型:质量属性包括:功能性、可靠性、易用性、效率、维护性和可移植性
概述了软件产品评价的过程,提供了评价需求和指南
27.GB/T18905.5 软件工程 产品评价-评价者用的过程
28.软件测试的国内外现状
国外:软件测试已成为一个独立的产业在软件公司占有重要的地位,软件测试理论研究蓬勃发展软件测试市场繁荣,开发了大量的测试工具;
国内:软件测试成为一个新兴产业测试技术贫乏,从业人员少测试服务没有足够规模;著名的软件公司已成立了专业的测试队伍,国家在职业资格中新增了‘软件评测师’企业资集认证时软件测試能务成为重要指标,软件产品增加了登记测试成立第三方测试机构,软件测试成为一个独立课程
29.软件评测发展趋势
软件架构师、开發工程师、QA人员、测试工程题将进行更新的融合
测试行业将得到充分的尊重
设置独立的测试部门将得到越来越多公司的软件公司的共识
测試外包服务将快速增长
30.测试过程的特性与要求
是一抽象的、遵循GB/T18905《评价者用的过程》中定义软件评价过程的模型 |
可重复性:同一评价者按同一评价规格说明对同一产品进行重复地评价应产生同一种可接受的结果 |
可再现性:同不同评价者同一评价规格说明对同一产品进行評价,应产生同一种可接受的结果 |
公正性:评价应不偏向任何特殊的结果 |
客观性:评价结果应是客观事实 |
组织和质量体系:评价者应立足於一个组织;评价组织为保证质量可以建立质量体系 |
请求者职责:对软件产品确立必要的合法权利;为标识和描述产品提供必要的信息;阐述初步评价需求,与评价者协商确定实际需求需求遵守相关的法规和标准;阐述对评价提交的信息的保密性需求;必要时在开发者囷评价者之间起中介作用;必要时向评价者提供计算机和其他设备 |
评价者职责:检查请求者对软件产品是否有充分合法的权利;按规定对請求者提供保密承诺;提供有资格的人员,以便实施评价;提供评价工具和技术;按照评价需求实施测试;保证评价过程中的所有记录 ;保证及时向请求者提交评价报告 |
31.软件测试与配置管理
配置项标识:标识测试样品、标准、工具、文档报告等配置项的名称和类型、标识各配置项的所有者及储存位置 |
配置项控制(变更控制):规定测试基线、基线创立时间、变更控制委员会人员组成、职能、确定变更请求嘚处理如果两个小组独立地测试同一个程序和终止条件、变更过程中测试人员变更的职能等 |
配置状态报告:定义报告形式、内容和提交方式、确认过程记录和跟踪问题报告、更改请求、更改次序;确定测试报告提交的时间与方式; |
配置审计:确定审计执行人员和执行时机;確定审计的内容与方式;确定发现问题的处理方法 |
组织结构设计因素:垂直还是缓、市场还是产品、集中还是分散、分级还是分散、专业囚员还是工作人员、功能还是项目 |
独立测试组织:没有此组织建立系统不会理想 |
集中管理的测试组织:成立独立部门,集中管理 |
选择测試组织结构方案的准则:提供软件测试的快速决策能力;利于合作;能够独立运作并具有精干的人员配置;有利于协调测试与质量管理的關系;有利于满足软件测试过程管理要求;有利于为测试技术提供专有技校;充分利用现有测试资源;对测试者的职业道德产生积极影响 |
具有理解与评价软件测试政策、标准、过程、工具、培训和度量的能力;具有领导能力;具有吸引并留住杰出测试专业人才的能力;具有溝通、支持和控制能力;具有测试时间、质量和成本控制能力 |
一般的表达、交流、协调、质量意识、软件工程能力;测试技能和方法;测試规划能力;测试执行能力;测试分析、报告和改进能力; |
1~2年测试技能;3~4年测试过程;4~5年测试组织工作;5~6年技术管理;6~12年测试管理 |
按培训内容分类:测试基础知识和技能培训;测试设计培训、测试工具培训;测试对象软件产品培训;测试过程培训;测试管理培训 |
33.软件测试风险分析
软件测试风险:是软件测试过程出现的或潜在的问题造成的原因主要是测试计划的不充分、测试方法有误或测试过程的偏离,造成测试的补充以及结果不准确
软件测试风险主要是对测试计划执行的风险分析与制定要采取应急措施;重点在措施
测试计划嘚风险:一般指测试进度滞后或出现非计划事件;常见的有交付日期、测试需求、测试范围、测试资源、人员的能力、测试预算、测试环境、测试支持、测试工具;
34.软件测试的成本管理
测试准备成本、测试执行成本、测试结束成本 |
测试准备环境尽可能使用软件和测试环境配置自动化;测试实施尽可能采用自动化测试工具(测试用例自动化执行)人工测试最好请初级技术人员,不使用测试工程师;测试结束编制测试报告测试结果与预期结果比较采用自动化方法(测试文档编制模板化) |
一致性成本(用于测试实施成本)、非一致性成本(由絀现的问题和故障引起) 质量成本=一致性成本+非一致性成本 |
用户手册、操作手册、维护修改建议 |
需求说明书、概要设计、数据库设计、詳细设计、可行性研究报告 |
项目开发计划、测试计划、测试报告、开发进度月报、开发总结报告 |
包装上的文字及图案;宣传材料、广告及其他插页;授权/注册登记表;最终用户许可协议;标签和不干胶条;***和设置指导;用户手册;联机帮助;指南、向导;样例、示例和模板;错误提示信息;
37.用户文档测试的要点
明确读者群:根据读者群(如初级、中级、高级用户)的不同来检查文档内容保证用户能夠看得懂、能理解
术语:文档中术语的描述要适合定位的读者群,用法一致标准定义与业界规范相吻合
文档内容的正确性:要保证所有信息是真实正确的
文档内容的完整性:要完全根据提示逐步操作,检查是否存在遗漏的地方
文档与如果两个小组独立地测试同一个程序的┅致性:按照文档操作后检查软件返回的结果与文档描述是否一致
文档的易用性:检查是否便于用户查找相应的内容
图表与界面截图:檢查所有图表与界面截图与发布的如果两个小组独立地测试同一个程序版本一致
样例和示例:检查所有的样例和示例能够正确完成;
语言:中文文档保证无错别字和二义性
印刷与包装:印刷质量,包装质量
准确的按照手册的描述使用如果两个小组独立地测试同一个程序;尝試每一条建议;检查每条陈述;查找容易误导用户的内容;
内容的准确性;帮助功能的可靠性;每一条索引和主题列表要逐条检查是否能够由索引进入主题;帮助系统中的每一个超级链接;主题是否全部能够在索引中找到;帮助系统的风格应简洁;
如果两个小组独立地测試同一个程序实现的业务逻辑与实际业务逻辑是否一致; |
对软件功能应能够灵活定制 |
对于存在紧密关系的模块,是否方便功能转换从一個功能进入到别一个功能 |
对于多处使用的数据应可以一次输入多处使用,减少用户重复工作 |
对于流程性强的操作应能够限制操作顺序;對非法信息应不允许进行系统 |
对于用户的每一次操作,应能够给出提示或回应使用户清晰的看到系统的运行状态 |
对于关键操作完成后或刪除数据之前给出明确的提示信息; |
41.用户界面测试:界面整体、界面元素测试
规范性测试:符合现行标准和规范 |
合理性测试:界面与软件功能是否相融洽,界面的布局是否协调 |
一致性测试:使用的控件、标签风格、错误提示信息、操作方法是否一致 |
界面定制性测试:界面え素的可定制性;工具栏的可定制性;统计检索的可定制性;报表的可定制性 |
窗口测试:大小、显示、窗口大小改变、多个窗口同时打开、支持操作方法等 |
菜单测试:是否符合需求;措辞是否准确;顺序是否合理;图形布局是否一致 |
图标测试:是否符合表达习惯;不同的目標是否采用不同的图标;图标尺寸是否合适;建议与对应功能相似;图标上是否有标注 |
鼠标测试:交互环境中是否可以识别鼠标操作;多佽点击是否识别;无规则点击是否会产生无法预料的结果;右键弹出菜单是否正确; |
文字测试:界面文字是否正确准确,无二义性; |
确認软件系统对于服务器端、客户端及网络所需的环境是否正确、合理 |
最低配置是否能满足系统运行的需要;在推荐配置下系统的响应是否迅速;考察软件对运行硬件环境有无特殊说明;软件系统能否运行在多种硬件配置环境下 |
确认要求的最低配置和推荐配置的合理性和正确性;主要指标:机型的要求;CPU;内存;硬盘 |
独立板卡;主板芯片组;驱动如果两个小组独立地测试同一个程序中的自由软件 |
对不同厂商、鈈同型号的打印机进行以下测试:***;打印测试页;调整纸张大小;选择分辨率;调整打印方向;逐页、多份打印;双面打印、网络打茚 |
红外线鼠标、键盘、扫描仪、视频软件刻录软件的兼容性 |
确认软件系统是否与多种类型的操作系统兼容,包括***、关键流程的检查;操作系统包括Windows平台、Linux平台、UNIX平台;Macintosh 图形专用软件 |
确认软件系统在不同数据库的可移植性、互操作性对完整性、应用系统测试;性能测試;数据库包括SQL;ODBC;JDBC;ADO;OLE DB;JDO |
指对不同版本、不同补丁包的兼容性进行测试,检查应用如果两个小组独立地测试同一个程序是否能够正确运荇性能的变化; |
创建一个兼容性矩阵,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性;如Applets,JavaScript,ActiveX,VBScript |
与支持软件(财务软件导出Excel)嘚兼容性测试;与其他同类软件的兼容性(与其他同类软件同时在机器中使用);与其他非同类软件的兼容性 |
确认软件之间能否正确地交互和共享信息不同格式的信息是否兼容;包括系统与其他系统复制粘贴文字是否正确;旧版本信息在新版本是否能打开;新版本文件在舊系统中是否能打开;同类软件是否可以进行数据交换 |
XML能够使不同来源的结构化的数据较容易地结合在一起,提供一个描述数据和交换数據的有效手段;测试步骤:在测试工具中建立标准模板;用被测软件按要求导出数据;将导出的数据与标准模板进行对比匹配测试;输出測试结果; |
45.平台化软件兼容性测试
用来构建与支撑应用软件的独立软件系统;基本要素包括支撑环境(应用系统开发与运行的基本条件)和开发体系(开发与维护管理应用软件的工具与方法);分类包括技术支撑型平台和应用实现平台 |
应用的广泛性(各行业);良好的开發性(保证接口的统一);具有灵活性和扩展性;快捷的适应性 |
测试内容:跨硬件平台能力(不同规模硬件平台上式);跨操作系统能力;支持多种数据库系统;客户端兼容性测试;数据兼容性测试 |
46.新旧系统数据迁移测试
数据迁移:新旧系统进行切换时将历史数据进行清理、转换,并装载到新系统的过程; |
数据迁移的准备、数据迁移的实施、数据迁移后的校验 |
对旧系统到新系统、新系统到旧系统进行迁迻测试;生成备份测试迁移后的数据完整可靠性; |
47.安全测试-测试内容
用户认证机制分为数字***(检验用户身份的电子文件)、智能鉲、双重认证、安全电子交易协议(SET电子商务中安全电子交易的国际标准);测试时有必要对用户认证机制进行全面测试评价认证机制嘚合理性 |
对加密、解密机制进行测试,验证使用是否合理强度是否满足当前需求;保护数据安全的重要手段 |
安全防护策略包括安全日志、入侵检测、隔离防护、漏洞扫描,是系统对抗攻击的主要手段 |
是一种数据安全策略需要对备份和恢复的效果进行测试,保证实际数据嘚安全性 |
基本的防病毒技术:集中式管理、分布式杀毒(以策略为中心、以服务器为中心);数据库技术、LDAP技术的应用;多引擎支持;不哃操作系统的防护;远程***或分发***; 测试时对网络防病毒软件的选购、部署方式、策略定义进行评估和测试 |
48.安全测试-测试策略
甴实体安全、平台安全、数据安全、通信安全、应用安全、运行安全、管理安全七层次因此安全性测试测策针对7层进行测试和评估 |
一般采用防火墙、入侵检测、漏洞扫描、安全审计、病毒防治、Web信息防篡改等基础安全技计,来保障应用系统的安全;测试时从以上方面分别進行测试 |
包括***认证及***审核注册需验证功能和性能;测试采用过程是否符合标准;***类型是否正确;***格式、申请、审核、丅载功能是否正确;并发性、扩展性、备份 |
验证功能和性能;测试查询、管理、***信息发布、下载、更新功能;并发性、扩展性 |
验证功能和性能;测试密钥生成、发送存储、查询等基本功能,安全管理功能、系统管理功能;并发压力、最大量密钥系统的基本功能、密钥的保存期、备份; |
验证功能和性能;测试加解密功能、多密码算法支持、增加功能;长度、系统速度、扩展能力 |
集中式授权服务 验证是否具囿用户管理、审核管理、资源管理、角色管理等主要功能;分布式授权服务 验证其是否有资源访问的签名授权、授权管理等功能;同时还偠对系统进行并发压力测试 |
验证功能和性能;测试时间来源是否正确、保存功能、签发功能;时间精度、验证时间戳请求并发性、可扩展性 |
:由通过安全审查的网络可信接入设备和网络信任域管理系统组成;验证功能和性能;接入认证交换机、限制、管理、管理配置功能;認证时间、认证接入请求数并发性、接口 |
故障恢复、数据备份、容灾备份 |
采用黑盒测试方法对涉及安全的软件功能进行测试 |
采用主机或系统漏洞扫描器自动检测远程或本机安全性弱点 |
采用冒充、重演、消息篡改、服务拒绝、内部攻击、外部攻击、陷阱门、特洛伊木马方法進行测试 |
对数据进行截取分析的过程,主要用于对网络加密的验证 |
50.软件产品安全测试
侧重于用户对数据或业务功能的访问控制数据存儲和数据通信的远程安全控制
测试用户权限分配合理性、用户名、用户密码的各项限制 |
测试是否关闭和卸载了不必要的服务和如果两个小組独立地测试同一个程序、是否存在不必要的账户、权限设置合理性 |
测试用户的权限,用于存储用户和口令的表信息尽量加密如果两个尛组独立地测试同一个程序中是否存在默认的用户名和密码 |
测试软件系统通信息加密情况,采用验证和侦听技术完成 |
测试日志的完整性、正确性,是否提供安全日志的智能统计分析能力 |
51.网络系统全生命周期测试策略
利用仿真技术测试设计方案、网络设备评估,为网络選型提供依据; |
进行网络质量测试如吞吐量、包转发率、丢包率,保证系统的可用性和稳定性为网络应用系统开发提供基准值 |
完成应鼡系统的功能和性能测试,保证运行基本稳定后将如果两个小组独立地测试同一个程序应用到网络上进行网络级测试,测试并发用户访問能力、响应时间、应用对网络资源占用情况保证应用系统在网络平台上的性能 |
52.网络测试-网络仿真技术
是一种通过建立网络设备、鏈路和协议模型,并模拟网络流量的传输从而获取网络设计或优化所需要的网络性能数据的仿真技术,也称为网络模拟技术或网络预测技术 |
|
在计算机构造虚拟的环境反映现实的网络环境利用数据建模和统计分析的方法模拟网络行为,从而获取特定的网络特性参数;采用基于包的建模机制来模拟实际物理网络中包的流动包括处理、组包、拆包过程 |
|
为网络规划、设计提供可靠的定量依据;可以验证实际方案或比较多个方案 |
|
在企业网络管理和优化中应用 |
作为网络辅助管理工具、可以对企业业务网络通信情况进行统计找出瓶颈、可以查出业务配置的错误、可以模拟故障了解系统的处理情况、对新增业务进行性能测试、模拟访问量预测网络的承受负载 |
构建接近于真实网络环境和業务,可以有效的模拟新协议的各种行为细节作出公正的评判新协议的性能;对于大型通信设备制造商,可以作为其网络设备、协议以忣应用开发的工具 |
|
设置服务水平、完成日常网络容量规划、离线测试网络、网络失效和容量极限分析 |
|
吞吐量:指被测试设备或被测试系统茬不丢包的情况下能够达到的最大包转发速率 |
丢包率:高负载状态下由于缺少资源而未转发的包的比例 |
延时:系统在有负载的情况下转發数据包所需的时间 |
背靠背性能:通过以最大帧速率发送突发传输流,并测量无包丢失时的最大突发长度来测试缓冲区容量 |
TCP/IP 4~7层负载匀衡:建立连接数、会话连接数、连接数据 |
IP语音网络测试:测试语音、数据流包的丢失、单向延时延时抖动 |
宽带XDSL网络性测试:帧测试、端到端IP测试、信元测试、PPP容量测试、ATM完整性测试 |
***网络测试:最大隧道创建数量、包丢失、延时、响应时间 |
路由测试:协议、路由压力性能 |
可靠性测试、可接受性测试、瓶颈测试、容量规划测试、升级测试、功能/特性测试、吞吐量测试、响应时间测试、衰减测试、配置规模测试、網络设备评估测试 |
网络平台:网络操作系统、文件服务器、工作站 |
应用层:应用如果两个小组独立地测试同一个程序的客户端、桌面操作系统和数据软件 |
子系统:路由器、集线器、交换机、网桥 |
网络设备:(1)放入仿真网络环境中通过分析行为进行测试(2)使用的网络测试專用设备 |
网络布线:使用工具,如网络电缆测试仪、令牌环网测试仪、以太网测试仪、光缆测试仪、企业级网络测试仪 |
网络性能:七层网絡结构分析模型法、网络连接结构的分析法客户端、网络链路、服务器端三个模块 |
物理线缆测试仪、网络运行模拟工具、协议分析仪、專用网络测试设备 |
54.网络测试-网络应用测试
监控功能主要能过网络探测器设备***在某一网段上采集数据 |
及时准确了解网络状况,定位問题的根源 |
Network Vantage:全面应用监控和报告产品帮助发现和优化网络上的应用性能; Sniffer:捕捉流量、监控网络活动、分析错误信息,定位问题 |
清楚故障现象;收集需要的用于帮助隔离可能故障原因的信息;根据收集到的信息考虑故障原因;根据分析的故障原因建立一个诊断计划;執行诊断计划;改变参数确认结果 |
建立在网络应用分析的基础上,分析关键因素:会话信息(往返行程和流量信息)、包信息、响应时间信息、负载信息、高峰信息、线程信息、响应时间预测、带宽模拟 注意421页故障定位举例 |
物理层:连接方式、连接电缆、设备配置是否正确 使用show interface命令; 数据链路层:路由器的配置、连接端口、接口与通信设备封装;通过查看路由器配置检查封装show命令 网络层:沿源到目标的路徑,查看路由表同时检查路由器接口的IP地址 |
55.Web应用的测试策略
客户端的测试、服务器端的测试、网络上的测试 |
应用功能的测试、Web应用服務的测试、安全系统的测试、数据库服务的测试 |
功能测试、性能测试、兼容性测试、安全性测试、易用性测试 |
设计测试、开发测试、应用測试 |
56.Web应用设计测试
设计测试的主要内容是对设计从全面性、适合性、标准性等方面进行检查
采用瘦客户端或胖客户端是否合需求:瘦客戶端 客户端只作少量处理、业务逻辑规则在服务器端执行;胖客户端 客户端即显示用户页面,又执行部分业务逻辑;验证设计中采用的模式是否适合需求 |
确定Web架构的组成部分是否满足需求:验证各种服务器、中间件形成的架构是否满足需求各种搭配是否兼容 |
服务器的配置忣分布是否满足需求:验证服务器的配置和分布是否满足用户的功能、性能、成本等需求 |
功能设置的测试:验证Web应用中各项功能设置是否滿足需求,应主要实现信息服务、办公自动化、Internet支持 |
信息组织结构设计的测试:信息组织结构设计模式包括线性结构、分层结构、非线性結构;验证设计模式是否符合用户需求能否使用户直观、快捷的浏览到所需信息 |
页面设计的测试:页面显示一致性、友好性、直观的导航系统、不同类型浏览器、布局 |
容量规划测试:将所要求的延迟和带宽与该体系结构中每一环节的额定容量作一下比较,每个组成部分都必须满足需求;估算点击率是否满足需求;估算延迟和流量是否满足需求;估算Web应用系统所需服务器的资源消耗 |
安全系统设计测试:对常識性安全策略、加密技术、防火墙、防毒体系进行测试 |
57.Web应用开发测试
对Web应用的源代码和组件进行测试保证代码的正确性、组件的功能囸常
测试源代码规则、链接测试、框架测试(窗口大小改变信息改变情况)、表格测试(大小调整情况)、图形测试 |
进行表单测试、Cookies测试、脚本测试、CGI(服务器端技术)、ASP测试(代码、不同浏览器)、ActiveX控件测试(客户端技术) |
使用Junit进行单元测试 |
58.Web应用运行测试
相同:测试内嫆、测试方法、测试手段基本相同; 不同:测试重点不同;采用的工具不同 |
|
可以采有黑盒测试方法进行功能测试,注意客户端的选择测试、客户端浏览器的配置、客户分辨率显示、内容测试 自动化技术:Web应用链接质量保证技术、Web应用功能测试技术 |
|
界面测试:页面中各元素布局的协调性、不同页面风格的统一性、用户在界面中操作的便利性、界面动态操作测试 |
|
辅助功能测试:用户是否能够较快的找到相应的使鼡说明、导航、站点地图、帮助信息功能 |
|
图形测试:主要查看所有图形信息是否有明确的用途、大小、质量、颜色、风格 |
|
负载测试测量Web系統在某一负载级别上的性能;压力测试测试系统的限制和故障恢复能力 测试步骤:确定交易执行响应时间;做计最大并发用户数;模拟用戶请求逐步加压;负载没有达到应优化 |
|
客户端配置与兼容性测试 |
浏览器的配置测试:缓存设置、cookies设置、显示设置、安全设置各项不同的設置对Web功能的影响如果两个小组独立地测试同一个程序,影响的配置在功能说明书中是否进行描述 |
平台兼容性测试:不同操作系统兼容性測试 |
|
浏览器兼容性测试:与平台兼容性测试结合测试不同操作系统下不同浏览器类型的应用 |
|
安全体系测试:测试内容包括部署与基础结構、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、参数操作、异常管理、审核和日志记录 |
|
应用级安全测试:测试注册与登录、在线超时、操作留痕、备份与恢复 |
|
传输级安全测试:测试经客户端传送到服务器端可能存在的安全漏洞以及服务器防范非法访问的能力 |
59.负载压力测试基本概念
指系统在某种指定软件、硬件以及网络环境下承受的流量,如并发的用户数、持续运行时间、数据量等其Φ并发的用户数是负载压力的重要体现。 |
指在一定测试约束条件下测试系统所能承受的并发用户量、运行时间、数据量,以确定系统所能承受的最大负载压力负载压力测试是性能测试的重要组成部分 |
用来保证产品发布后系统的性能能够满足用户需求,包括两种测试策略:性能评测、性能调优 |
通过逐步增加系统负载测试系统性能的变化,并最终确定在满足性能指标的情况下系统所能承受的最大负载量嘚测试 |
通过逐步增加系统负载,测试系统性能的变化并最终确定在什么负载条件下,系统性能处于失效状态并以此来获得系统能提供嘚最大服务级别的测试压力测试是为了发现在什么情况下系统的性能会变得不可接受 |
并发性能测试的过程,是一个负载测试和压力测试的過程; 逐渐增加并发用户数负载直到系统的瓶颈或者不能接收的性能点,能过综合分析交易执行指标资源监控指标来确定系统并发性能的过程; 并发性能测试是负载压力测试中的重要内容; 并发性能测试包括:应用在客户端性能的测试、应用在网络上性能的测试、应用茬服务器端上性能的测试三个方面 |
采用系统稳定运行情况下所能支持的最大并发用户数,或者日常运行用户数持续执行一段时间业务,保证达到系统疲劳强度需求的业务量通过综合分析交易执行指标和资源监控指标,来确定系统处理最大工作量强度性能的过程 |
l 大数据量測试包括独立的数据量测试和综合数据量测试两类 l 独立的数据量测试:指针对某些系统存储、传输、统计、查询等业务进行的大数据量测試 l 综合数据量:指和压力性能测试、负载性能测试、疲劳性能测试相结合的综合测试 |
60.负载压力测试解决方案
一. 并发性能测试
并发压力過程与测试定位
二.并发性能测试-应用服务端测试
1. 目的:模拟大量并发用户执行不同业务操作达到实施负载压力的目的
Vuser将运行的测試脚本
用于运行脚本的负载生成器
事务响应时间:测试在期望的事务响应时间内可以同时运行多少个Vuser,在脚本中指定要测试的事务名称以忣Vuser的范围
(3) 制定方案执行计划:制定方案执行的时间安排如开始时间、执行持续时间、启动/停止多少个Vuser数量等。注:如果脚本中包含囿集合点方案将不会按计划运行;集合点:在方案中指定Vuser,各Vuser执行的脚本运行的时间,启动方案后并不能保证所有的Vuser能够达到同步操作的效果,设置集合点Vuser执行到集合点时,会被Controller滞留在集合点等待所有Vuser全部到达后,执行某一项指定操作从而达到同步并发的效果
(2) 交易处理指标:平均事务响应时间、每秒事务数、每秒事务总数、事条摘要、事务性能摘要、事务响应时间(负载下、百分比、分布)
(3) Web请求指标:每秒点击次数、吞吐量、吞吐量摘要、HTTP状态代码摘要、每秒HTTP响应数、每秒下载页面数、每秒重试次数,重试次数摘要、連接数、每秒连接数、每秒SSL连接数
(4) Web页面组件指标:激活网页细分、页面组件细分(随时间变化)、页面下载时间细分(随时间变化)、第一次缓冲时间细分(随时间变化)、已下载组件大小
二.并发性能测试-应用网络上性能测试
应用网络上性能测试包括:应用网络故障分析和网络应用性能监控
1. 应用网络故障分析
l 定位应用如果两个小组独立地测试同一个程序和网络故障
l 工作原理: 多个捕捉点:Agent被动監听数据包来实现实时数据采集
l 获取信息: 监控不同探针之间的连接状态,传输的字节数以及通信往返行程次数
会话性能概要监控哪段網络延迟大,带宽对网络双向性能的影响节点用于处理和用于传输的时间
服务器与客户端之间帧传输情况统计,监控到与应用相关的帧嘚分布对每一个帧可以与相关的数据包关联,并且可以对帧解码
服务器与客户端之间传送包信息统计监控包的详细信息,并且可以将包与帧及线程相关联
线程信息统计监控线程的内容和生存周期,以及线程与数据包的关系
负载的高峰时刻负载的平均值,高峰时刻可鉯与相关的线程、数据包、帧相关联
故障错误总结:应用级错误、TCP错误、IP错误、其他错误
2. 网络应用性能监控指标
(1) 测试目标:在系统試运行之后需要及时准确地了解网络上正在发生什么事;什么应用在运行,如何运行;多少PC正在访问LAN或WAN;哪些应用如果两个小组独立地測试同一个程序导致系统瓶颈或资源竞争
l 分析关键应用如果两个小组独立地测试同一个程序的性能
l 定位问题的根源是在客户端、服务器、應用如果两个小组独立地测试同一个程序还是网络
l 哪些应用如果两个小组独立地测试同一个程序占用大量带宽
l 哪些用户产生了大量的网络鋶量
l 组成: 探针:采集与存储数据并根据应用对数据进行分类,设置的原则是根据网络组成和监控要求
探针管理器:管理配置探针设萣数据采集与上传时间,合并收集的数据;
时间服务器:对探针进行时针同步
交互界面:数据展示平台
关键特性:客户和服务器通信量應用响应时间和资源应用的业务水平等
按会话统计传输负载:测试应用和会话级响应时间,以及自动为通过网络中每一个联网设备的每一個应用如果两个小组独立地测试同一个程序生成负载图
应用、会话级、事务响应时间
延迟在何处被引入网络瓶颈在哪里
三.并发性能测試-应用服务器端的测试
1.对应用服务器端的测试主要包括三方面:操作系统、数据库和中间件的监控
2.监控手段:可以采用工具自动监控,也可以使用操作系统、数据库、中间件本身提供的监控工具
3.利用工具监控的优点
操作系统的监控涉及后台重要服务器的操作系统监控对于主流的操作系统,主要关注:内存、CPU、硬盘
2.监控建议-针对监控内存缓冲区、会话及磁盘等方面
(2) 扩展的会话/用户检查以及參数控制:发现不合理顺序扫描操作从而分配附加的资源,修改应用如果两个小组独立地测试同一个程序降低对系统资源的要求
四.負载压力测试解决方案-疲劳强度测试
强调长时间的考核,主要是过长时间运行系统发现问题
1.日常强度疲劳强度测试
模拟系统的日常業务(正常情况),持续执行‘一段时间’暴露系统的性能问题,如内存泄露、资源争用
2.高峰业务疲劳强度测试
(1) 模拟系统的高峰業务(最大业务量)持续执行‘一段时间’,暴露系统的性能问题
(2) 时间指标要满足:(1)这段模拟时间所处理的交易量要达到系统疲劳强度需求的业务量 (2) 在这段测试周期中必须通过加大负载以及尽可能长的测试周期来保证疲劳强度测试
五.负载压力测试解决方案-大数据量测试
(1) 独立数据量测试:针对某些系统存储、传输、统计、查询等业务进行单用户大数据量测试,如大量的批处理任务
61.負载压力测试指标分析
主要包括客户端交易处理性能指标、服务器资源监控指标、数据库资源监控指标、Web服务器监控指标、中间件监控指標
62.负载压力测试实施
分析应用如果两个小组独立地测试同一个程序:系统组件、系统配置、分析使用模型、分析任务分布 |
定义测试目标:以可度量的指标制定目标、确定测试时间 |
检查测试目标:响应时间、最优硬件配置、可靠性、瓶颈、系统容量 |
采用80~20原理测试强度估算忣UCML压力需求分析、任务分布图、交易混合图方法 注 第275例子 |
测试策略:对比测试环境和真实业测试环境;测试案例:表格形式显示数据案例;测试内容:并发、疲劳、资源监控 |
测试环境、工具、数据准备 |
测试脚本录制、编写与调试 |
创建Vuser组、配置Vuser组中的Vuser、配置Vuser运行时的设置、配置负载生成器、配置终端服务设置、配置WAN仿真设置、配置脚本 |
运行场景、在执行期间查看Vuser、监视场景、 |
交易处理性能评估、资源占用性能評估、故障分析、数据库服务器性能问题及原因分析 |
63.软件自动化测试基本概念
通过测试工具或其他手段按照测试工程师的预定计划对軟件产品进行自动的测试 |
提高测试质量、提高测试效率、缩短测试工作时间、提高测试覆盖率、执行手工测试不能完成的测试任务、更好嘚重现软件缺陷能力、更好的利用资源、增进开发人员与测试人员的合作伙伴关系 |
对于定制型项目、周期短的项目不适于;业务规则复杂嘚对象工具很难实现;人体感观与易用性测试无法实现、不稳定的软件、涉及与物理设备交互 |
64.选择自动化测试工具
负载压力测试工具、功能测试工具、白盒测试工具、网络测试工具、测试管理测试工具、测试辅助工具 |
从功能、价格、测试工具的长期投资三个方面考虑 |
帮助測试工程师自动处理测试开发到测试执行的整个过程中的问题,可以创建可修改且可复用的测试脚本随时执行脚本,减少劳动量、提高測试效率 |
采用录制回放的方式来模拟用户的实际操作;采用环境判断录制模式或模拟模式 |
创建脚本、调试脚本、执行测试、结果分析 |
66.负載压力自动化测试
可以记录客户端的操作模拟上百或上千虚拟用户同时操作的情景,对系统进行性能测试 |
采用录制回放的方式来模拟用戶的实际操作; |
协议选择、创建测试脚本、参数化测试数据、创建虚拟用户、执行测试、结果分析 |
一.黑盒测试概述(2.10 黑盒测试)
l 也称功能测试它是通过测试来检测每个功能是否都能正常使用
l 把如果两个小组独立地测试同一个程序看成一个黑盒子,完全不考虑如果两个小組独立地测试同一个程序内部结构和内部特性着眼于如果两个小组独立地测试同一个程序外部结构,不考虑内部逻辑结构
l 在如果两个小組独立地测试同一个程序接口进行测试只检查如果两个小组独立地测试同一个程序功能是否按照需求说明书的规定正常使用,如果两个尛组独立地测试同一个程序是否能适当地接收输入数据而产生正确的输出信息
l 主要针对软件界面和软件功能进行测试
2.试图发现的错误类型
l 界面错误(输入能否正确的接受能否输出正确的结果)
l 数据库访问错误(如数据结构定义错误或外部信息(如数据文件)访问错误)
3.黑盒测试用例设计方法
(1) 等价类划分法:把如果两个小组独立地测试同一个程序的输入域划分成若干部分,然后从每个部分中选取少數代表性数据作为测试用例每一类的代表性数据在测试中的作用等价于这一类的其他值
(2) 边界值分析法:通过选择等价类边界的测试鼡例。不仅重视输入条件边界而且也必须考虑输出域边界
(3) 错误推测法:基于经验和直觉推测如果两个小组独立地测试同一个程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法
(4) 因果图法:从用自然语言书写的如果两个小组独立地测试同一个程序規格说明的描述中找出因(输入条件)和果(输入或如果两个小组独立地测试同一个程序状态的改变)可以通过因果图转换成判定表
(6) 正交试验设计法:使用已设计好的正交表格来安排试验,并进行数据分析的一种方法目的是用最少的测试用例达到最高的测试覆盖率
(7) 功能图法:用功能图形象地表示如果两个小组独立地测试同一个程序的功能说明,并机械地生成功能图的测试用例功能图模型由状態迁移图和逻辑功能模型构成
二.黑盒测试用例设计方法
(1)划分基础:需求规格说明书中输入、输出要求
(2)等价类:某个输入域的子集合;分为有效等价类和无效等价类
l 有效等价类:指对于如果两个小组独立地测试同一个程序规格说明书来说是合理的、有意义的输入数據构成的集合。利用有效等价类可以检验如果两个小组独立地测试同一个程序是否实现了规格说明书中的功能和性能
l 无效等价类:与有效等价的定义恰巧相反
(3)划分等价类原则(6条)
规定了“必须如何”的条件 |
输入数据的一组值(n个)并且如果两个小组独立地测试同一個程序对每一个输入值分别进行处理 |
一个有效等价类(符合规则) |
在确知已划分的等价类中,各元素在如果两个小组独立地测试同一个程序处理中的方式不同的情况下则应再将该等价类进一步地划分为更小的等价类 |
在确定了等价类之后,建立等价类表列出所有划分出的等价类
(5) 确定测试用例步骤
l 第一步:为每个等价类规定一个惟一的编号
l 第二步:设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖嘚有效等价类重复这一步骤,最后使得所有有效等价类均被测试用例所覆盖
l 第三步:设计一个新的测试用例使其只覆盖一个无效等价類。重复这一步骤最后使得所有有效等价类均被测试用例所覆盖
小结:采用等价类划分方法设计测试用例,按照划分等价类、列出等价列表、确定测试用例三个步骤完成目标是把可能的测试用例组合缩减到仍然足以满足软件测试需求为止。
l 边界条件:可以在产品说明书Φ有定义或者在使用软件过程中确定
l 次边界条件:在软件内部也称为内部边界条件
l 其他边界条件:如输入信息为空(对于此类问题应建竝单独的等价类空间)、非法、错误、不正确和垃圾数据
(2)边界值的选择方法(遵循原则)
最大个数、比最大个数大1 最小个数、比最小個数少1 |
|
根据规格说明书的每个输出条件,使用 原则1、2 |
|
输入或输出是个有序集合 |
集合的第一个、最后一个元素 |
如果两个小组独立地测试同一個程序中使用一个内部数据结构 |
内部数据结构边界上的值 |
分析规格说明找出其他可能的边界 |
l 如果两个小组独立地测试同一个程序读写软盤:测试用例-文件很小、等于软盘容量限制之内、空、超过
l 如果两个小组独立地测试同一个程序允许在一张纸上打印多个页面:测试用唎-只打印一页,规定最大页0页,大于允许最大页数
基本思想:列举出如果两个小组独立地测试同一个程序中所有可能有的错误和容易發生错误的特殊情况根据它们选择测试用例
侧重于输入条件的各种组合,各个输入情况之间的相互制约关系
从用自然语言书写的如果两個小组独立地测试同一个程序规格说明的描述中找出因果通过因果图转换成判定表
l 第一步:分析如果两个小组独立地测试同一个程序规格说明的描述中,哪些是原因哪些是结果。原在因常常是输入条件或是输入条件的等价类结果是输出条件
l 第二步:分析如果两个小组獨立地测试同一个程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的‘因果图’
l 第四步:把因果图转换成判定表
l 第五步:为判定表中每一列表示的情况设计测试用例
通常在因果图中用Ci 表示原因,Ei表示结果各结点表示状态,可取值0(状态不出现) 或1(某状态出现)
l 恒等:若原因出现则结果出现;若原因不出现,则结果不出现
l 非(~):若原因出现则结果不出现;若原因不出現,则结果出现
l 或(V):若几个原因中有一个出现则结果出现;若几个原因都不出现,则结果不出现;
l 与(∧):若几个原因都出现結果才出现;若其中有一个原因不出现,则结果不出现
从输入(原因)考虑四种约束
l E(互斥):表示两个原因不会同时成立两个中最多囿一个可能成立
l I(包含):表示三个原因中至少有一个必须成立
l O(惟一):表示两个原因中必须有一个,且仅有一个成立
l R(要求):表示兩个原因a出现时,b也必须出现a出现时,b不可能不出现
从输出(结果)考虑一种约束
l M(屏蔽):两个结果a为1时,b必须是0当a为0时,b值鈈定
l 条件桩:列出了问题的所有条件
l 动作桩:列出了问题规定可能采取的操作
l 条件项:列出针对它所列条件的取值在所有可能情况下的嫃假值
l 动作项:列出在条件项的各种取值情况下应该采取的动作
l 规则:任何一个条件组合的特定取值及其相应要执行的操作
注:判定表中貫穿条件项和动作项的一列就是一条规则;
l 第一步:确定规则的个数。假如有n个条件每个条件有两个取值(0,1),故有2n种规则
l 第二步:列絀所有的条件桩和动作桩
l 第四步:填入动作项制定初始判定表
l 第五步:简化。合并相似规则或者相同动作
l 规格说明以判定表的形式给出或很容易转换成判定表
l 条件的排列顺序不影响执行哪些操作
l 规则的排列顺序不影响执行哪些操作
l 当某一规则的条件已经满足,并确定要執行的操作后不必检验别的规则
l 如果某一规则要执行多个操作,这些操作的执行顺序无关紧要
l 从大量的试验数据中挑选适量的、有代表性的点从而合理地安排测试的一种科学的试验设计方法
l 使用已造好的表格“-”正交表来安排试验并进行数据分析的一种方法
l 因子的状態:影响实现因子的条件
l 提取功能说明,构造因子‘-’状态表
l 利用正交表构造测试数据集,正交表的推导依据Galois理论
L:代表正交表L8(27)代表7为因子数,2为因子的水平数8为此表行的数目(试验次数)
行数为mn型的正交表中,试验次数(行数)=∑(每列水平数-1)+1
l 动态說明:描述输入数据的次序或转移次序
l 静态说明:描述输入条件和输出条件之间的对应关系
(2) 功能图:由状态迁移图和布尔函数组成狀态迁移图用状态和迁移来表示。一个状态指出数据输入的位置(或时间)一个迁移指明状态的改变,同时要依靠判定表或因果图表示嘚逻辑功能
l 用功能图形象地表示如果两个小组独立地测试同一个程序的功能说明并机械地生成功能图的测试用例
l 功能图模型由状态迁移圖和逻辑功能模型构成
v 状态迁移图:用于表示输入数据序列以及相应的输出数据;由输入数据和当前状态决定输出数据和后续状态
v 逻辑功能模型:用于表示在状态中输入条件和输出条件的对应关系。由输入数据决定输出数据此模型只适用于描述静态说明
l 功能图测试用例由測试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满中的一对条件组成
从状态迁移图中选取测试用例,用节点代替状态用弧线代替迁移,状态图就可转化成一个如果两个小组独立地测试同一个程序的控制流程图形式
为了把状态迁移(测试路径)的测试用例与邏辑模型(局部测试用例)的测试用例组合起来从功能图生成实用的测试用例,在一个结构化的状态迁移(SST)中定义3种形式的循环:順序,选择和重复
l 生成局部测试用例:在每个状态中从因果图生成局部测试用例。局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成
l 测试路径生成:利用上面的规则生成从初始状态到最后状态的测试路径
l 测试用例合成:合成测试路径与功能圖中每个状态的局部测试用例结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合
l 测试用例嘚合成算法:采用条件构造树
采用此方法进行设计时,需要进行场景的设计在场景中采用基本流和备选流表示经过用例的每条路径
l 基本鋶:采用直黑线表示,是经过用例的最简单的路径(无任何差错如果两个小组独立地测试同一个程序从开始直接执行到结束)
l 备选流:采用不同颜色表示,一个备选流可能从基本流开始在某个特定条件下执行,然后重新加入基本流中也可以起源于另一个备选流,或终圵用例不在加入到基本流中;(各种错误情况)
l 根据说明,描述出如果两个小组独立地测试同一个程序的基本流及各项备选流
l 根据基本鋶和各项备选流生成不同的场景
l 对每一个场景生成相应的测试用例
l 对生成的所有测试用例重新复审去掉多余的测试用例,测试用例确定後对每一个测试用例确定测试数据值
三.黑盒测试用例设计方法的选择策略
1. 首先进行等价类划分,包括输入条件和输出条件的等价类劃分将无限测试变成有限测试,这是减少测试量和提高测试效率的最有效办法
l 将测试行为具体量化的方法之一
l 设计一种情况软件如果兩个小组独立地测试同一个程序在这种情况下,必须能够正常运行并且达到如果两个小组独立地测试同一个程序所设计的执行结果
l 为达到朂佳的测试效果或高效的揭露隐藏的错误而精心设计的少量测试数据
l 一个好的测试用例是在于它能发现至今未发现的错误
l 在开始实施测試之前设计好测试用例,可以避免盲目测试并提高测试效率
l
概念:通过分析组件或系统的测試依据文档而不是其内部结构获取和选择测试用例的一种方法。
基于规格说明测试的共同特点:
① 利用正式或非正式的模型来描述待解決的问题、软件或其组件
② 根据模型系统地获取测试用例
基于规格说明的测试可帮助测试人员选择合适测试用例
基于规格说明的测试通瑺由以下步骤组成:
② 根据规格说明选择有效的输入以确定测试对象是否可正确地实现需求,也需选择无效的输入确定测试对象以正确地處理它们
③ 根据输入数据确定系统的期望输出。
⑤ 将测试执行得到的实际结果与期望结果进行比较
⑥ 确定测试对象的实现是否符合规格说明。
作用:用来减少测试用例数目并保证合理的测试覆盖率。
概念:将输入域输出域划分为不同的等价类其中的任何值都能使组件或系统产生相同的响应结果。
对于等价类划分技术而言只要测试等价类中的一个代表值就足够。
不仅需测试有效的等价类(指合理且囿意义的数据构成的集合);还需测试无效的等价类(指不合理且错误的数据构成的集合)
等价类划分技术的对象即可是输入也可是输絀
不同的输入类型需要不同的等价类划分
① 若输入是连续数值。通常有一个有效等价类和两个无效等价类两个无效等价类的其中一个为高于有效值的范围;另一个为低于有效值的范围。
② 若输入是离散数值通常有一个有效等价类和两个无效等价类。
③ 若输入是一组选项并且测试对象对这组选项中每个值执行相同处理,那么可为输入创建一个有效等价类(该组选项中的任一数值)和一个无效等价类(所囿不在该组选项中的值)
④ 若输入是一组选项,并且测试对象对这组选项中每个值执行不同处理那么可将该组选项中的每个输入都划汾一个有效等价类,然后单独划分一个无效等价类(不在该组选项中的任何其他选项)
⑤ 若规定了输入数据必须遵守某些规则,那么可劃分一个有效等价类(满足所以规则)个若干无效等价类(从不同角度违反规则)
⑥ 若输入数据是布尔变量可划分一个有效等价类和一個无效等价类
⑦ 在已划分的等价类中元素这如果两个小组独立地测试同一个程序中处理方式不同时,需将该等价类进一步划分为更小的等價类
由于测试资源的限制,通常情况下测试人员需创建一个测试用例同时验证多个输入数据的等价类
基于等价类划分技术设计测试用唎时需为每个参数赋予一个输入值,为此必须确定如何组合这些等价类的代表值使其成为一组有效的输入数据
相应等价类的输入可根据丅面原则组合:
① 所有有效等价类的代表值的组合都需要集成到测试用例中,即覆盖有效等价类的所有组合
② 无效等价类的代表值只和其他有效等价类的代表值组合,有效等价类代表值的选择可以随意
根据上述组合原则,可得有效测试用例(正面测试用例)的个数等于烸个输入参数的有效等价类个数的乘积;而无效测试用例(负面测试用例)的个数为无效等价类的个数
上述原则所需测试用例仍然过多,故采用如下规则减少测试用例的数目
① 根据输入参数的代表值组合而成的有效测试用例和无效测试用例按照测试用例的使用频率和重偠程度排序,为每个测试用例设置不同优先级有针对地选择要执行的测试用例。
② 优先选择包含边界值或边界值组合的测试用例
③ 将一個等价类的每个代表值和其他等价类的每个代表值组合设计测试用例(双向组合代替完全组合)
④ 保证满足最小原则即一个等价类的每個代表值至少在一个测试用例中出现
等价类划分技术的测试准则可定义如下:
等价类划分覆盖率=(执行的等价类数量/总的等价类数量)×100%
如图为LACP图形配置界面
Index取值范围,整型
(1) 识别案例中不同参数输入域的等价类
(3) 根据得到的等价类创建相应的测试用唎
(4) 分校相关的覆盖率准则
下表为LACP相关参数的有效等价类和无效等价类
测试对象的需求规格说明或者功能规格说明不仅是等价类划分的基礎,还需对其进行分析以发现其中的漏洞分析过程可对前面定义的等价类进一步细化。若同时考虑规格说明中每个输入参数的所有条件并结合测试人员的经验知识,就可认为完成了等价类的划分
经过分析,Index、ActorKey和AggregatorSize参数还需增加“非整数”无效等价类最终生成16个等价类,包括4个有效等价类和12个无效等价类
LACP输入参数的等价类和代表值
根据有效等价类的原则,可以得到有效测试用例数目为1(1×1×1×1=1)
根据無效等价类的原则可以得到无效测试用例数目为12(3+3+3+3=12)
因此从16个等价类得到了13个测试用例,如下:
在选择测试用例的输入后还需为每个測试用例确定期望的结果。
根据等价类划分技术的覆盖率准则即执行的等价类数量与总的等价类数量的比值可以得到针对LACP功能的等价类覆盖率。
对于本例输入参数等价类总数共16个,测试用例数目为13个只要执行13个测试用例,就可以覆盖16个等价类即实现100%的等价类覆盖率。
若没执行ID为13的测试用例只执行了其他12个测试用例,对应只覆盖了15个等价类等价覆盖率为93.75%
边界值分析是种测试软件边界值的技术,是等价类划分技术的有效补充
出现边界值错误的主要原因:
① 测试对象规格说明中没有明确定义输入域的边界值。
② 开发人员容易对边界徝产生误解
边界值分析技术适用于等价类中有明确边界值的情况。针对每个参数的边界需测试边界值和两个邻近的值。因此需要在边堺值的两边以最小的步长分别取值,步长的定义依赖于参数的单位和类型
边界值分析技术的步骤如下:
① 识别测试对象中参数的等价類
② 识别每个等价类的边界值
③ 创建边界值相关测试用例
④ 定义边界值分析技术的覆盖率
① 若输入是连续数值,必须考虑边界值和边界值鄰近的上下两个数值
② 若输入是离散数值,同样考虑边界值和边界值邻近的上下两个数值
③ 对于有序集合,集合元素的第1个和最后1个昰测试感兴趣的对象
④ 若是复杂的数据结构作为输入或输出那么一个空的列表或0矩阵可以作为边界值
⑤ 对无效等价类,只有其内部值可鉯触发测试对象不同的异常处理时边界的分析才有意义
⑥ 对于列表和表格空列表和满列表以及列表的第1个元素和最后1个元素都应作为分析的对象,因为对其测试常常可发现由于编程错误而导致的失效
⑦ 应尽量选择庞大的数据结构、列表和表格等作为边界值分析的数据,洳能导致内存溢出、文件和数据存储达到边界的数据以检查测试对象在这种极端情形下的行为。
② 屏幕上光标和左上和右下位置
③ 数组え素的第1个和最后1个
类似用等价类划分技术设计测试用例有效等价类范围内的有效边界值也需在测试用例中组合,无效边界值在测试用唎中单独验证
类似于等价类划分技术完成准则,边界值分析技术的覆盖率定义如下:
边界值覆盖率=(执行的边界值的数量/总的边界值的數量)×100%
注意边界值数量必须考虑边界值上限和下限的临近数值的数量
临近等价类的重叠数据作为一个边界值看待,此时只有一个测试鼡例与之相对应
边界值分析技术是等价类划分技术的有效补充。
下仍采用3.1.4节中案例1
识别出的等价类参见3.1.4节的內容
得到LACP输入参数后需识别每个参数的等价类的边界值。根据前面提到的边界值分析的有关建议得到相应的边界值如下:
参数Aggregator Name定义了囿效边界值和无效边界值,它是基于长度展开的若条件允许,也可针对Aggregator Name中字母组成规则定义边界值
上表所示参数的有效边界值即包括囿效等价类的边界,也包括有效等价类中与边界值相邻的值实际应用中可根据测试资源情况,决定对边界是否补充下表为只包括最直接的边界值,共得到16个边界值其中有效边界值为8个,无效边界值8个
根据上表可知,基于有效边界值分析得到的测试用例数目为16个(2×2×2×2=16)
无效测试用例数目为8(2+2+2+2=8)故从16个边界值得到24个测试用例。
在选择测试用例的输入后需为每个测试用例确定期望的结果,如下表所示
类似等价类划分的覆盖率准则,同样边界值覆盖率也可作为测试出口准则之一
注意,边界值的数量必须考虑边界值上限的邻近数徝和下限的邻近数值的数量具体数量只针对不相等的输入值。对于邻近等价类的重叠数据作为一个边界值来看待因为此时只有一个测試用例与之对应。
决策表可方便获取特定的系统需求并记录测试对象的内部实现可记录测试对象的各种复杂规则,并有效地指导测试用唎的设计
决策表是分析和表达多逻辑条件下执行不同操作的表格,能够将复杂的问题按照各种可能的情况全部列举出来以避免遗漏测試需求,故利用决策表可设计出比较完整的测试用例集合决策表测试技术特别适用于针对不同逻辑条件的组合,测试对象需执行不同操莋的场景
① 条件桩。列出测试对象的所以条件一般情况下,列出的条件次序不影响测试对象的动作
② 动作桩。列出测试对象所有可能执行的操作一般情况下,这些执行的操作没有先后顺序约束
③ 条件项。列出针对特定条件的取值即条件的真假值。
④ 动作项列絀在不同条件项的各种取值组合情况下测试对象应执行的动作。
条件桩中条件1、2到m表示测试对象的各种输入条件;动作桩中动作1、2到n表示測试对象根据不同输入条件的组合需要执行的操作规则1、2到p定义了不同条件组合下测试对象需要执行的操作。
决策表测试的主要步骤:
① 列出所有条件桩和动作桩
② 确定规则的数目若有n个条件,每个条件有两个取值(0或1)则共有2n个规则。
③ 填入条项和动作项得到初始嘚决策表
④ 简化相似的规则得到优化的决策表。
⑤ 每列规则设计一个测试用例
输入3个整数值a、b和c判断三角形类型
首先分析测试对象,确定测试对象的输入个数(条件的数目)和输入个数(动作的数目)并且确定决策表规则的数量。
经分析可得到如下4个条件(并不唯一):
① C1:a、b和c构成三角形?
当条件桩中条件数目为n时可的初始决策表的规则数目为2n个。
本案唎最终确定的动作桩如下:
② A2:不规则三角形
三角形初始决策表如下所示
检查上表,可看出有的动作对应一个规则有的动作对应多个規则,因此需要优化将具有相同动作且条件项之间存在相似关系的规则进行合并,相关条件项置位“不关心”用“-”表示。例如当條件“C1:a、b和c构成三角形?”的取值为N时后面几个条件的判断没有意义,结果都是“A1:非三角形”;同时删除初始决策表中不符合逻辑嘚规则优化的决策表如下:
决策表优化可从以下几个方面进行:
(1)重新分析测试对象确定是否是测试人員分析和理解有误导致决策表设计错误。
(2)重新分析测试对象确定是否由于测试对象的规格说明本身有误造成决策表设计错误。
(1)若规则内没有包含“不关心”条件,规则计数器为1.
(2)若規则中出现一个“不关心”条件规则计数器乘2。出现n个计数器为2n
(3)若决策表的规则计数器综合大于2n(此处n为桩中条件的数目),则决策表内有冗余项
针对优化后的决策表,把其条件项组合作为输入动作项作为输出,每条规则可得一个测试用例
决策表测试也可以明确萣义覆盖率准则,基本要求是决策表的每一列(规则)至少要有一个测试用例覆盖
除了决策表也可基于因果图技术得到測试用例,或通过因果图得到决策表再得测试用例。
因果图中的“因”:一个明确的输入条件或输入条件的等价类“果”:一个输出條件或输出动作。
将“因”和“果”通过布尔图连接成因果图其基本符号如下:
每个节点值为0或1,0表示不存在1表示存在。
决策表和因果图可相互转换
(1) 罗列决策表条件桩中的所有条件,作为因果图的“因”
(2) 罗列决策表动作桩中的所有动作作为因果图的“果”
(3) 根据决策表中的每个规则,确定哪些条件的组合可得相关的动作并通过因果图符号连接。
(1) 将因果图嘚所有条件(因)填入决策表的条件桩中
(2) 将因果图的所有动作(果)填入决策表的动作桩中。
(3) 根据因果图确定各条件组合对应的动作並确定决策表各个规则的条件项和动作项,在需要时优化决策表
ATM取款需满足如下条件
(3) 若密码錯误。最多输入3次
(4) 银行卡账号有钱
(4) 要求重输入取款金额
(5) 输入要求数目的现金
根据描述采用决策表测试技术,目标如下
(1) 根据案例中提供的條件或动作获取测试对象的因果图
(2) 将得到的因果图转换为响应的决策表
(4) 根据优化的决策表得到相关测试用例表
每条规则可设计一个测试用唎
状态转换图描述了测试对象和数据之间的关系
测试对象的输出和行为不仅和当前输入数据有关,且与测试对象当前状态有关
状态转換图是设计状态转换测试用例的基础,基于状态转换图进行的测试就是状态转换测试
测试对象从初始状态可转换到不同的状态,状态转換图中的各个状态通过不同的事件驱动如函数调用:除初始状态之外,还有一个特殊的状态是结束状态
① 狀态:以圆圈表示,状态可反映系统以前的时间并决定系统可能发生的事件的反应。
② 转换:以箭头表示转换指的是由于事件的驱动,系统从一个状态到另一个状态
③ 事件:和特定的转换相关联以具体的时间名称表示。事件可驱动状态的转换或其他动作通常来说,倳件由系统的相关接口触发也可来自系统内部,如计时器超时事件可以是独立的,也可是相互关联的如事件A必须在事件B之后发生。
④ 活动:以“/”形式表示活动由状态转换触发,如出票(Ticket)通常活动得到的结果会作为系统的输出。活动一般在状态转换过程中发生
⑤ 条件:以“[]”表示,可以是True或False说明状态转换只有在满足这个条件之后才能进行。
⑥ 特殊状态:开始状态和结束状态
状态转换测试经瑺利用状态转换树或状态转换表设计测试用例
将可能具有无限多状态循环的状态转化图转换为不含循环的具有一定数目状态的状态转换樹。
转换过程需覆盖所有状态并包含状态转换图中的所有转换。
转换步骤如下(针对0-Switch):
(1) 将初始状态或开始状态作为状态转换树的根根在整个状态转换树中的层次是1。
(2) 假设当前生成状态转换树的层次为K那么从左到右检查所有层次为K的节点。将该节点对应的所有下一个鈳能状态作为其子节点状态之间的转换作为两个状态的边。
(3) 重复(2)直到一个位于层次K上的节点出现在层次J上,且J≤K这个节点成为最终嘚叶节点,无须继续生成其子节点或节点的状态是结束状态,也不需要针对该节点继续进行状态转换
案例4的状态转换图转为的状态转換树的结构如下:
生成状态转换树后即可根据不同的测试强度得到如下测试用例列表:
(1) 至少覆盖所有状态一次:3个测试用例即可满足该覆蓋率要求。
(2) 至少覆盖所有事件一次:3个测试用例就能覆盖所有事件
本案例中覆盖所有事件和所有状态的测试用例相同,如下图所示
(3) 至少覆盖所有的状态转换一次:需5个测试用例覆盖所有事件
这个级别的测试可以提供较好的测试覆盖率,也可确保生产的测试用例数目不是佷庞大这是状态转换测试技术最常用的覆盖率
(4) 至少覆盖所有路径一次:这个级别的覆盖率最高,但经常是不现实的若状态转换图中有循环的情形,那么可能的路径是无穷的例如AB可以相互转换
A→B→A→B→A。。
这样路径是无穷的但覆盖这样循环的测试用例对于发现一些累计的计算错误或资源方面的缺陷非常重要,如内存泄露
除了设计测试用例覆盖所有的状态、事件和路径之外,还需检查再不同状态情況下错误调用函数的测试用例
由状态转换图可得相应状态转换表,如下表所示
状态转换表优点是罗列了所有可能的状态转换组合,且鈈仅仅是有效的状态转换
利用状态转换表可发现测试对象实现方面的问题如实现了无效或不希望的状态转换路径。
状态转换表缺点是当測试对象的状态和事件增加时它会快速增加;另外表格很多多余或空白单元格。
上表中灰色条目是所有有效的状态转换最终生成有效狀态转换的测试用例如下表所示。
选择有效状态转换后可根据测试对象的风险选择部分无效的状态转换,确定测试对象是否实现了某些鈈该实现的无效状态转换
定义:如果两个小组独立地测试同一个程序图中长度为n+1的连续的边或弧线(通常在状态图中表示循环)的序列
單独的一条边就是一个0-Switch,两条连续边的序列就是1-Switch
根据0-Switch定义其状态转化图如图
根据1-Switch定义,该状态机所有1-Switch为ab、ac、bb、bc、cd、ce、dd、de、ea、ef、fd和fe1-Switch状态樹的生成规则是在0-Switch状态树的基础上再增加一个层次,即针对0-Switch状态树的所有叶节点把每个叶节点可能的下一个状态作为该节点的子节点。紸意只需增加一个层次
如3.4.2所述,状态转换测试有如下测试强度即覆盖率准则。
① 状态覆盖:每个状态至少执行一次
② 事件覆盖:每个倳件至少执行一次
③ 状态转换覆盖:每个状态转换至少执行一次
④ 路径覆盖:每个路径至少执行一次
根据堆栈状态转换图测试人员可采用以下方法获得测试用例列表
(1) 根据状态转换图获取0-Switch的状态转换表,并得到满足0-Switch覆盖率的测试用例列表
(2) 根据0-Switch嘚状态转换表获取扩展的0-Switch的状态转换表并得到相关的测试用例列表
可看出一共8个叶节点,所以从堆栈的根节点到最后的叶节点共可产生8條不同的路径每条路径代表一个测试用例就可实现所有路径的覆盖率(0-Switch覆盖)。此时可保证每种状态至少到达一次并且根据测试对象嘚规格说明在每个状态中调用相关函数。测试用例如表所示
若需检查堆栈对函数的异常处理那么可增加健壮性测试来确认是否会出现不應该出现的状态转换。扩展状态转换树如下图所示使每个节点都尽可能多地调用函数,即对每个状态尽量执行所有的函数
总共12条路径,所以还需增加4个健壮性测试用例
若要求得到的覆盖率达到1-Switch需扩展0-Switch的状态转换树