一、 测试类型 1. 动态测试:指通过运行程序发现错误 1) 黑盒测试法(功能测试或数据驱动测试) 完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需 求规格 说明书,检查成功需是否满足功能要求。 常用黑盒测试用例的设计方法有: u 等价类划分 u 边界值分析 u 错误推测:基于经验和直觉推出程序中所有可能存在的各种错误,有针对性的测试用例的 方法。 u 因果图:从自然语言书写的程序UI个说明的描述中找出因(输入条件)和果(输出或程序状态的改变) 2) 白盒测试法 测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础, 对程序中尽可能多的逻辑路径进行测试。 常用的白盒测试用例设计方法有 u 基本路径测试 在程序控制流程图的基础上,通过分析控制结构的换了复杂性导出基本 路径集合,然后设计测试用例,保证这些路径都至少通过一次 u 循环覆盖测试:覆盖程序中所有的循环,包括单循环及嵌套循环 语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、修正的条件判断覆盖、 条件组合覆盖、点覆盖、边覆盖、路径覆盖。 u 逻辑覆盖测试 3) 灰盒测试法:介于白盒测试与黑盒测试之间的测试 2. 静态测试:被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。 u 桌前检查:由程序员自己检查自己编写的程序 u 代码审查:由若干程序员和测试员组成一个会审小组,通过阅读讨论和争议面对程序进行静态分析的过程。代码审查分两步:第一步,小组成员充分阅读设计规格说明、控制流程图、程序文本及有关要求、规范等。第二步,召开程序审查会,通过讨论和争议促进了问题的暴露 u 代码走查 静态测试的方法也可以实现白盒测试。人工检查代码的方法检查代码的逻辑问题,也属于白盒测试的范畴二、 测试的阶段 为了保证系统的质量和可靠性,应力求在分析、设计等各个开发阶段接收前,对软件进行严格的技术评审。 1. 单元测试(模块测试) u 针对软件设计的最小单位进行正确性建雅安的测试工作 u 模块接口测试、局部数据结构测试、路径测试、错误处理测试和边界测试 u 通常程序模块不是单独存在的,因此常常借助驱动模块(相当于用于测试模拟的主程序)和桩模块(子模块)完成 u 单元测试的计划通常是在软件详细设计阶段完成的 u 单元测试一般使用白盒测试方法 2. 集成测试 u 也称组装测试,联合测试(对于子系统而言,则称为部件测试) u 可以分为一次性组装和增量式组装(包括自顶向下、自底向上及混合式)两种 u 集成测试计划通常在概要设计阶段完成的 u 集成测试一般采用黑盒测试方法 u 驱动模块:相当于北侧模块的主程序。 u 桩模块:用以代替北侧模块调用的子模块。 3. 确认测试(有效性测试) u 包括验证软件的功能、性能、及其他特性是否与用户要求(需求)一致。 u 确认测试计划通常在需求分析阶段完成 u 根据用户参与程度,划分4种类型: l 内部确认测试:由软件开发组织内部按软件需求说明书进行测试 l Alpha测试:有用户在啊开发啊环境下进行测试 l Beta测试:有用户在实际使用环境下进行测试 l 验收测试:针对软件需求说明书,在交付前以用户为主进行的测试 4. 系统测试 u 如果项目不只包括阮家安,还有硬件和网络等,则要将软件与外部支持的硬件、外设、支持软件、数据等其他洗头工元素结合在一起,在实际运行环境下,对计算机系统进行一系列继承与确认测试。 u 主要内容包括:功能测试、健壮性测试、性能测试、用户界面测试、安全测试、安装与反安装测试。 u 系统测试计划通常在系统分析阶段(需求分析阶段)完成三、 性能测试 1. 性能测试的目的:验证软件系统是否能够达到用户提出的性能指标。同时发现软件系统中存在的性能瓶颈并优化软件,最后达到优化系统的目的。 1) 评估系统的能力 2) 识别体系中的弱点 3) 系统调优 4) 奸恶软件中的问题 5) 验证稳定性和可靠性 2. 性能测试的类型 1) 负载测试 2) 强度测试 3) 容量测试 3. 性能测试的步骤 4. 负载压力的测试四、 测试自动化 运用既有的测试功绩或开发相应的测试程序进行测试 1. 自动化测试 的优点: 1) 速度快,效率高 2) 保证结果的准确性 3) 模拟显示环境下受约束的情况 4) 连续性测试 2. 自动化测试的缺点: 1) 并非所有活动都能测试 2) 如果因自动化减少人力成本,则测试过程不完整,项目风险提升 3) 需要培训测试人员使用测试工具 4) 没有经过人工处理过的测试结果只是一堆垃圾五、 软件测试 1. 调试的实现方法:蛮力法、回溯法、原因排除法 2. 调试工具:带调试功能的编译器、动态的调试辅助工具(跟踪器)、自动的测试用例生成器、内存映像工具、交叉引用生成工具 3. 调试与测试的区别: 1) 测试的目的是找到村咋爱的错误,调试的目的是定位错误并修改程序以修正错误 2) 调试是测试之后的活动 3) 测试从一个已知的条件开始,调试从一个未知条件开始,结束的过程不可预计 4) 测试过程可以实现设计,进度可实现确定;调试不能描述过程或持续时间六、 测试计划 用户层:用户支持测试、用户界面测试、可维护性测试、安全性测试 应用层:系统性能测试、系统可靠性、系统稳定性测试、系统兼容性测试、系统组网测试和系统安装升级测试、 功能层:功能覆盖测试、功能分解测试、功能组合测试和功能冲突测试 子系统层:单个子系统性能测试、子系统间的接口瓶颈测试和子系统间的相互影响测试 协议层:协议一致性测试,协议互通测试七、 测试管理 测试团队管理 测试计划管理 错误(缺陷)跟踪管理 测试件管理八、 软件维护 1. 改正性维护:改正错误 2. 适应性维护:为适应外部环境(新的硬。软件配置)、数据环境(数据库、数据格式、数据输入、输出方式、数据从存储介质)可能发生变化而做出的修改 3. 完善性维护:用户提出新的功能与性能要求 4. 预防性维护:预先提高软件的可维护性、可靠性 |