一、 测试类型
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. 预防性维护:预先提高软件的可维护性、可靠性