软件工程复习提纲,期末、考研的学霸笔记
第六章——实现
1)源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准。
2)①程序内部的文档:包括恰当的标识符、适当的注解和程序的视觉组织等(例:次数-times)。
②数据说明:数据说明的次序应该标准化,能够加速测试、调试和维护的过程。
③语句构造:每个语句都应该简单而直接。
④输入输出:对所有输入数据都进行检验;保持输入格式简单。
⑤效率:主要指处理机时间和存储器容量两个方面。
【【【不要牺牲程序的清晰性和可读性来不必要地提高效率。】】】
1)概念:①测试是为了发现程序中的错误而执行程序的过程;
②好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
③成功的测试是发现了至今为止尚未发现的错误的测试。
2)软件测试:为了发现错误而执行程序的过程。(是为了证明程序有错,而不是证明程序无错)
1)集中检测软件设计的最小单元——模块(主要使用白盒测试技术)。
2)测试重点:
1)是测试和组装软件的系统化技术,主要目标是发现与接口有关的问题。
2)由模块组装成程序有两种方法:非渐增式测试方法;渐增式测试方法(被普遍采用的)。
3)渐增式测试方法:
①自顶向下集成策略(被普遍采用):可以使用深度优先或宽度优先策略。
②自底向上集成策略:
③不同集成测试策略的比较:
1)测试的一些规定:对于布尔变量B来说,B的输出约束指出,B必须是真(t)或假(f)。
对于关系表达式来说&#xff0c;用符号>&#xff0c;&#61;和<指定表达式的输出约束。
2)例1 C1: B1 & B2
B1和 B2是布尔变量。C1的条件约束形式为&#xff08;D1&#xff0c;D2&#xff09;,其中D1和D2中的每一个都是
t或f.因此约束集{(t,t),(t,f),(f,t)}被C1的执行所覆盖。
例2 C2: B1 & (E3&#61;E4)
B1是布尔变量,E3和E4是算术表达式。C2的条件约束形式为&#xff08;D1&#xff0c;D2&#xff09;,其中D1是t
或f.。D2是>&#xff0c;&#61;&#xff0c;<。对于(E3&#61;E4)来说&#xff0c;t 意味着&#61;&#xff0c;而f意味着<或>。因此分别(t,&#61;), (f,&#61;)
替换(t,t),(f,t),并用(t,<),(t,>)替换(t,f)。故C2的约束集为&#xff1a;{(t,&#61;),(f,&#61;),(t,<),(t,>)} 。
例3 C3: (E1>E2) & (E3&#61;E4)
E1,E2,E3和E4都是算术表达式。C3的条件约束形式为&#xff08;D1&#xff0c;D2&#xff09;,其中D1和D2的每一
个都>,&#61;,<。除了C3的第一个简单条件是关系表达式之外&#xff0c;C3和C2相同&#xff0c;因此可通过修
改C2的约束集得到C3的约束集&#xff0c;结果为&#xff1a;{(>,&#61;),(&#61;,&#61;),(<,&#61;),(>,<),(>,>)} 。
1)目标&#xff1a;验证软件的有效性。
2)软件有效性&#xff1a;如果软件的功能和性能如同用户所合理期待的那样&#xff0c;软件就是有效的。
3)通常使用的方法&#xff1a;黑盒测试法。
4)两种测试方法&#xff1a;
Alpha测试&#xff1a;由用户在开发者场所进行&#xff1b;
Beta测试&#xff1a;由软件的最终用户们在一个或多个客户场所进行。
5)测试与调试的区别&#xff1a;
1)系统的稳态可用性为&#xff1a; Ass&#61;MTTF/(MTTF&#43;MTTR)
【系统平均无故障时间MTTF和平均维修时间MTTR】
2)估算平均无故障时间&#xff1a; MTTF&#61;IT /[K( ET- Ec(τ))] &#xff08;其中K为常数&#xff0c;其典型值是200&#xff09;
【ET——测试之前程序中错误总数&#xff1b;IT——程序长度(机器指令总
数)&#xff1b;τ——测试(包括调试)时间&#xff1b;Ed( τ)——在 0 至τ期间发
现的错误数 &#xff1b;Ec( τ)——在 0 至τ期 间改正的错误数。】
3)例 对一个包含10000条机器指令的程序进行一个月集成测试后&#xff0c;总共改正了15个错误&#xff0c;
此时MTTF&#61;10h;经过两个月测试后&#xff0c;总共改正了25个错误(第二个月改正了10个错
误)&#xff0c;MTTF&#61;15h。
要求&#xff1a;(1) 根据上述数据确定MTTF与测试时间之间的函数关系&#xff0c;画出MTTF与测试
时间τ的关系曲线。在画这条曲线时做了什么假设?
(2) 为做到MTTF&#61;100h&#xff0c;必须进行多长时间的集成测试?当集成测试结束时总
共改正了多少个错误&#xff0c;还有多少个错误潜伏在程序中?