当前位置:首页 > 软件工程导论重点内容
桃园文印室
源程序文档化:符号名的命名、程序的注释、标准的书写格式
数据说明:数据说明的次序应当规范化。使数据属性容易查找,也有利于测试,排错和维护 语句结构:语句结构力求简单、直接,不能为了片面追求效率而使语句复杂化,可以从以下几点注意:使用标准的控制结构、尽可能使用库函数、程序编写首先应该考虑清晰性、注意使用goto语句
输入/输出:输入/输出地方式和格式应当尽可能做到对用户友善,尽可能方便用户的使用。 效率:
程序效率:程序效率是指程序的执行速度及程序占用的存储空间。影响程序效率的因素是多方面的。
二、软件测试:
1、软件测试定义: 为了发现程序中的错误而执行程序的过程 2、软件测试目标: 测试是为了发现程序中的错误而执行程序的过程 3、软件测试的准则:
1)所有测试都应该能够追溯到用户需求 2)应该远在测试开始之前就制定出测试计划 3)把Pareto原理应用到软件测试中
4)应该从“小规模”测试开始,并逐步进行“大规模”测试 5)穷举测试是不可能的。
6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。
4、软件测试方法: 第一种方法是黑盒测试(功能测试),第二种方法是白盒测试(结构测试) 黑盒测试:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用。
白盒测试:如果知道产品内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。
5、软件测试步骤: 1)单元测试(模块测试) 2).子系统测试3). 系统测试
17
计算机科学学院 软件工程(二)班 软件工程导论复习资料2 星光二班
桃园文印室
4). 验收测试(确认测试)5.) 平行运行
6、测试阶段的信息流:1)软件配置,包括需求说明书、设计说明书和原程序清单 测试配置,包括测试计划和测试方案(输入数据、输出数据和检测功能) 三、单元测试
1、单元测试(Unit testing )也称为模块测试或结构测试,通常可放在编程阶段(实现阶段),主要采用逻辑覆盖技术,由程序员对自己编写的模块自行测试,检查模块是否能实现了详细设计说明书中规定的功能和算法。
2、单元测试主要发现编程和详细设计中产生的错误。
3、测试一个模块时需要为该模块编写一个驱动模块和若干个桩(stub)模块。顶层模块测试时不需要驱动模块,底层模块测试时不需要桩模块。
4、 在进行单元测试时,常用的方法是白盒测试(采用逻辑覆盖的测试技术),辅之以黑盒测试。
5、可从以下5方面对模块进行测试:
1)模块接口:参数的数目、次序、属性或单位系统与变元是否一致;是否修改了只作输入用的变元;全局变量的定义和用法在各个模块中是否一致。 2)局部数据结构 3)重要执行通路 4)出错处理通路
5)边界条件:边界测试是单元测试中最后的也可能是最重要的任务。
四、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块?
非渐增式测试与渐增式测试的测试方法有以下区别:
㈠非渐增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试往往把单元测试与集成测试和在一起,同时完成。
㈡非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。
㈢渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发现。
18
计算机科学学院 软件工程(二)班 软件工程导论复习资料2 星光二班
桃园文印室
㈣渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。
㈤渐增式比较彻底,已测试的模块和新的模块再测试。
㈥渐增式占用的时间较多,但非渐增式须更多的驱动模块、桩模块也占用一些时间。 ㈦非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。 渐增式测试有以下两种不同的组装模块的方法:
㈠自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测试,从而把各个模块都结合起来,它又有两种组合策略:①深度有先策略:先从软件结构中选择一条主控制路径,把该路径上的模块一个个结合进来进行测试,以便完成一个特定的子功能,接着再结合其它需要优先考虑的路径。②宽度有先策略:逐层结合直接下属的所有模块。
㈡自低向上结合。该方法仅需编写驱动模块。其步骤为:①把底层模块组合成实现一个个特定子功能的族。②为每一个族编写一个驱动模块,以协调测试用例的输入和测试结果的输出。③对模块族进行测试。④按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的族。⑤重复②至④步,直至软件系统全部测试完毕。
五、集成测试:
1、集成测试(integration testing)也称为组装测试,在单元测试的基础之上,把所有的模块组装成一个系统进行测试。主要测试设计阶段产生的错误,集成测试计划应该在概要设计阶段制定。
2、非渐增式集成测试
首先将每个模块分别进行单元测试,再把所有的模块组装成一个完整的系统进行测试。目前在进行集成测试时已普遍采用渐增式集成。 3、渐增式集成测试
又可以分为自顶向下集成和自底向上集成。自顶向下集成先测试上层模块,再测试下层模块,由于测试下层模块时上层模块已经测试过,所以不必要另外编写驱动模块。自底向上集成,先测试下层模块,再测试上层模块。
顶层模块测试时不需要驱动模块,底层模块测试时不需要桩模块。
软件的集成测试最好由不属于该软件开发组的软件设计人员承担,以提高集成测试的效果。 六、确认测试(验收测试)
1) 确认测试的目标是验证软件的有效性
19
计算机科学学院 软件工程(二)班 软件工程导论复习资料2 星光二班
桃园文印室
2) 在系统验收测试中,验证测试是在模拟的环境中进行强度测试的基础上进行,主要依
据软件需求说明书检测软件的功能,性能及其他特征是否与用户的要求一致,而确认测试是在一个实际环境中使用真实数据运行系统。 3) 确认测试计划应该在需求分析阶段制定。 4) Alpha测试
由用户在开发者的场所进行,并且在开发者的指导下进行测试。开发者负责纪录发现的错误和使用中遇到的问题,也就是说Alpha测试是在受控的环境中进行的。
5) Beta测试是在一个或多个用户的现场由该软件的最终用户实施的,开发者通常不在现
场,用户负责记录发现的错误和使用中遇到的问题并把这些问题报告给开发者。也就是说,Beta测试是在受控的环境中进行的。经过确认测试之后的软件通常就可以交付使用了。
七、测试技术:
1、白盒测试技术: 白盒测试时将程序看作是一个透明的盒子,也就是说测试人员完全了解程序的内部结构和处理过程。所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作。白盒测试又称为结构测试。
白盒测试多用于单元测试阶段。逻辑覆盖是主要的白盒测试技术。白盒测试时,确定测试数据应根据程序的内部逻辑和指定的覆盖方式。采用一下几种逻辑覆盖标准: 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 路径覆盖
满足条件组合覆盖测试用例,也一定满足判定条件覆盖。因此,条件组合覆盖是上述五种覆盖标准中最强的一种。
2、黑盒测试技术: 黑盒测试时完全不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合它的功能要求。黑盒测试是在程序接口进行的测试,又称为功能测试。 常用的黑盒测试技术包括等价类划分,边值分析、错误推测和因果图等。其中等价类划分和边界值分析法方法最常用。如果两者结合使用,更有可能发现软件中的错误。
20
计算机科学学院 软件工程(二)班 软件工程导论复习资料2 星光二班
共分享92篇相关文档