




已阅读5页,还剩241页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试方法和技术SoftwareTestingmethodsandtechniques 先锋软件职业技术学院 先锋软件研发中心任丽丽 软件开发系列 软件测试 1基本概念 2测试流程和方法 3测试模型 4测试文档 5功能测试 6易用性测试 7Testtrack 8缺陷管理 习题 实训点 习题 实训点 习题 实训点 习题 实训点 习题 实训点 习题 实训点 习题 实训点 习题 实训点 软件测试方法和技术SoftwareTestingmethodsandtechniques 第一讲软件测试 基本概念SoftwareTestingmethodsandtechniques 软件开发系列 软件测试 在本章中 我们将学习 什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则 软件测试基本概念 概览 完成此课程之后 学员将具备以下能力 理解软件测试的含义为什么要测试 测试的重要性何在 测试的现状 前景 测试工程师能从事哪些工作 要满足哪些条件 测试在软件开发过程中扮演什么角色 测试要做哪些事情 测试人员应该具备哪些素质 软件测试基本概念 目标 什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则 软件测试基本概念 课程目录 软件测试基本概念 测试就是 大家来找碴 对于测试的定义 一般有三种不同的说法 定义1 软件测试是为了发现错误而执行程序的过程 定义2 软件测试是根据软件开发各阶段的规格说明书和程序的内部结构而精心设计的一批测试用例 即输入的数据及其预期的结果 并利用这些测试用例运行程序以及发现错误的过程 定义3 软件测试是软件测试工程师根据规格说明书在实验室通过一些技术手段和专业工具模拟现场环境 以期发现软件中存在的问题 软件测试基本概念 什么是测试 这三种定义其实都说明了以下问题 测试的目的 测试是为了发现软件中存在的问题 从这个意义上说 测试不是为了证明软件没有错 而是证明软件存在问题 测试的依据 测试所有的依据都来源于需求规格说明书 测试的人员 测试必须是由专门的测试工程师来完成的 而不是开发人员自己测试自己的代码 或开发人员交叉测试 测试的方法 测试必须设计测试用例 测试用例至少包括三个要素 输入的典型数据 预期输出的结构和测试场景描述 即测试的步骤 测试往往要借助专业的测试工具 软件测试基本概念 什么是测试 什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则 软件测试基本概念 课程目录 软件在开发过程中 虽然经过了开发人员的调试 但还是难免会出现这样那样的问题 比方说 开发人员理解用户的需求有出入两个开发人员做出来的东西风格不一致软件的接口部分出了问题业务逻辑与实际不符用户的误操作造成非预期的错误 系统不能恢复正常软件经不起长时间运行或大数据量的考验当然还有很多情况会造成软件出现错误 这 软件测试基本概念 测试的重要性 些都不是开发人员仅仅通过调试就能发现的 这还不包括开发人员自己的疏忽 因此必须要通过我们的测试帮助开发人员找出这些错误 以免这些问题流传到用户那里 所以可以说测试就是软件质量的保证 我们的测试人员就是软件的 把关人 我们要把好软件质量的最后一关 软件测试与软件开发是互相促进的 软件开发能帮助软件测试提高测试水平 软件测试能帮助软件开发培养严谨的思维和质量意识 测试的重要性 续 软件测试基本概念 测试的重要性 什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则 软件测试基本概念 课程目录 软件生命周期 项目任务书 可行性研究 开发计划 需求分析 软件设计 程序编码 软件测试 软件运行 软件维护 软件停用 软件测试基本概念 软件生命周期 什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则 软件测试基本概念 课程目录 软件测试的工作职责 验证在整个软件开发周期中 各个阶段的软件质量是否合格 验证最终交付给用户的系统是否满足用户的需要 是否符合需求 通过样本测试数据 检查系统在运行过程中的情况 软件测试的活动范围 测试计划测试用例测试实施测试报告配置管理 软件测试基本概念 测试的职责 什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则 软件测试基本概念 课程目录 沟通能力移情能力技术能力自信心外交能力幽默感 很强的记忆力耐心怀疑精神自我督促洞察力责任感 人是测试工作中最有价值也是最重要的资源 没有一个合格的 积极的测试小组 测试就不可能实现 然而 在软件开发产业中有一种非常普遍习惯 那就是让那些经验最少的新手 没有效率的开发者或不适合干其他工作的人去做测试工作 这绝对是一种目光短浅的行为 对一个系统进行有效的测试所需要的技能绝对不比进行软件开发需要的少 事实上 测试者将获得极其广泛的经验 他们将遇到许多开发者不可能遇到的问题 总的说来 一个优秀的软件测试工程师应该具备以下素质 软件测试基本概念 测试工程师应该具备的素质 一名理想的测试者必须能够同测试涉及到的所有人进行沟通 具有与技术 开发者 和非技术人员 客户 管理人员 的交流能力 既要可以和用户谈得来 又能同开发人员说得上话 不幸的是这两类人没有共同语言 和用户谈话的重点必须放在系统可以正确地处理什么和不可以处理什么上 而和开发者谈相同的信息时 就必须将这些活重新组织以另一种方式表达出来 测试小组的成员必须能够同等地同用户和开发者沟通 软件测试基本概念 测试工程师应该具备的素质 沟通能力 和系统开发有关的所有人员都处在一种既关心又担心的状态之中 用户担心将来使用一个不符合自己要求的系统 开发者则担心由于系统要求不正确而使他不得不重新开发整个系统 管理部门则担心这个系统突然崩溃而使它的声誉受损 测试者必须和每一类人打交道 因此需要测试小组的成员对他们每个人都具有足够的理解和同情 具备了这种能力可以将测试人员与相关人员之间的冲突和对抗减少到最低程度 软件测试基本概念 测试工程师应该具备的素质 移情能力 就总体言 开发人员对那些不懂技术的人持一种轻视的态度 一旦测试小组的某个成员作出了一个错误的断定 那么他们的可信度就会立刻被传扬了出去 一个测试者必须既明白被测软件系统的概念又要会使用工程中的那些工具 要做到这一点需要有几年以上的编程经验 前期的开发经验可以帮助对软件开发过程有较深入的理解 从开发人员的角度正确的评价测试者 简化自动测试工具编程的学习曲线 软件测试基本概念 测试工程师应该具备的素质 技术能力 开发者指责测试者出了错是常有的事 测试者必须对自己的观点有足够的自信心 如果容许别人对自己指东指西 就不能完成什么更多的事情了 软件测试基本概念 测试工程师应该具备的素质 自信心 当你告诉某人他出了错时 就必须使用一些外交方法 机智老练和外交手法有助于维护与开发人员的协作关系 测试者在告诉开发者他的软件有错误时 也同样需要一定的外交手腕 如果采取的方法过于强硬 对测试者来说 在以后和开发部门的合作方面就相当于 赢了战争却输了战役 软件测试基本概念 测试工程师应该具备的素质 外交能力 在遇到狡辩的情况下 一个幽默的批评将是很有帮助的 软件测试基本概念 测试工程师应该具备的素质 幽默感 一个理想的测试者应该有能力将以前曾经遇到过的类似的错误从记忆深处挖掘出来 这一能力在测试过程中的价值是无法衡量的 因为许多新出现的问题和我们已经发现的问题相差无几 软件测试基本概念 测试工程师应该具备的素质 很强的记忆力 一些质量保证工作需要难以置信的耐心 有时你需要花费惊人的时间去分离 识别和分派一个错误 这个工作是那些坐不住的人无法完成的 软件测试基本概念 测试工程师应该具备的素质 耐心 可以预料 开发者会尽他们最大的努力将所有的错误解释过去 测式者必须听每个人的说明 但他必须保持怀疑直到他自己看过以后 软件测试基本概念 测试工程师应该具备的素质 怀疑精神 干测试工作很容易使你变得懒散 只有那些具有自我督促能力的人才能够使自己每天正常地工作 软件测试基本概念 测试工程师应该具备的素质 自我督促 一个好的测试工程师具有 测试是为了破坏 的观点 捕获用户观点的能力 强烈的质量追求 对细节的关注能力 应用的高风险区的判断能力以便将有限的测试针对重点环节 软件测试基本概念 测试工程师应该具备的素质 洞察力 软件测试作为软件开发环节的最后一关 起到质量 把关 的作用 如果测试人员没有很强的责任心 软件的质量不可能得到保证 软件测试基本概念 测试工程师应该具备的素质 责任感 什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则 软件测试基本概念 课程目录 在测试过程中 要遵循以下原则 尽量不要自己测试自己的代码 或者让其他开发人员测试自己的代码测试是为了证明程序有错 而不是证明程序无错误 一个成功的测试是发现了至今未发现的错误的测试任何测试都不是完全的 因此测试不可能发现所有的问题 而测试的目的是尽可能找出软件中所有的问题软件测试是基于用户需求 因此任何脱离用户需求的测试都是没有意义的每个软件的需求都不一样 因此每个测试活动都不可能完全一样 不要妄图把一套测试模式应用到每一次测试中 要具体情况具体分析 要把有限的资源用到最关键的地方 软件测试基本概念 测试的基本原则 软件测试人员在测试过程中一方面要站在技术人员的角度分析问题 另一方面又要站在普通用户的角度观察软件 即要学会换位思考软件测试人员并不仅仅是软件的 高级用户 他们要审视的对象是专业的开发人员 如果没有一定的技术基础 没有对软件更高层次的理解 是不可能扮演好软件 裁判员 的角色软件测试越早发现问题越好不能重现的错误不算错误 软件测试基本概念 测试的基本原则 第二讲软件测试 测试流程和方法SoftwareTestingmethodsandtechniques 软件开发系列 软件测试 在本章中 我们将学习 测试流程测试停止的标准测试方法 测试流程和方法 概览 完成此课程之后 学员将具备以下能力 了解测试的流程什么情况下才可以停止测试 测试停止的标准是什么 测试的方法有哪些 测试流程和方法 目标 测试流程测试停止的标准测试方法 测试流程和方法 课程目录 典型流程测试活动的开始时间 测试流程和方法 测试流程 测试流程测试停止的标准测试方法 测试流程和方法 课程目录 测试停止的标准测试停止的标准一般有五类标准 具体测试项目视情况进行选择 第一类标准 测试时间超过了预定期限 测试被强制性停止第二类标准 执行了所有的测试用例 但并没有发现故障第三类标准 使用特定的测试用例设计方案 作为判断测试停止的基础第四类标准 正面指出了停止测试的具体要求 即制定了停止测试的标准第五类标准 根据单位时间内查出故障的数量决定是否停止测试 测试流程和方法 测试停止的标准 按照这些标准的定义 我们制定以下各个阶段的测试停止的标准 1 软件测试停止标准软件系统经过单元 集成 系统测试 分别达到单元 集成 系统测试停止标准 软件系统通过验收测试 并已得出验收测试结论 软件项目需暂停以进行调整时 测试应随之暂停 并备份暂停点数据 软件项目在其开发生命周期内出现重大估算 进度偏差 需暂停或终止时 测试应随之暂停或终止 并备份暂停或终止点数据 测试流程和方法 测试停止的标准 2 单元测试停止标准单元测试用例设计已经通过评审 按照单元测试计划完成了所有规定单元的测试 达到了测试计划中关于单元测试所规定的覆盖率的要求 被测试的单元每千行代码发现错误数小于4个 软件单元功能与设计一致 在单元测试中发现的错误已经得到修改 各级缺陷修复率达到标准 3 集成测试停止标准集成测试用例设计已经通过评审 按照集成构件计划及增量集成策略完成了整个系统的集成测试 达到了测试计划中关于集成测试所规定的覆盖率的要求 被测试的集成工作版本每千行代码发现错误数小于2个 集成工作版本满足设计定义的各项功能 性能要求 在集成测试中发现的错误已经得到修改 各级缺陷修复率达到标准 测试流程和方法 测试停止的标准 4 系统测试停止标准系统测试用例设计已经通过评审 按照系统测试计划完成了系统测试 达到了测试计划中关于系统测试所规定的覆盖率的要求 被测试的系统每千行代码发现错误数小于1个 系统满足需求规格说明书的要求 在系统测试中发现的错误已经得到修改 各级缺陷修复率达到标准 5 缺陷修复率标准严重缺陷 较大缺陷的修复率应达到100 较小缺陷 轻微缺陷修复率应达到80 以上 其他缺陷修复率应达到60 以上 6 测试覆盖率语句覆盖率最低不能小于80 测试用例执行覆盖率应达到100 测试需求覆盖率应达到100 测试流程和方法 测试停止的标准 测试流程测试停止的标准测试方法 测试流程和方法 课程目录 静态测试与动态测试黑盒测试与白盒测试单元测试集成测试系统测试性能测试测试中的群体现象怎么做界面测试 怎么做边界测试 怎么做功能性测试 怎么测试系统的数据正确性 怎么使用WAS进行性能测试 软件的易用性应该考虑哪些因素 测试流程和方法 测试方法 1 静态测试与动态测试 1 静态测试静态测试是指在不运行软件系统的情形下 对软件的需求 设计和代码进行的评审和检查 测试的方法一般包括 需求评审设计评审代码走查 测试流程和方法 测试方法 静态测试与动态测试 2 动态测试动态测试是指部分或全部运行软件系统的情形下 对软件的接口 功能 性能等方面的测试 动态测试一般包含了用户与软件系统之间的交互过程 动态测试一般包括 单元测试集成测试系统测试验收测试 测试流程和方法 测试方法 静态测试与动态测试 2 黑盒测试与白盒测试 1 黑盒测试黑盒测试也称功能测试或数据驱动测试 它是在已知产品所应具有的功能 通过测试来检测每个功能是否都能正常使用 在测试时 把程序看作一个不能打开的黑盒子 在完全不考虑程序内部结构和内部特性的情况下 测试者在程序接口进行测试 它只检查程序功能是否按照需求规格说明书的规定正常使用 程序是否能适当地接收输入数锯而产生正确的输出信息 并且保持外部信息 如数据库或文件 的完整性 黑盒测试方法主要有等价类划分 边值分析 因 果图 错误推测等 主要用于软件确认测试 黑盒 法着眼于程序外部结构 不考虑内部逻辑结构 针对软件界面和软件功能进行测试 黑盒 法是穷举输入测试 只有把所有可能的输入都作为测试情况使用 才能以这种方法查出程序中所有的错误 实际上测试情况有无穷多个 人们不仅要测试所有合法的输入 而且还要对那些不合法但是可能的输入进行测试 测试流程和方法 测试方法 黑盒测试与白盒测试 2 白盒测试白盒测试也称结构测试或逻辑驱动测试 它是知道产品内部工作过程 可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行 按照程序内部的结构测试程序 检验程序中的每条通路是否都有能按预定要求正确工作 而不顾它的功能 白盒测试的主要方法有逻辑驱动 基路测试等 主要用于软件验证 白盒 法全面了解程序内部逻辑结构 对所有逻辑路径进行测试 白盒 法是穷举路径测试 在使用这一方案时 测试者必须检查程序的内部结构 从检查程序的逻辑着手 得出测试数据 贯穿程序的独立路径数是天文数字 但即使每条路径都测试了仍然可能有错误 第一 穷举路径测试决不能查出程序违反了设计规范 即程序本身是个错误的程序 第二 穷举路径测试不可能查出程序中因遗漏路径而出错 第三 穷举路径测试可能发现不了一些与数据相关的错误 测试流程和方法 测试方法 黑盒测试与白盒测试 3 单元测试单元测试的对象是软件设计的最小单位 模块 单元测试的依据是详细设计描述 单元测试应对模块内所有重要的控制路径设计测试用例 以便发现模块内部的错误 单元测试多采用白盒测试技术 系统内多个模块可以并行地进行测试 一般认为单元测试应紧接在编码之后 当源程序编制完成并通过复审和编译检查 便可开始单元测试 测试用例的设计应与复审工作相结合 根据设计信息选取测试数据 将增大发现上述各类错误的可能性 在确定测试用例的同时 应给出期望结果 应为测试模块开发一个驱动模块 driver 和 或 若干个桩模块 stub 驱动模块在大多数场合称为 主程序 它接收测试数据并将这些数据传递到被测试模块 被测试模块被调用后 主程序 打印 进入 退出 消息 驱动模块和桩模块是测试使用的软件 而不是软件产品的组成部分 但它需要一定的开发费用 若驱动和桩模块比较简单 实际开销相对低些 遗憾的是 仅用简单的驱动模块和桩模块不能完成某些模块的测试任务 提高模块的内聚度可简化单元测试 如果每个模块只能完成一个 所需测试用例数目将显著减少 模块中的错误也更容易发现 测试流程和方法 测试方法 单元测试 单元测试一般完成以下任务 模块接口测试模块接口测试是单元测试的基础 只有在数据能正确流入 流出模块的前提下 其他测试才有意义 测试接口正确与否应该考虑下列因素 1 输入的实际参数与形式参数的个数是否相同 2 输入的实际参数与形式参数的属性是否匹配 3 入的实际参数与形式参数的量纲是否一致 4 调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同 5 调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配 6 用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致 7 调用预定义函数时所用参数的个数 属性和次序是否正确 8 是否存在与当前入口点无关的参数引用 9 是否修改了只读型参数 10 对全程变量的定义各模块是否一致 11 是否把某些约束作为参数传递 测试流程和方法 测试方法 单元测试 如果模块内包括外部输入输出 还应该考虑下列因素 1 文件属性是否正确 2 OPEN CLOSE语句是否正确 3 格式说明与输入输出语句是否匹配 4 缓冲区大小与记录长度是否匹配 5 文件使用前是否已经打开 6 是否处理了文件尾 7 是否处理了输入 输出错误 8 输出信息中是否有文字性错误 模块局部数据结构测试检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整 正确 局部数据结构往往是错误的根源 应仔细设计测试用例 力求发现下面几类错误 1 不合适或不相容的类型说明 2 变量无初值 3 变量初始化或省缺值有错 4 不正确的变量名 拼错或不正确地截断 5 出现上溢 下溢和地址异常 除了局部数据结构外 如果可能 单元测试时还应该查清全局数据 例如FORTRAN的公用区 对模块的影响 测试流程和方法 测试方法 单元测试 模块中所有独立执行通路测试在模块中应对每一条独立执行路径进行测试 单元测试的基本任务是保证模块中每条语句至少执行一次 此时设计测试用例是为了发现因错误计算 不正确的比较和不适当的控制流造成的错误 此时基本路径测试和循环测试是最常用且最有效的测试技术 计算中常见的错误包括 1 误解或用错了算符优先级 2 混合类型运算 3 变量初值错 4 精度不够 5 表达式符号错 比较判断与控制流常常紧密相关 测试用例还应致力于发现下列错误 1 不同数据类型的对象之间进行比较 2 错误地使用逻辑运算符或优先级 3 因计算机表示的局限性 期望理论上相等而实际上不相等的两个量相等 4 比较运算或变量出错 5 循环终止条件或不可能出现 6 迭代发散时不能退出 7 错误地修改了循环变量 测试流程和方法 测试方法 单元测试 一个好的设计应能预见各种出错条件 并预设各种出错处理通路 出错处理通路同样需要认真测试 测试应着重检查下列问题 1 输出的出错信息难以理解 2 记录的错误与实际遇到的错误不相符 3 在程序自定义的出错处理段运行之前 系统已介入 4 异常处理不当 5 错误陈述中未能提供足够的定位出错信息 模块边界条件测试边界条件测试是单元测试中最后 也是最重要的一项任务 众所周知 软件经常在边界上失效 采用边界值分析技术 针对边界值及其左 右设计测试用例 很有可能发现新的错误 测试流程和方法 测试方法 单元测试 4 集成测试集成测试也称组装测试 主要查找模块之间接口的错误 集成测试一般采用渐增式集成 集成的方式有 自顶向下自底向上自顶向下与自底向上相结合 测试流程和方法 测试方法 集成测试 5 系统测试软件的系统测试是指软件通过集成测试后 已经组装成了一个完整的软件系统 在此基础上执行的功能性 性能 易用性 一致性 可移植性和可维护性等方面的全面的测试 测试流程和方法 测试方法 系统测试 6 性能测试 1 性能测试概述一般一个软件系统的性能的高低 可以从以下三个方面得到验证 a 软件系统能否长时间不间断稳定的工作b 当有大用户量并发访问系统时 用户的响应时间是否在一个比较合理的范围c 如果软件系统产生了大数据量的业务数据 查询数据的速度会不会异常缓慢因此我们的测试方法也必须从这三方面考虑 通常从 时间 和 数据量 两个方面来测试是比较容易做到的 而要模拟出 大用户量 则必须借助自动化测试工具 性能测试的目的是找出软件系统的性能瓶颈 从而以最小的代价 有针对性的修改软件或更换硬件设备 提高软件系统的性能 测试流程和方法 测试方法 性能测试 2 性能数据指标在性能测试过程中 测试工具通过部署一整套性能监视器 来收集和显示各个架构层次 服务器和组件上的性能数据 包括网络 操作系统 应用服务器 中间件 应用程序 NET服务器 Web服务器和数据库服务器 在进行性能测试时 这些数据用来精确测量系统各个方面的性能 从而用户可以快速 简便地定位问题和瓶颈的来源 最终 这些数据用来生成各种文档和图表 并判断出应用程序的性能是否满足业务的需要 测试流程和方法 测试方法 性能测试 测试流程和方法 使用静态和动态测试来进行结构和功能测试 群体现象的产生利用群体现象测试 测试流程和方法 测试中的群体现象 第三讲软件测试 测试模型SoftwareTestingmethodsandtechniques 软件开发系列 软件测试 在本章中 我们将学习 测试模型测试流程 测试模型 概览 完成此课程之后 学员将具备以下能力 了解测试模型的含义 测试模型有哪些 了解测试的流程 测试模型 目标 测试模型测试流程 测试模型 课程目录 功能性 易用性 效率 可靠性 可移植性 可维护性 测试模型 软件测试 测试模型 测试模型 功能性 在指定条件下 产品满足明确和隐含要求功能的能力适应性 软件为指定的任务和用户目标提供合适功能的能力 准确性 软件提供所需精确度的正确或相符结果及效果的能力 互操作性 互用性 产品与一个或多个系统进行交互的能力 保密安全性 保护信息和数据的能力 功能依从性 软件依从同功能性相关的标准 约定或法规的能力 软件测试 测试模型 测试模型 功能性 功能测试正常的流程与异常的流程正面的用例与反面的用例输入数据的数据类型和长度边界值的防范数据的准确性 软件测试 测试模型 测试模型 功能测试 易用性 在指定条件下 产品被理解 学习 使用和吸引用户的能力易理解性 完成特定任务的功能明显性和适用性 易学性 软件使用户能学习它的应用的能力 易操作性 产品使用户能操作和控制它的能力 吸引性 软件产品吸引用户的能力 易用性依从性 软件依从同易用性相关的标准 约定或法规的能力 软件测试 测试模型 测试模型 易用性 易用性测试是否符合日常习惯提示性信息是否准确是否提供了很多帮助信息 用以指导用户更好的使用软件系统软件的操作流程是否设置得很清晰 操作过程很简洁用户使用最频繁的选项是否设置了默认值 用户使用最多的功能是否放在最显眼的地方 软件测试 测试模型 测试模型 易用性测试 效率 在指定条件下 相对于所用资源数量 软件产品提供适当性能的能力时间特性 在规定条件下 软件产品执行其功能时 提供适当的响应和处理时间以及吞吐量的能力 资源特性 在规定条件下 软件产品执行其功能时 使用合适的数量和类型的资源的能力 效率依从性 软件依从同效率相关的标准 约定或法规的能力 软件测试 测试模型 测试模型 效率 效率安全性 防止信息泄露和恶意破坏 稳定性 长时间不间断运行 健壮性 多用户同时访问 效率 大数据量查询 软件测试 测试模型 测试模型 效率 可靠性 在指定条件下 产品维持规定的性能级别的能力成熟性 软件为避免由软件中错误而导致失效的能力 容错性 软件失效或在违反规定的接口情况下 软件产品维护规定的性能级别的能力 易恢复性 发生故障情况下 软件重建规定的性能级别并恢复受直接影响的数据的能力 可靠性依从性 软件产品依附于同可靠性相关的标准 约定或法规的能力 软件测试 测试模型 测试模型 可靠性 可移植性 软件产品从一种环境迁移到另一种环境的能力适应性 软件无需采用手段就可适应不同的指定环境的能力 易安装性 软件在指定环境中被安装的能力 共存性性 软件在公共环境中分享资源与其它独立软件共存的能力 易替换性 在环境 目标相同的情况下替代另一个指定软件的能力 可移植依从性 软件依从同可移植性相关的标准 约定或法规的能力 软件测试 测试模型 测试模型 可移植性 可移植性是否能比较容易移植到其他数据库平台下面 而不需要修改代码或者极少量修改代码是否能比较容易移植到其他操作系统平台下面 而不需要修改代码或者极少量修改代码是否可以使用不同的浏览器访问WEB软件系统 软件测试 测试模型 测试模型 可移植性 可维护性 软件产品可被修改的能力 包括修正 改进或软件适应环境 需求和功能规格说明的变化 易分析性 软件诊断缺陷或失效原因以及判定修改部分的功能的能力 易改变性 软件产品使指定的修改可以被实现的能力 可维护依从性 软件依从同维护性相关的标准 约定或法规的能力 软件测试 测试模型 测试模型 可维护性 可维护性代码是否易读 代码遵循了一定的编码规范 关键点都进行了注释性说明 代码的重用度是否很高 修改一个错误不需要修改大量的文件 软件的设计是否具有前瞻性 需求变更或增加新的需求时 不需要变更设计框架 软件测试 测试模型 测试模型 可维护性 测试模型测试流程 测试模型 课程目录 软件测试 测试模型 测试模型 测试流程 第四讲软件测试 测试文档SoftwareTestingmethodsandtechniques 软件开发系列 软件测试 在本章中 我们将学习 测试计划测试用例测试期间数据的收集测试报告 测试文档 概览 完成此课程之后 学员将具备以下能力 测试计划怎么做 包含的内容有哪些 测试用例怎么做 测试报告怎么做 测试文档 目标 测试计划测试用例测试期间数据的收集测试报告 测试文档 课程目录 测试计划必须包含的内容 目的 明确每阶段测试的目的测试策略 用于测试的方法资源配置 测试所需的硬件设备和测试人员配备明确任务 所以参加测试工作的人员角色和职责进度安排 每一测试阶段的进度安排风险 指明项目中潜在的问题和风险区域停止测试的标准 判断每测试阶段停止测试的标准测试用例编写要求 决定选用测试用例的编写方法 保存 使用和维护测试用例的策略记录手段 明确测试当中对问题 进度等记录的方法测试工具 明确测试所需的工具并制定相应计划测试计划模板 测试文档 测试计划 测试计划测试用例测试期间数据的收集测试报告 测试文档 课程目录 测试用例是由一组测试数据和与之对应的预期结果组成的 是为了验证软件的某个功能在输入该测试数据的时候产生的实际输出结果是否与我们理论的预期结果相对应 测试用例应包括合理的输入条件和不合理的输入条件一个测试用例只对应一个测试结果 测试文档 测试用例 有关测试结果的积累数据测试任务 测试集合和测试事件的描述缺陷分析由于计划的问题 导致没有发现的缺陷的数据严重的缺陷缺陷类型为什么缺陷没有发现效果 测试文档 测试期间数据的收集 测试计划测试用例测试期间数据的收集测试报告 测试文档 课程目录 软件基本情况描述测试范围描述测试依据测试结果描述测试是否通过的结论 测试文档 测试报告 目标表示出目前项目的实际状况明确什么是测试做的工作 什么是不作的工作 给出系统的操作性能的评价明确什么时候系统可以进行产品化的工作关注点测试报告只有真正需要的时候才有用 需要配合市场和管理测试的信息是不充分的 对于评价一个项目来说 测试状况并不能真实的反应个人的状况 测试文档 测试报告 报告目前的软件状态功能 测试矩阵功能测试的状态报告 侧重点分析关于功能的工作时间轴期望发现VS实际发现的缺陷比没有发现的缺陷和改正的缺陷的差距按照类型分类 没有改正的缺陷的平均值缺陷分类报告测试活动报告 测试文档 测试报告 各个阶段的项目测试总结报告继承性测试报告系统测试报告确认测试报告 测试文档 最终的报告汇总 报告目前的软件状态功能 测试矩阵功能测试的状态报告 侧重点分析关于功能的工作时间轴期望发现VS实际发现的缺陷比没有发现的缺陷和改正的缺陷的差距按照类型分类 没有改正的缺陷的平均值缺陷分类报告测试活动报告给出系统的操作性能的评价明确什么时候系统可以进行产品化的工作 测试文档 测试分析报告 第五讲软件测试 功能测试SoftwareTestingmethodsandtechniques 软件开发系列 软件测试 在本章中 我们将学习 功能性测试概述测试方法功能分解等价类划分边界值分析因果图法其他测试法 功能测试 概览 完成此课程之后 学员将具备以下能力 理解功能性测试的含义使用等价类划分的方法设计测试用例使用边界值分析的方法设计测试用例对具体项目进行功能测试 功能测试 目标 功能性测试概述测试方法功能分解等价类划分边界值分析因果图法其他测试方法 功能测试 课程目录 功能测试就是对产品的各功能进行验证 根据功能测试用例 逐项测试 检查产品是否达到用户要求的功能 任何程序都可以看作是将从输入定义域取值映射到输出值域的函数将系统看成黒盒 又称为黒盒测试黒盒的实现是不需要了解的 只需要知道输入和预期输出 功能测试 概述 正常的流程与异常的流程正面的用例与反面的用例输入数据的数据类型和长度边界值的防范数据的准确性 功能测试 概述 输入 输出 黒盒 内部实现不可见 功能测试 功能性测试模型 功能性测试与软件如何实现无关 如果实现发生变化 功能性测试用例仍然可用测试用例开发可以与软件开发同时进行 可节省软件开发时间 通过软件的用例 usecase 就可以设计出大部分功能性测试用例 功能测试 功能性测试的优点 测试用例数量较大测试用例可能产生很多冗余功能性测试的覆盖范围不可能达到100 功能测试 功能性测试的缺点 功能性测试概述测试方法功能分解等价类划分边界值分析因果图法其他测试方法 功能测试 课程目录 针对Web系统的常用测试方法如下 1 页面链接检查 每一个链接是否都有对应的页面 并且页面之间切换正确 可以使用一些工具 如LinkBotPro File AIDCS HTMLLinkValidater Xenu等工具 LinkBotPro不支持中文 中文字符显示为乱码 HTMLLinkValidater只能测试以Html或者htm结尾的网页链接 Xenu无需安装 支持asp do jsp等结尾的网页 xenu测试链接包括内部链接和外部链接 在使用的时候应该注意 同时能够生成html格式的测试报告 如果系统用QTP进行自动化测试 也可以使用QTP的页面检查点检查链接 2 相关性检查 功能相关性 删除 增加一项会不会对其他项产生影响 如果产生影响 这些影响是否都正确 常见的情况是 增加某个数据记录以后 如果该数据记录某个字段内容较长 可能会在查询的时候让数据列表变形 数据相关性 下拉列表默认值检查 下拉列表值检查 如果某个列表的数据项依赖于其他模块中的数据 同样需要检查 比如 某个数据如果被禁用了 可能在引用该数据项的列表中不可见 功能测试 测试方法 3 检查按钮的功能是否正确 如新建 编辑 删除 关闭 返回 保存 导入 上一页 下一页 页面跳转 重置等功能是否正确 常见的错误会出现在重置按钮上 表现为功能失效 4 字符串长度检查 输入超出需求所说明的字符串长度的内容 看系统是否检查字符串长度 还要检查需求规定的字符串长度是否是正确的 有时候会出现 需求规定的字符串长度太短而无法输入业务数据 5 字符类型检查 在应该输入指定类型的内容的地方输入其他类型的内容 如在应该输入整型的地方输入其他字符类型 看系统是否检查字符类型 6 标点符号检查 输入内容包括各种标点符号 特别是空格 各种引号 回车键 看系统处理是否正确 常见的错误是系统对空格的处理 可能添加的时候 将空格当作一个字符 而在查询的时候空格被屏蔽 导致无法查询到添加的内容 功能测试 测试方法 7 特殊字符检查 输入特殊符号 如 等 看系统处理是否正确 常见的错误是出现在 这几个特殊字符8 中文字符处理 在可以输入中 英文的系统输入中文 看会否出现乱码或出错 9 检查信息的完整性 在查看信息和更新信息时 查看所填写的信息是不是全部更新 更新信息和添加信息是否一致 要注意检查的时候每个字段都应该检查 有时候 会出现部分字段更新了而个别字段没有更新的情况 10 信息重复 在一些需要命名 且名字应该唯一的信息输入重复的名字或ID 看系统有没有处理 会否报错 重名包括是否区分大小写 以及在输入内容的前后输入空格 系统是否作出正确处理 功能测试 测试方法 11 检查删除功能 在一些可以一次删除多个信息的地方 不选择任何信息 按 delete 看系统如何处理 会否出错 然后选择一个和多个信息 进行删除 看是否正确处理 如果有多页 翻页选 看系统是否都正确删除 并且要注意 删除的时候是否有提示 让用户能够更正错误 不误删除 12 检查添加和修改是否一致 检查添加和修改信息的要求是否一致 例如添加要求必填的项 修改也应该必填 添加规定为整型的项 修改也必须为整型 13 检查修改重名 修改时把不能重名的项改为已存在的内容 看是否会处理 报错 同时 也要注意 会不会报和自己重名的错 14 重复提交表单 一条已经成功提交的纪录 返回后再提交 看看系统是否做了处理 对于Web系统来说 可以通过浏览器返回键或者系统提供的返回功能 功能测试 测试方法 15 检查多次使用返回键的情况 在有返回键的地方 返回到原来页面 重复多次 看是否会出错 16 搜索检查 有搜索功能的地方输入系统存在和不存在的内容 看搜索结果是否正确 如果可以输入多个搜索条件 可以同时添加合理和不合理的条件 看系统处理是否正确 搜索的时候同样要注意特殊字符 某些系统会在输入特殊字符的时候 将系统中所有的信息都搜索到 17 输入信息位置 注意在光标停留的地方输入信息时 光标和所输入的信息会否跳到别的地方 18 上传下载文件检查 上传下载文件的功能是否实现 上传文件是否能打开 对上传文件的格式有何规定 系统是否有解释信息 并检查系统是否能够做到 下载文件能否打开或者保存 下载的文件是否有格式要求 如需要特殊工具才可以打开等 上传文件测试同时应该测试 如果将不能上传的文件后缀名修改为可以上传文件的后缀名 看是否能够上传成功 并且 上传文件后 重新修改 看上传的文件是否存在 功能测试 测试方法 19 必填项检查 应该填写的项没有填写时系统是否都做了处理 对必填项是否有提示信息 如在必填项前加 对必填项提示返回后 焦点是否会自动定位到必填项 20 快捷键检查 是否支持常用快捷键 如Ctrl C Ctrl V Backspace等 对一些不允许输入信息的字段 如选人 选日期对快捷方式是否也做了限制 21 回车键检查 在输入结束后直接按回车键 看系统处理如何 会否报错 这个地方很有可能会出现错误 22 刷新键检查 在Web系统中 使用浏览器的刷新键 看系统处理如何 会否报错 23 回退键检查 在Web系统中 使用浏览器的回退键 看系统处理如何 会否报错 对于需要用户验证的系统 在退出登录后 使用回退键 看系统处理如何 多次使用回退键 多次使用前进键 看系统如何处理 功能测试 测试方法 24 直接URL链接检查 在Web系统中 直接输入各功能页面的URL地址 看系统如何处理 对于需要用户验证的系统更为重要 如果系统安全性设计的不好 直接输入各功能页面的URL地址 很有可能会正常打开页面 25 空格检查 在输入信息项中 输入一个或连串空格 查看系统如何处理 如对于要求输入整型 符点型变量的项中 输入空格 既不是空值 又不是标准输入 26 输入法半角全角检查 在输入信息项中 输入半角或全角的信息 查看系统如何处理 如对于要求输入符点型数据的项中 输入全角的小数点 或 如 输入全角的空格等 27 密码检查 一些系统的加密方法采用对字符Ascii码移位的方式 处理密码加密相对较为简单 且安全性较高 对于局域网系统来说 此种方式完全可以起到加密的作用 但同时 会造成一些问题 即大于128的Ascii对应的字符在解密时无法解析 尝试使用 uvwxyz 等一些码值较大的字符作为密码 同时 密码尽可能的长 如17位密码等 造成加密后的密码出现无法解析的字符 功能测试 测试方法 28 用户检查 任何一个系统 都有各类不同的用户 同样具有一个或多个管理员用户 检查各个管理员之间是否可以相互管理 编辑 删除管理员用户 同时 对于一般用户 尝试删除 并重建同名的用户 检查该用户其它信息是否重现 同样 提供注销功能的系统 此用户再次注册时 是否作为一个新的用户 而且还要检查该用户的有效日期 过了有效日期的用户是不能登录系统的 容易出现错误的情况是 可能有用户管理权限的非超级管理员 能够修改超级管理员的权限 29 系统数据检查 这是功能测试最重要的 如果系统数据计算不正确 那么功能测试肯定是通不过的 数据检查根据不同的系统 方法不同 对于业务管理平台 数据随业务过程 状态的变化保持正确 不能因为某个过程出现垃圾数据 也不能因为某个过程而丢失数据 30 系统可恢复性检查 以各种方式把系统搞瘫 测试系统是否可正常迅速恢复 功能测试 测试方法 31 确认提示检查 系统中的更新 删除操作 是否提示用户确认更新或删除 操作是否可以回退 即是否可以选择取消操作 提示信息是否准确 事前或事后提示 对于Update或Delete操作 要求进行事前提示 32 数据注入检查 数据注入主要是对数据库的注入 通过输入一些特殊的字符 如 等或字符组合 完成对SQL语句的破坏 造成系统查询 插入 删除操作的SQL因为这些字符而改变原来的意图 如select fromtablewhereid andname 通过在id输入框中输入 12 会造成查询语句把name条件注释掉 而只查询id 12的记录 同样 对于update和delete的操作 可能会造成误删除数据 当然还有其它一些SQL注入方法 具体可以参考 SQL应用高级SQL注入 doc 很多程序都是基于页面对输入字符进行控制的 可以尝试跳过界面直接向数据库中插入数据 比如用Jmeter 来完成数据注入检查 功能测试 测试方法 33 刷新检查 web系统中的WebForm控件实时刷新功能 在系统应用中有利有弊 给系统的性能带来较大的影响 测试过程中检测刷新功能对系统或应用造成的影响 白屏 检查控件是否回归默认初始值 检查是否对系统的性能产生较大影响 如每次刷新都连接数据库查询等 34 事务检查 对于事务性操作 断开网络或关闭程序来中断操作 事务是否回滚 35 时间日期检查 时间 日期验证是每个系统都必须的 如2006 2 29 2006 6 31等错误日期 同时 对于管理 财务类系统 每年的1月与前一年的12月 同理 每年的第1季度与前一年的第4季度 另外 对于日期 时间格式的验证 如2006年2月28日 2006 2 28 20060228等 日期检查还要检查日期范围是否符合实际的业务 对于不符合时间业务的日期 系统是否会有提示或者有限制 功能测试 测试方法 36 多浏览器验证 越来越多的各类浏览器的出现 用户访问Web程序不再单单依赖于MicrosoftInternetExplorer 而是有了更多的选择 Maxthon Firefox TencentTraveler等 考虑使用多种浏览器访问系统 验证效果 37 安装测试 对于C S架构的系统 安装程序的测试是一个重要方面 安装程序自动化程度 安装选项和设置 验证各种方案是否都能正常安装 安装过程中断测试 安装顺序测试 分布式系统 修复安装及卸载测试 38 文档测试 主要是对用户使用手册 产品手册进行测试 校验是否描述正确 完整 是否与当前系统版本对照 是否易理解 是否二义性等 39 测试数据检查 事实告诉我们 测试数据比代码更有可能是错的 因此 当测试结果显示有错误发生的时候 怀疑代码错误前要先对测试数据检查一遍 功能测试 测试方法 40 请让我的机器来运行 在某些项目中 出现一个病态的问题 系统没有问题呀 它在我的机器上是能够通过的 这就说明了其中存在着和环境相关的BUG 是否所有的一切都受到了版本控制工具的管理 本机的开发环境和服务器的环境是否一样 这里是否存在一个真正的BUG 只不过是在其他的机器里偶然出现 所有的测试必须在所有系统要求的机器上运行通过 否则的话 代码就可能存在问题 41 Ajax技术的应用 Ajax有很多优点 但也有很多缺点 如果利用优点 避免缺点 是我们对新的Web2 0应用的一个挑战 而Ajax的应用最直接的问题就是用户体验 用户体验的效果直接关系到是否使用Ajax技术 会做 并不意味着应该做 必须做 这就是对Ajax技术的很重要的注解 功能测试 测试方法 42 Ajax技术的应用 Ajax采用异步调用的机制实现页面的部分刷新功能 异步调用存在异常中断的可能 尝试各种方法异常中断异步的数据调用 查看是否出现问题 在这里遇到的一个问题就是对日期控件的操作 已经如果页面数据较多的时候的刷新 43 脚本错误 随着Ajax IFrame等异步调用技术的发展 Javascr pt技术也越来越受到开发人员的重视 但Javascr pt存在调试困难 各浏览器存在可能不兼容等问题 因此在Web系统中 可能会出现脚本错误 同时 脚本错误造成的后果可大 可小 不能忽视 功能测试 测试方法 翻页功能我们常碰到的一般有以下几个功能 1 首页 上一页 下一页 尾页 2 总页数 当前页数3 指定跳转页4 指定每页显示条数当然 有一些是少于多少页 全部以数字的形式显示 多于多少页后 才出现下一页的控件 本文暂且用以上四点来做为通用的用例来设计吧 对于1翻页链接或按钮的测试 主要要检查的测试点有 1 有无数据时控件的显示情况2 在首页时 首页和上一页是否能点击3 在尾页时 下一页和尾页是否能点击4 在非首页和非尾页时 四个按钮功能是否正确5 翻页后 列表中的记录是否仍按照指定的排序列进行了排序 功能测试 测试方法 对于2总页数 当前页数 主要要检查的测试点有 1 总页数是否等于总的记录数 指定每页条数2 当前页数是否正确对于3指定跳转页 主要要检查的测试点有 1 是否能正常跳转到指定的页数2 输入的跳转页数非法时的处理对于4指定每页显示条数 主要要检查的测试点有 1 是否有默认的指定每页显示条数2 指定每页的条数后 列表显示的记录数 页数是否正确3 输入的每页条数非法时的处理 功能测试 测试方法 分析完上面的测试点 应该可以进行用例的设计了 step1 列表无记录expect 1 四个翻页控件变灰不可点击2 列表有相应的无数据信息提示3 不可指定页数4 不可指定跳转页5 总页数显示为06 当前页数显示为0step2 列表的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有关涉外劳务合同及注意事项5篇
- 作品出版的合同范文5篇
- 甘美兰课件教学课件
- 建筑工程合同样式5篇
- 单位集资房房屋转让协议转让合同7篇
- 工程预付款协议书7篇
- 父亲歌词课件
- 跨渭惠渠连续梁施工方案
- 爱爱医课件教学课件
- 诗句填空课件
- 2025年云南教育心理真题及答案
- 氧气坏了应急预案
- 侵权法考试题及答案
- 2025至2030中国光纤涂料行业发展趋势分析与未来投资战略咨询研究报告
- 名著阅读《朝花夕拾 狗猫鼠》课件-部编版语文七年级上册
- 教师粉笔字训练课件
- 园林绿化工国家职业技能标准(2022年版)
- YYT 1244-2014 体外诊断试剂用纯化水
- Q∕SY 1802-2015 石油炼制与化工装置工艺设计包编制规范
- 微生物论文---自来水中细菌总数的测定
- 现代电池技术:第5章 镉-镍电池
评论
0/150
提交评论