本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明!
文章目录
1. 面向对象语言技术的特点?
2.选择面向对象程序设计语言时主要应该考虑哪些因素?
3.面向对象设计结果只能用面向对象语言实现吗?
4.面向对象实现应该选用哪种程序设计语言?为什么?
5.面向对象程序中特有的封装、继承和多态等机制给面向对象测试带来了哪些新特点?
6.良好的面向对象程序设计风格主要有哪些准则?
7.提高可重用性的准则有哪些?
8.提高可扩充性的准则有哪些?
9.提高健壮性的准则有哪些?
10.面向对象的单元测试最小的可测试单元是?
11.面向对象的集成测试主要有哪两种不同的策略?
12.面向对象的确认测试主要根据什么来确认测试用例?
13.面向对象测试关注于哪两点?
14.主要有哪些设计单元测试用例的方法?(即测试类的方法)
15.主要有哪些设计集成测试用例的方法?
16.主要有哪些设计确认测试用例的方法?
章末小结
1. 面向对象语言技术的特点?
- 支持类与对象概念的机制
- 实现聚集(整体-部分)结构的机制
- 实现泛化(一般-特殊)结构的机制
- 实现属性和服务的机制
- 提供实用的类库
- 利用类库,实现高效率
- 持久保存对象
2.选择面向对象程序设计语言时主要应该考虑哪些因素?
- 将来能否占主导地位:为了使自己的产品在若干年后仍然具有很强的生命力
- 可重用性:采用面向对象方法开发软件的基本目的和主要优点是通过重用来提高软件的生产率
- 类库和开发环境:决定可重用性的因素,不仅仅是面向对象程序语言本身,开发环境和类库也是非常重要的因素
- 其他因素:对用户学习面向对象分析、设计和编码技术所能提供的培训服务;在使用这个面向对象语言期间能提供的技术支持;能提供给开发人员使用的开发工具、开发平台、发行平台;对机器性能和内存的需求;集成已有软件的容易程度等。
3.面向对象设计结果只能用面向对象语言实现吗?
不是。面向对象设计结果既可以用面向对象语言实现,也可以用非面向对象语言实现
4.面向对象实现应该选用哪种程序设计语言?为什么?
应该选择能够更完整、更正确地表达问题域语义的面向对象语言。
因为面向对象语言相对于非面向对象的语言,其突出的优点是:
- 一致的表示方法
- 可重用性
- 可维护性
5.面向对象程序中特有的封装、继承和多态等机制给面向对象测试带来了哪些新特点?
增加了面向对象测试和调试的难度
6.良好的面向对象程序设计风格主要有哪些准则?
- 提高可重用性
- 提高可扩充性
- 提高健壮性
7.提高可重用性的准则有哪些?
- 提高方法的内聚
- 减小方法的规模
- 保持方法的一致性
- 把策略与实现分开
- 方法应全面覆盖所有可能的结果
- 尽量不使用全局信息
- 利用继承机制
8.提高可扩充性的准则有哪些?
- 封装实现策略
- 不要用一个方法遍历多条关联链
- 避免使用多分支语句
- 精心确定公有方法
9.提高健壮性的准则有哪些?
- 预防用户的操作错误
- 检查参数的合法性
- 不要预先确定限制条件
- 先测试后优化
10.面向对象的单元测试最小的可测试单元是?
面向对象的单元测试最小的可测试单元是封装起来的类和对象
测试面向对象软件时,不能孤立地测试单个操作,而应该把操作作为类的一部分来测试。
11.面向对象的集成测试主要有哪两种不同的策略?
- 基于线程的测试
- 基于使用的测试
12.面向对象的确认测试主要根据什么来确认测试用例?
面向对象的确认测试主要根据动态模型和描述系统行为的脚本来设计确认测试用例
13.面向对象测试关注于哪两点?
- 适当的操作序列
- 检查类的状态
14.主要有哪些设计单元测试用例的方法?(即测试类的方法)
- 随机测试
- 划分测试
- 基于故障的测试
15.主要有哪些设计集成测试用例的方法?
集成测试方法必须对类间协作进行测试,可用随机测试方法和划分测试方法,以及基于情景的测试和行为测试来完成
16.主要有哪些设计确认测试用例的方法?
可以采用传统的黑盒方法,也可以采用基于情景的方法
章末小结
面向对象方法学把分析、设计和实现很自然地联系在一起了。虽然面向对象设计原则上不依赖于特定的实现环境但是实现结果和实现成本却在很大程度上取决于实现环境。因此,支持面向对象设计范式的面向对象程序语言、开发环境、及类库,对于面向实现来说是非常重要的。
为了把面向对象设计结果顺利地转变成面向对象程序,首先应该选择一种适当的程序设计语言。面向对象的程序设计语言非常适合用来实现面向对象设计结果。具有方便的开发环境和丰富的类库的面向对象程序设计语言,是实现面向对象设计的最佳选择。
良好的程序设计风格对于面向对象实现来说格外重要。它既包括传统的程序设计风格准则,也包括与面向对象方法的特点相适应的一些新准则。
面向对象方法学使用独特的概念和技术完成软件开发工作,因此,在测试面向对象程序的时候,除了继承传统的测试技术之外,还必须研究与面向对象程序特点相适应的新的测试技术。
面向对象测试的总目标与传统软件测试的目标相同,也是用最小的工作量发现最多的错误。但是,面向对象测试的策略和技术与传统测试有所不同,测试的焦点从过程构件(传统模块)移向了对象类。
一旦完成了面向对象程序设计,就开始对每个类进行单元测试。测试类时使用的方法主要有随机测试、划分测试和基于故障的测试。每种方法都测试类中封装的操作。应该设计测试序列以保证相关的操作受到充分测试。检查对象的状态(由对象的属性值表示),以确定是否存在错误。
可以采用基于线程或基于使用的策略完成集成测试。基于线程的测试,集成一组相互协作以对某个输入或某个事件作出响应的类。基于使用的测试,从那些不使用服务器类的类开始,按层次构造系统。设计集成测试用例,也可以采用随机测试和划分测试方法。此外,从动态模型导出的测试用例,可以测试指定的类及其协作者。
面向对象系统的确认测试也是面向黑盒的,并且可以应用传统的黑盒方法完成测试工作。但是基于情景的测试是面向对象系统确认测试的主要方法。
反反复复,扎扎实实;念念不忘,必有回响!