详谈软件工程之软件测试与维护
- 一:软件测试
-
-
- 1、软件测试的基本思想(原则):
- 2:软件测试的分类
-
- (1)**动态测试**:
- (2)静态测试:
- 3、测试用例设计
-
- 黑盒测试法:
- 白盒测试法:
- 4、测试阶段
- 5、面向对象的测试
- 6、软件调试
-
- (1)软件调试的方法:
- (2)软件调试与软件测试的区别:
-
- 二、系统运行与软件维护
-
-
- 1、系统转换计划-遗留系统演化策略
-
- 1、淘汰策略
- 2.、继承策略
- 3、改造策略
- 4.、集成策略
- 2、系统转换计划-新旧系统的转换策略
- 3、系统转换计划-数据转换与迁移
- 4、软件(系统)的维护
-
题外话:本博客讲的是软件工程中的最后一个环节:软件测试与维护。主要从两方面进行说明,即软件测试方法和软件调试
一:软件测试
软件测试是软件质量保证的主要手段之一,也是在将软件交付给客户之前所必须完成的步骤。软件测试可以验证软件是否满足软件需求规格说明和软件设计所规定的功能、性能及软件质量特性的要求,为软件质量的评价提供依据。软件测试只是软件质量保证的手段之一,不能单凭测试来保证软件质量。
1、软件测试的基本思想(原则):
- 宜早不宜迟、要尽早不断的进行测试;
- 程序员要避免测试自己设计的程序;
- 既要选择正确有效的数据、也要选择不合理、无效的数据;
- 修改后应该要进行回归测试;
- 尚未发现的错误数量与该程序已发现错误数成正比;
2:软件测试的分类
软件测试主要分为两类:动态测试和静态测试。
黑盒测试法:
等价类划分:把程序的输入域划分成若干部分,然后从每个部分中选取少数有代表性的数据作为测试用例,每一类代表性数据在测试中的作用等价于这一类中的其他值。划分等价类时,首先把数目极多的输入分成若干个等价类。所谓等价类就是某个输入域的集合,对于一个等价类中的输入值来说,它们揭示程序中错误的作用是等效的。
边界值分析:是一种补充等价类划分的测试用例设计技术,它不选择等价类的任意元素,而选择等价类边界的测试用例。实践证明,为检验边界附近的处理而专门设计测试用例,常常可以取得良好的测试效果。
错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,有针对性地设计测试用例的方法。基本思想是列举出程序中所有可能的错误和容易发生错误的特殊情况,再根据它们选择测试用例。
因果图法:从自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表。
白盒测试法:
逻辑覆盖:以程序内部逻辑为基础的测试技术,常用的有语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、修正的条件判断覆盖、条件组合覆盖、点覆盖、边覆盖和路径覆盖等。
循环覆盖:是指覆盖程序中所有的循环,包括单循环及嵌套循环。
基本路径法:在程序控制流程图的基础上,通过分析控制结构的环路复杂性导出基本路径集合,然后设计测试用例,保证这些路径都至少通过一次。
语句覆盖:每条语句都执行过。是最弱的覆盖。
路径覆盖:每个路径都执行过。是最强的覆盖。
4、测试阶段
5、面向对象的测试
1、淘汰策略
遗留系统的技术含量较低,且具有较低的业务价值。对遗留系统的完全淘汰是企业资源的根本浪费,系统分析师应该善于“变废为宝”,通过对遗留系统功能的理解和借鉴,可以帮助新系统的设计低新系统开发的风险。
2.、继承策略
遗留系统的技术含量较低,已经满足企业运作的功能或性能要求,但具有较高的商业价值;目前企业的业务尚紧密依赖该系统。对这种遗留系统的演化策略为继承。在开发新系统, 需要完全兼容遗留系统的功能模型和数据模型。为了保证业务的连续性,新老系统必须并行运行一段时间,再逐渐切换到新系统上运行。
3、改造策略
遗留系统具有较高的业务价值,基本上能够满足企业业务运作和决策支持的需要。这种系统可能建成的时间还很短,对这种遗留系统的演化策略为改造。改造包括系统功能的增强和数据模型的改造两个方面。系统功能的增强是指在原有系统的基础上增加新的应用要求,对遗留系统本身不做改变;数据模型的改造是指将遗留系统的旧的数据模型向新的数据模型的转化。
4.、集成策略
遗留系统的技术含量较高,但其业务价值较低,可能只完成某个部门(或子公司)的业务管理。这种系统在各自的局部领域里工作良好,但对于整个企业来说,存在多个这样的系统。不同的系统基于不同的平台、不同的数据模型,形成了一个个信息孤岛,对这种遗留系统的演化策略为集成。
2、系统转换计划-新旧系统的转换策略
4、软件(系统)的维护
正确性维护:指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
适应性维护:指使应用软件适应信息技术变化和管理需求变化而进行的修改。企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。
完善性维护:扩充功能和改善性能而进行的修改。对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。
预防性维护:为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使用系统适应各类变化而不被淘汰。如将专用 表功能改成通用 表生成功能,以适应将来 表格式的变化。
例题:软件的维护并不只是修正错误。为了满足用户提出的增加新功能、修改现有功能以及一般性的改进要求和建议,需要进行();它是软件维护工作的主要部分;软件测试不可能揭露旧系统中所有存在的错误,所以这些程序在使用过程中还可能发生错误,诊断和更些错误的过程称为();为了改进软件未来的可维护性或可靠性,或者为了给未来的改进提供更好的基础而对软件进行修改 这类活动称为()。
A. 完善性维护 B. 适应性维护 C. 预防性维护 D. 改正性维护
A. 完善性维护 B. 适应性维护 C. 预防性维护 D. 改正性维护
A. 完善性维护 B. 适应性维护 C. 预防性维护 D. 改正性维护
答案解析:A、D、C。
更多资讯请扫描以下二维码或关注微信公 “愿为最亮星”,为您提供更深层次的解答。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93540 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!