1、软件测试基础软件测试基础陈大卫2022年3月5日1. 软件测试的目的和价值软件测试的目的和价值2. 对软件测试的理解对软件测试的理解3. 软件测试的原则软件测试的原则4. 软件测试内容和类型软件测试内容和类型5. 软件测试人员职责软件测试人员职责6. 软件测试人员要求软件测试人员要求1.软件测试的价值软件测试的价值 防止质量灾难的发生 确保软件满足用户的需求(功能性,非功能性) 确保软件符合质量标准(国家,行业,企业) 证程序的正确性除非仅处理有限种情况。(实实际上是不可能的际上是不可能的) 发现程序错误(BUG)直接目标。 检查软件(系统)是否满足需求期望目标。Glen Myers提出关于测
2、试目标的规则:提出关于测试目标的规则: 测试是一个为了寻找错误而运行程序的过程。 一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。 一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。使用人工或自动手段来进行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。“软件测试以检验是否满足需求为目标”。对测试的正确理解对测试的正确理解: 贯穿在整个开发各阶段的复查、评估与检验活动,远远超出了程序测试的范围,可以统称为确认、验证与测试活动(V,V&TValidation, Verification and Testing广义上的测试)。 从心理上
3、讲,软件测试可以看成是摧毁性的而不是建设性的。 软件测试是软件开发的一部分。对测试工作的误解:对测试工作的误解:l认为测试工作不如设计和编码那样具有开拓性,也不容易看到进展。l以发现软件错误为目标的测试是非建设性的,甚至是破坏性的。l测试工作枯燥无味,不能引起人的兴趣。l测试的目的是在于证实程序的正确性,测试是为了说明程序是没有问题的。测试的心理问题:测试的心理问题: 测试涉及到:测试人员、开发人员、设计人员、管理人员、用户和项目组其他人员。 不同人的心理,关注的焦点不同。 不同人之间的交流和沟通中的重要障碍,站在他人的角度,换位思考。测试必须是有计划、有准备的,包括任务、时间、人员、设备、经
4、费、方法与工具、问题等。所有的测试都应追溯到用户需求。应当尽早地和不断地进行软件测试。软件测试充分注意测试中的群集现象。总假定程序是有错误的。穷举测试是不可能的。彻底检查每一个测试结果。 为了达到最佳效果,应该由独立的第三方来构造测试,程序员应避免检查自己的程序。 严格执行测试计划,排除测试的随意性。 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。 应当对每一个测试结果做全面检查。 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。 “好好”的测试的一些属性:的测试的一些属性:l一个好的测试发现错误的可能性很高。l一个好的测试并不冗余。l一个好的测试应该是“最佳
5、品种”。l一个好的测试既不会太简单、也不会太复杂。4.软件测试内容和类型软件测试内容和类型按照测试阶段划分 单元测试 集成测试 确认测试 系统测试 按照测试技术划分4.1静态测试和动态测试静态测试静态测试:针对测试不运行的部分的检查和审阅动态测试动态测试:是指通常意义上的测试运行和使用软件 汽车:汽车: 打开前盖是静态测试打开前盖是静态测试 上路行驶是动态测试上路行驶是动态测试静态测试静态测试包括以下内容:1 1、 代码审查(包括代码评审和走查)。代码审查(包括代码评审和走查)。检查代码和设计的一致性;检查代码的标准性、可读性;检查代码逻辑表达的正确性和完整性;检查代码结构的合理性等。2 2、
6、 静态分析。静态分析。主要对程序进行控制流分析、数据流分析、接口分析和表达式分析等。静态分析功能的软件测试工具有较多,如Purify等。3 3、 文档检查。文档检查。动态测试动态测试包括:功能测试(黑盒、非分析方法):等价类、因果图、边界、强度等结构测试(白盒、分析方法):语句测试、分支测试、条件测试、路径测试等。实际测试工作中的大部分测试形态都属于动态测试 4.2 黑盒测试和白盒测试黑盒测试黑盒测试:已知产品的用户需求规格,可以通过测试证明整个软件系统是否符合用户的最终需求白盒测试白盒测试:已知产品的详细设计过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经通过检查
7、。黑盒测试- 测试员知道软件做了什么,但不知道软件如何运行,为什么会这样白盒测试- 测试员可以访问程序代码,通过检查代码来协助测试 能够看到盒子(软件)里面的结构.黑盒测试VS白盒测试 黑黑 盒盒 测测 试试 白白 盒盒 测测 试试 测测 试试 依依 据据 根 据 用 户 能 看 到 的 规 格 说 明 , 即 针对 命 令 、 信 息 、 报 表 等 用 户 界 面 及体 现 它 们 的 输 入 数 据 与 输 出 数 据 之间 的 对 应 关 系 , 特 别 是 针 对 功 能 进行 测 试 。 根 据 程 序 的 内 部 结 构 ,比 如 语 句 的 控 制 结构 ,模 块 间 的 控
8、制 结 构 以 及 内 部 数 据 结 构等 进 行 测 试 。 优优点点 能 站 在 用 户 立 场 上 进 行 测 试 。 能 够 对 程 序 内 部 的 特 定 部 位 进 行 覆 盖 测试 。 特特点点 缺缺点点 不 能 测 试 程 序 内 部 特 定 部 位 。 如 果 规 格 说 明 有 误 , 则 无 法 发现 。 无 法 检 验 程 序 的 外 部 特 性 。 无 法 对 未 实 现 规 格 说 明 的 程 序 内 部欠 缺 部 分 进 行 测 试 。 方方 法法 举举 例例 等 价 类 划 分 边 值 分 析 因 果 图 语 句 覆 盖 判 定 覆 盖 条 件 覆 盖 判 定
9、 /条 件 覆 盖 路 径 覆 盖 模 块 接 口 测 试 黑盒测试技术 等价类划分 数据测试(边值分析,特殊数据分析) 状态测试(因果图) 正交实验设计法 4.3其他测试技术其他测试技术 配置测试 兼容性测试 本地化测试 易用性测试 网站测试 文档测试 性能测试 强度测试 5.测试人员的职责测试人员的职责 参与评审(包括需求,设计,代码,测试说明等等,有课程介绍同行评审) 测试计划 测试设计与开发 测试实施 测试总结与评估测试计划测试计划 分析测试需求 估计测试工作量 确定测试资源 确定测试活动 生成项目测试计划测试设计与开发测试设计与开发 需求分析 设计测试策略 测试用例的设计与实现 建立
10、测试开发环境,录制和回放测试过程。测试执行测试执行 建立测试环境与系统 生成阶段测试计划 执行测试用例 BUG交流与跟踪 修改、补充测试说明 生成阶段测试报告或测试报告测试总结与评估测试总结与评估 各种形式的总结 生成测试总结报告 测试评估测试计划完成情况;测试质量评估;测试管理评估。6. 测试人员的要求测试人员的要求 技术素质 非技术素质技术素质技术素质 测试技术 项目开发技术 行业知识 软件工程能力需求分析、概要设计非技术素质非技术素质 沟通能力 自信心 幽默感 超强的记忆力 足够的耐心 怀疑精神 自我监督 洞察力测试人员的发展之路测试人员的发展之路 测试执行(敏锐,逆向思维,洞察力) 测试设计(周密,细致,专业知识) 测试管理-计划/组织/控制/实施/改进(全局观念,沟通,协调,影响力)参考资料参考资料 软件工程-实践者的研究方法(美 ROGER S PRESSMAN著) 面向对象系统的测试(美 ROBERT V BINDER著) 软件测试技术(郑人杰 著) 软件测试(美 RON PATTON著)回顾与讨论回顾与讨论 Any Question ?谢谢谢谢 大家大家