软工复习
软件生命周期模型
瀑布模型
优点:采用规范的方法;严格规定每个阶段提交的文档;要求每个阶段交出的产品必须经过验证。
快速原型模型
(1)瀑布模型不可回溯,快速原型模型可以回溯,反复改进。
(2)瀑布模型需求不发生或发生很少变化,快速原型模型可以不断变化。
(3)瀑布模型最后才和用户交互,快速原型模型与客户的交互时刻进行着。
增量模型
喷泉模型—面向对象的软件过程模型
螺旋模型—增加了风险分析的快速原型模型
概念
极限/敏捷编程
生命周期
软件体系结构
扇入扇出
耦合
内聚
需求规格说明书
概要设计说明书
编码和测试
测试方法
测试步骤
单元测试
集成测试
自顶向下
又分为深度优先,宽度优先策略
自底向上
自底向上集成方法的基本过程如下:
1)把底层模块组合成实现一个特定软件子功能的族,如图族1、2、3。
2)为每个模块设计一个驱动程序,作为测试的控制程序,以协调测试用例的输入和输出。图中D1、D2、D3分别是族1、2、3的驱动程序;
3)对模块进行测试;
4)用实际模块代替驱动程序组装成新的模块族,在新加入的实际模块上面加上新的驱动程序进行测试;
5)重复第二到第四步,逐渐向上加入实际模块,直至构造出整个软件结构。
回归测试
确认测试
Alpha和Beta测试
白盒测试
语句覆盖 语句覆盖是指:设计的测试用例能使程序中每条语句至少执行一次。
判定覆盖 判定覆盖是指:选取足够的测试用例,使得程序中每个判断的可能结果都至少执行一次,也就是说使程序的每个判断分支至少通过一次。
条件覆盖 条件覆盖是指:选择足够的测试用例,使得程序中每个判定表达式的每个条件都取到各种可能的结果。
- 条件覆盖通常比判定覆盖强,但是条件覆盖不一定包含判定覆盖。
判定/条件覆盖 判定/条件覆盖是指:选取足够的测试用例使得同时满足判定覆盖和条件覆盖的要求。
条件组合覆盖 条件组合覆盖指:选取足够的测试用例,使得每个判定表达式中条件的各种可能的组合都至少出现一次。
点覆盖 点覆盖是指:选取足够多的测试用例,使得程序执行路径至少经过程序图中每个节点一次。
边覆盖 边覆盖是指:选取足够多的测试用例,使得程序执行路径至少经过程序图中每条边一次。
路径覆盖 路径覆盖是指:选取足够多的测试用例,使得程序的每条可能路径都至少执行一次。
黑盒测试
等价类划分是一种黑盒测试技术。 穷尽的黑盒测试需要使用所有可能的输入数据(有效的和无效的)进行测试,通常是不现实的。因此产生了等价类划分。
确定测试用例 A.给每个等价类规定一个唯一的编号;
B.设计一个新的测试用例,使其尽可能多地覆盖未被覆盖过的有效等价类。重复此步,直至所有有效等价类被覆盖;
C.设计一个新的测试用例,使其覆盖而且只覆盖一个尚未被覆盖的无效等价类。重复此步,直到所有无效等价类被覆盖。
边界值分析
程序通常在处理边缘情况时容易出现错误,如等价类与等价类之间的边界值。
所以在设计测试用例时,使用正好等于、正好大于、正好小于边界值的数据进行测试,发现程序错误的概率较大。
实用测试
软件的可靠性
软件可靠性:是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。
软件的可用性 对故障可修复系统,应同时使用可靠性和可用性来衡量。
软件可用性是:程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。
可靠性和可用性的区别是:可靠性是在0到t时间间隔内,系统没有失效的概率。而可用性是在t时刻,系统是正常运行的概率。
测试相关总结
图
数据流图–可行性研究
系统流程图
E-R图
IPO图
用例图
系统功能层次方框图
功能层次图
类图
程序流程图
N-S图
PDL(伪码)
动态模型
作业
1、什么是软件危机?软件危机产生的原因是什么?
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护的过程中出现一系列严重问题的现象。
原因:1)软件本身特点造成——脑力劳动生产;
2)软件开发与维护的方法不正确。
2、请简述软件工程的三要素。
方法、工具、过程。
3、什么是软件过程?它与软件工程方法学有何关系?
软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件过程是软件工程方法学的3个重要组成部分之一。
4、请简要说明什么是系统功能模块之间的耦合性?并按照耦合性由低到高的顺序写出耦合性的各个类型。
软件系统结构中各模块间相互联系紧密程度的一种度量。
低>>>>高
数据耦合,复合耦合,控制耦合,公共耦合,内容耦合
5、请简要说明什么是系统功能模块的内部的内聚性?并按照内聚性的强弱顺序写出内聚性的各个类型。
模块的内聚是指模块内部各个元素之间彼此结合的紧密程度
内聚性从强到弱依次为:功能型,顺序型,通信型,瞬时型,逻辑型,偶然型