软件测试的基础概述
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
倘若只是进行最基本的通信功能验证,好像如 上两个测试方法已经覆盖了服务器与客户端通信的 全部功能。可是,如果我们能追求测试用例设计的 精益求精,则该功能的测试用例还可以再进行如下 补充。
测试策略1——测试数据集
服务器与客户端通信的测试数据分为:全中文(不 同编码格式)、英文、日文、中英文+数字+其他符号 (@、#、!、~、&等)的组合、以数字及各类符号作为 传送信息的最后一个字符。 以服务器能输入字符信息的最大数量为依据,输入 一个最大化的数据,判断客户端能否完整显示。 以客户端能输入字符信息的最大数量为依据,输入 一个最大化的数据,判断服务器能否完整显示。 应用测试策略1,服务器端与客户端1:1同时进行双 向通信。 应用测试策略1,服务器端与客户端1:n同时进行双 向通信。 应用测试策略1,服务器端与客户端n:1同时进行双 向通信。
测试策略7——安全性测试
需求分析
验收测试
概要设计
系统测试
详细设计
集成测试
编码
单元测试
缺陷:软件测试在软件开发完成后再进行,延误了项目周期。
需求分析
测试需求
软件实施
验收测试
概要设计
测试概要 设计
系统集成
系统测试
详细设计
测试详细 设计
模块集成
集成测试
编码
单元测试
原则:测试要尽可能早。
测试就绪点
单元测试:单元测试又称模块测试,是针对软
件设计的最小单位-程序模块进行正确性检验 的测试工作。 集成测试:将多个单元模块组合在一起实现多 个功能,保证模块与模块之间能互相访问.一次 性集成方式、增殖式集成方式、混合增殖式测 试。 系统测试:与计算机硬件、外设、某些支持软 件、数据和人员等其它系统元素结合。 确认测试:验证软件的功能和性能及其它特性 是否与用户的要求一致。 验收测试:以用户为主的测试 。
设计 编码
确认
测试
软件生命周期的各个阶段,检查每个软件结束时的 工作成果是否满足软件生命周期的初期在需求文档 中定义的各项规格和要求。 需求
设计 编码 测试
异常
发生软件崩溃,导致软件无法继续运行的缺陷(内存 越界、死循环、死锁等)
错误
软件的功能没有正确实现,或者实现的功能与需求不符 合。 比如5/2=2.5 结果为2 就是错误
测试策略2——临界状态测试
在服务器和客户端同时发送空数据信息给对方。 在服务器和客户端同时发送满数据信息给对方。 在服务器和客户端启动过程中,分别向对方发送空 信息、满信息。
测试策略3——异常处理
模拟双向数据传输时,传输过程中不断发生传输中 断和恢复,服务器和客户端不发生不合理的现象。 数据发送瞬间,接收端发生意外关闭、正常关闭或 接收端重启,是否服务器和客户端不发生异常,接收端 能正常接收完整的发送信息。 在对端软件未启动和传输通信不通时,如果数据发 送失败,发送方进行合理处理。
集成测试:一次性集成方式、增殖式集成方式、
混合增殖式测试
系统测试:与计算机硬件、外设、某些支持软件、
数据和人员等其它系统元素结合
冒烟测试
一个初始的快速的测试工作,以决定软件或者新发 布的版本测试是否可以执行下一步的“正规”测试。 如果软件或者新发布的版本每5分钟与系统冲突, 使系统陷于泥潭,说明该软件不够“健全”,目前 不具备进一步测试的条件 软件或环境的修复或更正后的“再测试”,自动测 试工具对这类测试尤其有用
恢复测试
采用人工的干扰使软件出错,中断使用,检测系统 的恢复能力。 验证安装在系统内的保护机构确实能够对系统进行 保护,使之不受各种干扰。 测试软件在多个硬件、软件、操作系统、网络等环 境下是否能正确运行。
安全测试
兼容测试
Alpha
测试 在公司内部系统开发接近完成时对软件的测试,测试 后仍然会有少量的设计变更。α测试时,开发者坐在 用户旁边,随时记录用户发现的问题 Beta 测试 当开发和测试根本完成时所做的测试,而最终的错误 和问题需要在最终发行前找到。β测试时开发者不在 测试现场,故是在开发者无法控制的环境下进行的测 试,通常是由软件开发者向用户散发β版软件,然后 收集用户的意见
一个即时通信产品的服务器与客户端通信功能模块 的测试用例。基本测试要求:服务器与客户端之间 传送文本信息的功能测试(不包括压力测试和性能 测试)。 大多数人很容易就想到如下测试方法:
(1)服务器向客户端发送一段文字,如果客户端 能收到完整的信息,则验证通过。 (2)客户端向服务器发送一段文字,如果服务器 端能收到完整的信息,则验证通过。
可用性测试
测试用户是否能够满意使用。具体体现为操作是否 方便、用户界面是否友好等。 对软件的全部、部分、升级安装或者卸载处理过程 的测试 基于客户或最终用户的需求的最终测试,或基于用 户一段时间的使用后,看软件是否满足客户要求
安装/卸载测试
接受测试
假设你是用户会提出什么问题
可能有的时候问题就不是问题
灰盒测试 灰盒测试结合了白盒测试盒黑盒测试的要素.它考虑了用户 端、特定的系统知识和操作环境。它在系统组件的协同性 环境中评价应用软件的设计。 灰盒测试由方法和工具组成,这些方法和工具取材于应 用程序的内部知识盒与之交互的环境,能够用于黑盒测试 以增强测试效率、错误发现和错误分析的效率。
开发方测试:
测试准备
测试执行
测试流程
其它流程(如设计流程)
软件测试不仅仅指测试的执行,还包括很多其他的 活动 软件测试是一个独立的流程,贯穿产品整个生命周 期,与其他流程并发地进行 软件测试要尽早准备,尽早执行 软件测试是根据被测物的不同而分层次进行的。不 同层次的测试活动可以是按照某个次序先后进行的, 但也可能是反复的 在H模型中,软件测试模型是一个独立的流程,贯 穿于整个产品周期,与其他流程并发地进行。当某 个测试时间点就绪时,软件测试即从测试准备阶段 进入测试执行阶段。
开发方通过检测和提供客观证
据,证实软件的实现是否满足规定的需求。
用户测试:
主要是把软件产品有计划地免费 分发到目标市场,让用户大量使用,并评价、 检查软件。
介于软件开发方和用户方之间 的测试组织的测试。第三方测试也称为独立 测试。
第三方测试:
单元测试:单元测试又称模块测试,是针对软件
设计的最小单位-程序模块进行正确性检验的测试 工作
成为专门的学科 开发与测试的融合趋势 软件测试的发展
(测试引导开发)
验证软件需求和功能是否得到完整实现
正常情况和非正常情况都要进行测试,看是否得到 期望的要求。 例子:windows自带计算器 软件是否可以发布要经过测试来验证,未经过测试 的软件是不能发布的。 手段有评审、检视、走读、单元测试、集成测试、 系统测试
测试策略5——模拟资源紧张情况下的测试
长时间(10小时以上)同步模拟服务器和客户端在 各自接收端口和发送端口同时受到网络攻击,在有限的 通信系统资源紧张的情况下是否还能进行正常的文本通 信,而不出现异常。
测试策略6——真实环境测试
将服务器和客户端挂在Internet上进行真实环 境的测试,验证是否会有在真实环境应用中我们未 想到的测试情形。 服务器和客户端在通信过程中进行安全性测试。 当两端正在持续正常通信过程中,同时启动对服务 器和客户端的各类安全性测试攻击。例如:通过向 接收端进行伪造的源IP数据攻击;向接收端发送一 些畸形的数据文件格式;向接收端发送一些错误的 协议报文等方式,来判断接收端是否会出现异常。
遗漏
产品规格说明书中的功能不完整,或者功能没有被实现。
多余的功能
画蛇添足
可优化的部分
当影响到用户的使用或者用户发现可以有更好的途径, 这种可优化部分就变成了缺陷。 比如,实现一个功能用户要按5次鼠标,但是用户能找 出只按3次鼠标就可以操作的方法
即时性缺陷
代码执行一次就会暴露的缺陷(覆盖测试可以解决)
回归测试
性能测试
测试软件的运行性能。这种测试常与压力测试 结合进行,如传输连接的最长时限、传输的错 误率、计算的精度、记录的精度、响应的时限 和恢复时限等 负载测试 测试软件在重负荷下的运行表现,系统的响应 减慢或崩溃 压力测试 测试系统在某一条件达到最高限度时各项功能 是否能依旧运行。
测试策略4——长时间工作
通过转换为自动化测试的方式,将测试策略1、测 试策略2和测试策略3按先后顺序循环执行多次或10小时 以上,寻找测试策略1、测试策略2和测试策略3所能覆 盖的逻辑处理代码中是否有内存泄漏的情况。 到目前为止,我们已在最开始的测试设计基础上进 行了很多的扩展。那么我们现在是否还可以有新的测试 策略来进一步提高测试用例的质量呢?
运行维护
优点:
– – – 提供了软件开发的基本框架,优于“手工作坊”式的开发方法 有利于大型软件开发过程中人员的组织、管理 有利于软件开发方法和工具的研究与使用,从而提高了大型软件 项目开发的质量和效率
缺点:
–
–
在软件开发的初始阶段指明软件系统的全部需求是困难的,有时 甚至是不现实的 需求确定后,用户和软件项目负责人要等相当长的时间(经过设 计、编码、测试、运行)才能得到一份软件的最初版本。如果用 户对这个软件提出比较大的修改意见,那么整个软件项目将会蒙 受巨大的人力、财力、时间方面的损失。
王雯佳
软件测试:软件测试是为了发现错误而执行程序的 过程 。 软件=文档+数据+程序组成 程序=算法+数据结构
软件调试 独立的软件测试(产品完成后引入) 软件测试的第一次定义
软件测试就是验证软件产品是否正确工作的、符合 要求的 软件测试是已发现错误为目的而运行的程序或系统 的执行过程
开发一个电子商务网络软件,这个软件至少需
要满足这样几个要求:按照操作流程里的说明 ,能够正常完成物品的买卖工作;当用户查找 自己以往的购买记录时,系统应该5秒内完成查 找;用户可以使用IE浏览器访问,也可以使用 火狐访问。 关于这些要求,你应该展开进行哪些测试?
测试要点
软件是否实现了需求规定的要求 软件模块与模块之间的关系及操作顺序 异常情况:指输入的动作
字段的异常输入 业务的异常操作
规定: 用户名:英文、数字组合 长度:1-10位 密码:数字和字母及组合 长度:6位
1、检查QQ号码 大于允许最大长度 包含特殊字符 全部为数字 为空 空格 错误的QQ号 正确的QQ号 2、检查口令 大于允许最大长度 包含特殊字符 全部为数字 各种字符的组合 为空 空格 错误的口令 正确的口令 3、登录模式
验证软件是否可以发布使用
发现软件系统的缺陷、错误以及不足
获取软件产品的质量信息
经过测试,可以推测出软件潜在的缺陷数。
题
提前发现开发过程中的问题和风险
金字塔原则
提供可以使用以分析的测试结果数据
验证
软件生命的各个阶段,用下一个阶段的产品来检查 需求 是否满则上一个阶段的规格定义
累积性缺陷
代码要执行多次才能暴露 资源泄漏 计算溢出
一致性(正确性) 完备性
验证软件需求实现的完备性 软件测试技术方法的完备性 软件测试过程的完备性 软件测试用例是否完备
安全性
性能(可靠性、可用性、效率)
白盒测试 把测试对象看成是一个打开的盒子,程序内部的逻辑结构和其 他信息对测试人员都是公开的。白盒测试的方法有逻辑覆盖 (语句覆盖、判定覆盖、判定-条件覆盖、条件组合覆盖、路径 覆盖)、基本路径测试等 黑盒测试 黑盒测试把测试的对象看成一个黑盒子,不考虑程序内部的逻 辑结构和内部特性,主要在软件的接口处进行测试,主要测试 软件的功能。黑盒测试的方法包括等价类划分法、边界值分析、 错误推测法、因果图、功能图等
何为生命周期? 软件测试相关生命周期
软件生命周期 软件开发周期 软件测试生命周期模型 测试项目周期
软件都要经历需求分析、设计、编码、测试、
使用、淘汰的过程。
当软件不再被使用之后就标志生命周期结束。
计划/调研
定义阶段
需求分析 概要设计
详细设计
开发阶段
编码
测试
验收
维护阶段