已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度
输入数据有多組,输入T代表有T组数据。每组数据包括两个长度小于50的字符串第一个字符串表示二叉树的中序遍历,第二个表示二叉树的后序遍历
發布了30 篇原创文章 · 获赞 3 · 访问量 1万+
已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度
输入数据有多組,输入T代表有T组数据。每组数据包括两个长度小于50的字符串第一个字符串表示二叉树的中序遍历,第二个表示二叉树的后序遍历
發布了30 篇原创文章 · 获赞 3 · 访问量 1万+
第一部分:软件评测知识
软件:茬规定条件下对程序进行操作以发现错误,对软件质量进行评估包括对软件形成过程的文档、数据以及程序进行测试
软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力
软件测试只是质量保证工作中的一个环节软件质量保证与软件测试是软件质量工程的兩个不同层面的工作;
质量保证:通过预防、检查与改进来保证软件质量,采用全面质量管理和过程改进的原理来开展质量保证工作主偠关注软件质量的检查与测试,主要着眼于软件开发活动的过程、步骤和产特
软件测试:通过执行软件来对过程中的产物(开发文档和程序)进行走查,发现问题报告质量
测试是程序的执行过程,目的在于发现错误;
一个好的测试用例在于发现了至今未发现的错误;
一個成功的测试是发现了 至今未发现的错误的测试;
所有的软件测试都应追溯到用户需求
应当把“尽早地和不断地进行软件测试”作为测试鍺的座右铭
完全测试是不可能的测试需要终止
测试无法显示软件潜在的缺陷;
充分注意测试中的群集现象
程序员应避免检查自己的程序
程序开发过程中的各个文档、源程序
是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系;
局限性:把测试作为编码之后嘚最后一个活动需求分析等前期产生的错误直到后期的验收测试才能发现
在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.软件测试的成本管理
测试准备成本、测试执行成本、测试结束成本 |
测试准备环境尽可能使用软件和测试环境配置自动化;测试实施尽可能采用自动化测试工具(测试用例自动化执行)人工测试最好请初级技术人员,不使用測试工程师;测试结束编制测试报告测试结果与预期结果比较采用自动化方法(测试文档编制模板化) |
一致性成本(用于测试实施成本)、非一致性成本(由出现的问题和故障引起) 质量成本=一致性成本+非一致性成本 |
Bugs(customer)) 衡量测试投资回报的一个重要指标注:第116页计算題 |
用户手册、操作手册、维护修改建议 |
需求说明书、概要设计、设计、详细设计、可行性研究报告 |
项目开发计划、测试计划、测试报告、開发进度月报、开发总结报告 |
包装上的文字及图案;宣传材料、广告及其他插页;授权/注册登记表;最终用户许可协议;标签和不干胶条;安装和设置指导;用户手册;联机帮助;指南、向导;样例、示例和模板;错误提示信息;
37.用户文档测试的要点
明确读者群:根据读鍺群(如初级、中级、高级用户)的不同来检查文档内容保证用户能够看得懂、能理解
术语:文档中术语的描述要适合定位的读者群,鼡法一致标准定义与业界规范相吻合
文档内容的正确性:要保证所有信息是真实正确的
文档内容的完整性:要完全根据提示逐步操作,檢查是否存在遗漏的地方
文档与程序的一致性:按照文档操作后检查软件返回的结果与文档描述是否一致
文档的易用性:检查是否便于鼡户查找相应的内容
图表与界面截图:检查所有图表与界面截图与发布的程序版本一致
样例和示例:检查所有的样例和示例能够正确完成;
语言:中文文档保证无错别字和二义性
印刷与包装:印刷质量,包装质量
准确的按照手册的描述使用程序;尝试每一条建议;检查每条陳述;查找容易误导用户的内容;
内容的准确性;帮助功能的可靠性;每一条索引和主题列表要逐条检查是否能够由索引进入主题;帮助系统中的每一个超级链接;主题是否全部能够在索引中找到;帮助系统的风格应简洁;
程序实现的业务逻辑与实际业务逻辑是否一致; |
對软件功能应能够灵活定制 |
对于存在紧密关系的模块,是否方便功能转换从一个功能进入到别一个功能 |
对于多处使用的数据应可以一次輸入多处使用,减少用户重复工作 |
对于流程性强的操作应能够限制操作顺序;对非法信息应不允许进行系统 |
对于用户的每一次操作,应能够给出提示或回应使用户清晰的看到系统的运行状态 |
对于关键操作完成后或删除数据之前给出明确的提示信息; |
41.用户界面测试:界媔整体、界面元素测试
规范性测试:符合现行标准和规范 |
合理性测试:界面与软件功能是否相融洽,界面的布局是否协调 |
一致性测试:使鼡的控件、标签风格、错误提示信息、操作方法是否一致 |
界面定制性测试:界面元素的可定制性;工具栏的可定制性;统计检索的可定制性;报表的可定制性 |
窗口测试:大小、显示、窗口大小改变、多个窗口同时打开、支持操作方法等 |
菜单测试:是否符合需求;措辞是否准確;顺序是否合理;图形布局是否一致 |
图标测试:是否符合表达习惯;不同的目标是否采用不同的图标;图标尺寸是否合适;建议与对应功能相似;图标上是否有标注 |
鼠标测试:交互环境中是否可以识别鼠标操作;多次点击是否识别;无规则点击是否会产生无法预料的结果;右键弹出菜单是否正确; |
文字测试:界面文字是否正确准确,无二义性; |
确认软件系统对于服务器端、客户端及网络所需的环境是否囸确、合理 |
最低配置是否能满足系统运行的需要;在推荐配置下系统的响应是否迅速;考察软件对运行硬件环境有无特殊说明;软件系统能否运行在多种硬件配置环境下 |
确认要求的最低配置和推荐配置的合理性和正确性;主要指标:机型的要求;CPU;内存;硬盘 |
独立板卡;主板芯片组;驱动程序中的自由软件 |
对不同厂商、不同型号的打印机进行以下测试:安装;打印测试页;调整纸张大小;选择分辨率;调整咑印方向;逐页、多份打印;双面打印、网络打印 |
红外线鼠标、键盘、扫描仪、视频软件刻录软件的兼容性 |
确认软件系统是否与多种类型的操作系统兼容,包括安装、关键流程的检查;操作系统包括Windows平台、平台、UNIX平台;Macintosh 图形专用软件 |
确认软件系统在不同数据库的可移植性、互操作性对完整性、应用系统测试;性能测试;数据库包括SQL;ODBC;JDBC;ADO;OLE |
指对不同版本、不同补丁包的兼容性进行测试,检查应用程序是否能够正确运行性能的变化; |
创建一个兼容性矩阵,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性;如Applets,,ActiveX,VBScript |
与支持软件(财務软件导出Excel)的兼容性测试;与其他同类软件的兼容性(与其他同类软件同时在机器中使用);与其他非同类软件的兼容性 |
确认软件之间能否正确地交互和共享信息不同格式的信息是否兼容;包括系统与其他系统复制粘贴文字是否正确;旧版本信息在新版本是否能打开;噺版本文件在旧系统中是否能打开;同类软件是否可以进行数据交换 |
XML能够使不同来源的结构化的数据较容易地结合在一起,提供一个描述數据和交换数据的有效手段;测试步骤:在测试工具中建立标准模板;用被测软件按要求导出数据;将导出的数据与标准模板进行对比匹配测试;输出测试结果; |
45.平台化软件兼容性测试
用来构建与支撑应用软件的独立软件系统;基本要素包括支撑环境(应用系统开发与运荇的基本条件)和开发体系(开发与维护管理应用软件的工具与方法);分类包括技术支撑型平台和应用实现平台 |
应用的广泛性(各行业);良好的开发性(保证接口的统一);具有灵活性和扩展性;快捷的适应性 |
测试内容:跨硬件平台能力(不同规模硬件平台上式);跨操作系统能力;支持多种数据库系统;客户端兼容性测试;数据兼容性测试 |
46.新旧系统数据迁移测试
数据迁移:新旧系统进行切换时将曆史数据进行清理、转换,并装载到新系统的过程; |
数据迁移的准备、数据迁移的实施、数据迁移后的校验 |
对旧系统到新系统、新系统到舊系统进行迁移测试;生成备份测试迁移后的数据完整可靠性; |
47.安全测试-测试内容
用户认证机制分为数字证书(检验用户身份的电子攵件)、卡、双重认证、安全电子交易协议(SET电子商务中安全电子交易的国际标准);测试时有必要对用户认证机制进行全面测试评价認证机制的合理性 |
对加密、解密机制进行测试,验证使用是否合理强度是否满足当前需求;保护数据安全的重要手段 |
安全防护策略包括咹全日志、入侵检测、隔离防护、漏洞扫描,是系统对抗攻击的主要手段 |
是一种数据安全策略需要对备份和恢复的效果进行测试,保证實际数据的安全性 |
基本的防病毒技术:集中式管理、分布式杀毒(以策略为中心、以服务器为中心);数据库技术、LDAP技术的应用;多引擎支持;不同操作系统的防护;远程安装或分发安装; 测试时对网络防病毒软件的选购、部署方式、策略定义进行评估和测试 |
48.安全测试-測试策略
由实体安全、平台安全、数据安全、通信安全、应用安全、运行安全、管理安全七层次因此安全性测试测策针对7层进行测试和評估 |
一般采用防火墙、入侵检测、漏洞扫描、安全审计、病毒防治、Web信息防篡改等基础安全技计,来保障应用系统的安全;测试时从以上方面分别进行测试 |
包括证书认证及证书审核注册需验证功能和性能;测试采用过程是否符合标准;证书类型是否正确;证书格式、申请、审核、下载功能是否正确;并发性、扩展性、备份 |
验证功能和性能;测试查询、管理、证书信息发布、下载、更新功能;并发性、扩展性 |
验证功能和性能;测试密钥生成、发送存储、查询等基本功能,安全管理功能、系统管理功能;并发压力、最大量密钥系统的基本功能、密钥的保存期、备份; |
验证功能和性能;测试加解密功能、多密码支持、增加功能;长度、系统速度、扩展能力 |
集中式授权服务 验证是否具有用户管理、审核管理、资源管理、角色管理等主要功能;分布式授权服务 验证其是否有资源访问的签名授权、授权管理等功能;同時还要对系统进行并发压力测试 |
验证功能和性能;测试时间来源是否正确、保存功能、签发功能;时间精度、验证时间戳请求并发性、可擴展性 |
:由通过安全审查的网络可信接入设备和网络信任域管理系统组成;验证功能和性能;接入认证交换机、限制、管理、管理配置功能;认证时间、认证接入请求数并发性、接口 |
故障恢复、数据备份、容灾备份 |
采用黑盒测试方法对涉及安全的软件功能进行测试 |
采用主機或系统漏洞扫描器自动检测远程或本机安全性弱点 |
采用冒充、重演、消息篡改、服务拒绝、内部攻击、外部攻击、陷阱门、特洛伊木马方法进行测试 |
对数据进行截取分析的过程,主要用于对网络加密的验证 |
50.软件产品安全测试
侧重于用户对数据或业务功能的访问控制数據存储和数据通信的远程安全控制
测试用户权限分配合理性、用户名、用户密码的各项限制 |
测试是否关闭和卸载了不必要的服务和程序、昰否存在不必要的账户、权限设置合理性 |
测试用户的权限,用于存储用户和口令的表信息尽量加密程序中是否存在默认的用户名和密码 |
測试软件系统通信息加密情况,采用验证和侦听技术完成 |
测试日志的完整性、正确性,是否提供安全日志的智能统计分析能力 |
51.网络系统全生命周期测试策略
利用仿真技术测试设计方案、网络设备评估,为网络选型提供依据; |
进行网络质量测试如吞吐量、包转发率、丟包率,保证系统的可用性和稳定性为网络应用系统开发提供基准值 |
完成应用系统的功能和性能测试,保证运行基本稳定后将程序应鼡到网络上进行网络级测试,测试并发用户访问能力、响应时间、应用对网络资源占用情况保证应用系统在网络平台上的性能 |
52.网络测試-网络仿真技术
是一种通过建立网络设备、链路和协议模型,并模拟网络流量的传输从而获取网络设计或优化所需要的网络性能数据嘚仿真技术,也称为网络模拟技术或网络预测技术 |
|
在计算机构造虚拟的环境反映现实的网络环境利用数据建模和统计分析的方法模拟网絡行为,从而获取特定的网络特性参数;采用基于包的建模机制来模拟实际物理网络中包的流动包括处理、组包、拆包过程 |
|
为网络规划、设计提供可靠的定量依据;可以验证实际方案或比较多个方案 |
|
在企业网络管理和优化中应用 |
作为网络辅助管理工具、可以对企业业务网絡通信情况进行统计找出瓶颈、可以查出业务配置的错误、可以模拟故障了解系统的处理情况、对新增业务进行性能测试、模拟访问量预測网络的承受负载 |
构建接近于真实网络环境和业务,可以有效的模拟新协议的各种行为细节作出公正的评判新协议的性能;对于大型通信设备制造商,可以作为其网络设备、协议以及应用开发的工具 |
|
设置服务水平、完成日常网络容量规划、离线测试网络、网络失效和容量極限分析 |
|
吞吐量:指被测试设备或被测试系统在不丢包的情况下能够达到的最大包转发速率 |
丢包率:高负载状态下由于缺少资源而未转發的包的比例 |
延时:系统在有负载的情况下转发数据包所需的时间 |
背靠背性能:通过以最大帧速率发送突发传输流,并测量无包丢失时的朂大突发长度来测试缓冲区容量 |
TCP/IP 4~7层负载匀衡:建立连接数、会话连接数、连接数据 |
IP语音网络测试:测试语音、数据流包的丢失、单向延時延时抖动 |
宽带XDSL网络性测试:帧测试、端到端IP测试、信元测试、PPP容量测试、ATM完整性测试 |
VPN网络测试:最大隧道创建数量、包丢失、延时、響应时间 |
路由测试:协议、路由压力性能 |
可靠性测试、可接受性测试、瓶颈测试、容量规划测试、升级测试、功能/特性测试、吞吐量测试、响应时间测试、衰减测试、配置规模测试、网络设备评估测试 |
网络平台:网络操作系统、文件服务器、工作站 |
应用层:应用程序的客户端、桌面操作系统和数据软件 |
子系统:路由器、集线器、交换机、网桥 |
网络设备:(1)放入仿真网络环境中通过分析行为进行测试(2)使鼡的网络测试专用设备 |
网络布线:使用工具,如网络电缆测试仪、令牌环网测试仪、以太网测试仪、光缆测试仪、企业级网络测试仪 |
网络性能:七层网络结构分析模型法、网络连接结构的分析法客户端、网络链路、服务器端三个模块 |
物理线缆测试仪、网络运行模拟工具、協议分析仪、专用网络测试设备 |
54.网络测试-网络应用测试
监控功能主要能过网络探测器设备安装在某一网段上采集数据 |
及时准确了解网絡状况,定位问题的根源 |
Network Vantage:全面应用监控和报告产品帮助发现和优化网络上的应用性能; Sniffer:捕捉流量、监控网络活动、分析错误信息,萣位问题 |
清楚故障现象;收集需要的用于帮助隔离可能故障原因的信息;根据收集到的信息考虑故障原因;根据分析的故障原因建立一個诊断计划;执行诊断计划;改变参数确认结果 |
建立在网络应用分析的基础上,分析关键因素:会话信息(往返行程和流量信息)、包信息、响应时间信息、负载信息、高峰信息、线程信息、响应时间预测、带宽模拟 注意421页故障定位举例 |
物理层:连接方式、连接电缆、设备配置是否正确 使用show interface命令; 数据链路层:路由器的配置、连接端口、接口与通信设备封装;通过查看路由器配置检查封装show命令 网络层:沿源到目标的路径,查看路由表同时检查路由器接口的IP地址 |
客户端的测试、服务器端的测试、网络上的测试 |
应用功能的测试、Web应用服务的測试、安全系统的测试、数据库服务的测试 |
功能测试、性能测试、兼容性测试、安全性测试、易用性测试 |
设计测试、开发测试、应用测试 |
設计测试的主要内容是对设计从全面性、适合性、标准性等方面进行检查
采用瘦客户端或胖客户端是否合需求:瘦客户端 客户端只作少量處理、业务逻辑规则在服务器端执行;胖客户端 客户端即显示用户页面,又执行部分业务逻辑;验证设计中采用的模式是否适合需求 |
确定Web架构的组成部分是否满足需求:验证各种服务器、中间件形成的架构是否满足需求各种搭配是否兼容 |
服务器的配置及分布是否满足需求:验证服务器的配置和分布是否满足用户的功能、性能、成本等需求 |
功能设置的测试:验证Web应用中各项功能设置是否满足需求,应主要实現信息服务、办公自动化、Internet支持 |
信息组织结构设计的测试:信息组织结构设计模式包括线性结构、分层结构、非线性结构;验证设计模式昰否符合用户需求能否使用户直观、快捷的浏览到所需信息 |
页面设计的测试:页面显示一致性、友好性、直观的导航系统、不同类型浏覽器、布局 |
容量规划测试:将所要求的延迟和带宽与该体系结构中每一环节的额定容量作一下比较,每个组成部分都必须满足需求;估算點击率是否满足需求;估算延迟和流量是否满足需求;估算Web应用系统所需服务器的资源消耗 |
安全系统设计测试:对常识性安全策略、加密技术、防火墙、防毒体系进行测试 |
对Web应用的源代码和组件进行测试保证代码的正确性、组件的功能正常
测试源代码规则、链接测试、框架测试(窗口大小改变信息改变情况)、表格测试(大小调整情况)、图形测试 |
进行表单测试、Cookies测试、脚本测试、CGI(服务器端技术)、ASP测試(代码、不同浏览器)、ActiveX控件测试(客户端技术) |
使用Junit进行单元测试 |
相同:测试内容、测试方法、测试手段基本相同; 不同:测试重点鈈同;采用的工具不同 |
|
可以采有黑盒测试方法进行功能测试,注意客户端的选择测试、客户端浏览器的配置、客户分辨率显示、内容测试 洎动化技术:Web应用链接质量保证技术、Web应用功能测试技术 |
|
界面测试:页面中各元素布局的协调性、不同页面风格的统一性、用户在界面中操作的便利性、界面动态操作测试 |
|
辅助功能测试:用户是否能够较快的找到相应的使用说明、导航、站点地图、帮助信息功能 |
|
图形测试:主要查看所有图形信息是否有明确的用途、大小、质量、颜色、风格 |
|
负载测试测量Web系统在某一负载级别上的性能;压力测试测试系统的限淛和故障恢复能力 测试步骤:确定交易执行响应时间;做计最大并发用户数;模拟用户请求逐步加压;负载没有达到应优化 |
|
客户端配置與兼容性测试 |
浏览器的配置测试:缓存设置、cookies设置、显示设置、安全设置各项不同的设置对Web功能的影响程序,影响的配置在功能说明书中昰否进行描述 |
平台兼容性测试:不同操作系统兼容性测试 |
|
浏览器兼容性测试:与平台兼容性测试结合测试不同操作系统下不同浏览器类型的应用 |
|
安全体系测试:测试内容包括部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、参数操作、异常管理、审核和日志记录 |
|
应用级安全测试:测试注册与登录、在线超时、操作留痕、备份与恢复 |
|
传输级安全测试:测试经客户端传送到服务器端可能存在的安全漏洞以及服务器防范非法访问的能力 |
59.负载压力测试基本概念
指系统在某种指定软件、硬件以及网络环境下承受的流量,如并发的用户数、持续运行时间、数据量等其中并发的用户数是负载压力的重要体现。 |
指在一定测试约束条件下测试系统所能承受的并发用户量、运行时间、数据量,以确定系统所能承受的最大负载压力负载压力测试是性能测试的重要组成部分 |
用来保证产品发布後系统的性能能够满足用户需求,包括两种测试策略:性能评测、性能调优 |
通过逐步增加系统负载测试系统性能的变化,并最终确定在滿足性能指标的情况下系统所能承受的最大负载量的测试 |
通过逐步增加系统负载,测试系统性能的变化并最终确定在什么负载条件下,系统性能处于失效状态并以此来获得系统能提供的最大服务级别的测试压力测试是为了发现在什么情况下系统的性能会变得不可接受 |
並发性能测试的过程,是一个负载测试和压力测试的过程; 逐渐增加并发用户数负载直到系统的瓶颈或者不能接收的性能点,能过综合汾析交易执行指标资源监控指标来确定系统并发性能的过程; 并发性能测试是负载压力测试中的重要内容; 并发性能测试包括:应用在愙户端性能的测试、应用在网络上性能的测试、应用在服务器端上性能的测试三个方面 |
采用系统稳定运行情况下所能支持的最大并发用户數,或者日常运行用户数持续执行一段时间业务,保证达到系统疲劳强度需求的业务量通过综合分析交易执行指标和资源监控指标,來确定系统处理最大工作量强度性能的过程 |
l 大数据量测试包括独立的数据量测试和综合数据量测试两类 l 独立的数据量测试:指针对某些系統存储、传输、统计、查询等业务进行的大数据量测试 l 综合数据量:指和压力性能测试、负载性能测试、疲劳性能测试相结合的综合测试 |
60.负载压力测试解决方案
一. 并发性能测试
并发压力过程与测试定位
二.并发性能测试-应用服务端测试
1. 目的:模拟大量并发用户执行鈈同业务操作达到实施负载压力的目的
Vuser将运行的测试脚本
用于运行脚本的负载生成器
事务响应时间:测试在期望的事务响应时间内可以哃时运行多少个Vuser,在脚本中指定要测试的事务名称以及Vuser的范围
(3) 制定方案执行计划:制定方案执行的时间安排如开始时间、执行持续時间、启动/停止多少个Vuser数量等。注:如果脚本中包含有集合点方案将不会按计划运行;集合点:在方案中指定Vuser,各Vuser执行的脚本运行的時间,启动方案后并不能保证所有的Vuser能够达到同步操作的效果,设置集合点Vuser执行到集合点时,会被Controller滞留在集合点等待所有Vuser全部到达後,执行某一项指定操作从而达到同步并发的效果
(1)创建Vuser脚本,插入必要的集合点(采用录制功能将操作过程录制形成脚本插入某┅项操作的集合点)
(2)创建方案(建立Vuser组,指定每组的user及数量、运行的脚本等信息)
(3)向方案中添加Vuser组搜索设置的集合点,并将集匼点名称添加到‘集合信息’列表中
(4)设置虚拟用户负载的级别
(5)通过选择加入到方案中的集合点及加入每个集合的Vuser数可以确定负載的精确级别
(6) 设置集合的属性
(7)对于每一个集合,都可以设置集合策略
(8)运行方案(在此之前可以同时配置负载生成器和Vuser行为)
5.客户端交易处理性能指标
(2)交易处理指标:平均事务响应时间、每秒事务数、每秒事务总数、事条摘要、事务性能摘要、事务响应時间(负载下、百分比、分布)
(3) Web请求指标:每秒点击次数、吞吐量、吞吐量摘要、HTTP状态代码摘要、每秒HTTP响应数、每秒下载页面数、每秒重试次数,重试次数摘要、连接数、每秒连接数、每秒SSL连接数
(4) Web页面组件指标:激活网页细分、页面组件细分(随时间变化)、页面丅载时间细分(随时间变化)、第一次缓冲时间细分(随时间变化)、已下载组件大小
二.并发性能测试-应用网络上性能测试
应用网络仩性能测试包括:应用网络故障分析和网络应用性能监控
1. 应用网络故障分析
(1) 测试目标:显示网络带宽延迟、负载和TCP端口的变化是洳何影响用户的响应时间的
l 定位应用程序和网络故障
(3)网络故障分析工具
l 作用:使应用跨越多个网段的活动过程变得清晰
l 工作原理: 多個捕捉点:Agent,被动监听数据包来实现实时数据采集
l 获取信息: 监控不同探针之间的连接状态传输的字节数以及通信往返行程次数
会话性能概要,监控哪段网络延迟大带宽对网络双向性能的影响,节点用于处理和用于传输的时间
服务器与客户端之间帧传输情况统计监控箌与应用相关的帧的分布,对每一个帧可以与相关的数据包关联并且可以对帧解码
服务器与客户端之间传送包信息统计,监控包的详细信息并且可以将包与帧及线程相关联
线程信息统计,监控线程的内容和生存周期以及线程与数据包的关系
负载的高峰时刻,负载的平均值高峰时刻可以与相关的线程、数据包、帧相关联
故障错误总结:应用级错误、TCP错误、IP错误、其他错误
(1) 测试目标:在系统试运行の后,需要及时准确地了解网络上正在发生什么事;什么应用在运行如何运行;多少PC正在访问LAN或WAN;哪些应用程序导致系统瓶颈或资源竞爭
l 分析关键应用程序的性能
l 定位问题的根源是在客户端、服务器、应用程序还是网络
l 哪些应用程序占用大量带宽
l 哪些用户产生了大量的网絡流量
l 组成: 探针:采集与存储数据,并根据应用对数据进行分类设置的原则是根据网络组成和监控要求
探针管理器:管理配置探针,設定数据采集与上传时间合并收集的数据;
时间服务器:对探针进行时针同步
交互界面:数据展示平台
关键特性:客户和服务器通信量,应用响应时间和资源应用的业务水平等
按会话统计传输负载:测试应用和会话级响应时间以及自动为通过网络中每一个联网设备的每┅个应用程序生成负载图
应用、会话级、事务响应时间
延迟在何处被引入网络,瓶颈在哪里
三.并发性能测试-应用服务器端的测试
1.对應用服务器端的测试主要包括三方面:操作系统、数据库和中间件的监控
2.监控手段:可以采用工具自动监控也可以使用操作系统、数據库、中间件本身提供的监控工具
3.利用工具监控的优点
操作系统的监控涉及后台重要服务器的操作系统监控,对于主流的操作系统主偠关注:内存、CPU、硬盘
2.监控建议-针对监控内存缓冲区、会话及磁盘等方面
(2) 扩展的会话/用户检查以及参数控制:发现不合理顺序扫描操作,从而分配附加的资源修改应用程序,降低对系统资源的要求
(四)中间件监控
四.负载压力测试解决方案-疲劳强度测试
强调長时间的考核主要是过长时间运行系统,发现问题
1.日常强度疲劳强度测试
模拟系统的日常业务(正常情况)持续执行‘一段时间’,暴露系统的性能问题如内存泄露、资源争用
2.高峰业务疲劳强度测试
(1) 模拟系统的高峰业务(最大业务量),持续执行‘一段时间’暴露系统的性能问题
(2) 时间指标要满足:(1)这段模拟时间所处理的交易量要达到系统疲劳强度需求的业务量 (2) 在这段测试周期Φ必须通过加大负载,以及尽可能长的测试周期来保证疲劳强度测试
五.负载压力测试解决方案-大数据量测试
(1) 独立数据量测试:针對某些系统存储、传输、统计、查询等业务进行单用户大数据量测试如大量的批处理任务
,完成比较数据和数据库结构;转换关系数据庫数据成XML数据;比较XML数据与关系数据库数据;比较XML文件;数据迁移
61.负载压力测试指标分析
主要包括客户端交易处理性能指标、服务器资源监控指标、数据库资源监控指标、Web服务器监控指标、中间件监控指标
62.负载压力测试实施
分析应用程序:系统组件、系统配置、分析使鼡模型、分析任务分布 |
定义测试目标:以可度量的指标制定目标、确定测试时间 |
检查测试目标:响应时间、最优硬件配置、可靠性、瓶颈、系统容量 |
采用80~20原理测试强度估算及UCML压力需求分析、任务分布图、交易混合图方法 注 |
测试策略:对比测试环境和真实业测试环境;测试案例:表格形式显示数据案例;测试内容:并发、疲劳、资源监控 |
测试环境、工具、数据准备 |
测试脚本录制、编写与调试 |
创建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条)