• QQ空间
  • 回复
  • 收藏

系统开发-软件测试与维护

东方头条 2019-10-27 20:51:42 科技

一、 测试类型

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