147
2006年第12期下
学术理论
现代企业教育M OD ER N EN TERPR I SE ED U C ATI O N 现代
企业教育
0引言
随着计算机应用的不断发展软件产品在各个领域的应用更加普及人们对软件质量的要求也不断提高软件的质量问题正逐渐成为软件企业和开发人员关注的焦点软件测试作为质量控制的重要手段也越来越受到软件行业的重视统计表明,在典型的软件开发项目中,软件测试的工作量往往占软件开发工作总量的40%,并因此而开销30%50%的总成本,其重要性不言而喻1软件测试过程
软件测试就是为了发现错误而执行程序的过程软件测试过程一般按四个步骤进行,即单元测试集成测试确认测试和系统测试
1单元测试单独检测各模块验证程序模块和详细设计是否一致消除程序模块内部逻辑上和功能上的错误及缺陷
2集成测试将已测试的模块组装进行检测对照软件设计检测和排除子系统或系统结构上的错误
3确认测试按规定需求逐项进行有效性测试检验软件的功能和性能及其他特性是否与用户的要求相一致
4系统测试检测软件系统运行时与其他相关要素硬件数据库及操作人员等的协调工作情况是否满足要求包括性能测试恢复测试和安全测试等内容
2单元测试
单元测试是软件测试的基础在大学本科程序设计语言的教学过程中学生编写的软件规模很小因此测试往往仅限于第一步即单元测试在传统的结构化编程语言中测试的基本单元是函数在面向对象的语言中测试的基本单元是类
单元测试主要分为两个步骤人工静态检查和动态执行跟踪人工静态检查阶段主要采用结构走查代码审查等方法该阶段的工作主要是保证代码算法的逻辑正确性清晰性规范性一致性和高效性动态执行跟踪阶段通过设计测试用例执行待测程序跟踪比较实际结果与预期结果从而发现程序中的错误
动态执行跟踪阶段采用的测试方法通常分为白盒测试和黑盒测试白盒测试也称为结构测试或逻辑驱动测试黑盒测试也称为功能测试或数据驱动测试白盒测试方法中测试用例一般采用逻辑覆盖法和基本路径法进行设计根据测试覆盖的目标不同逻辑覆盖又分为语句覆盖判定覆盖条件覆盖判定条件覆盖条件组合覆盖及路径覆盖黑盒测试方法中测试用例一般采用等价划分边界值分析以及错误推断法等方法进行设计
上述各种测试方法各有所长在实际应用中通常使用下述策略结合各种方法设计测试用例
1在一般情况下都必须使用边界值分析方法经验表明用这种方法设计出测试用例发现程序错误的能力最强
2必要时用等价划分法补充一些测试用例
在程序设计语言的教学中贯穿软件测试的思想
徐丽
苏州大学计算机科学与技术学院
215006
摘要本文从软件测试的思想方法出发通过几个简单的实例
介绍在程序设计语言的教学中该如何指导学生正确
科学地选
取测试用例完成程序的测试关键词软件测试程序设计测试用例
3必要时再用错误推断法再追加一些测试用例
4对照程序逻辑检查已设计出的测试用例的逻辑覆盖程度
如果没有达到要求的覆盖标准再补充足够的测试用例
3测试用例的设计
在多年程序设计语言的教学过程中发现学生中普遍存在这么一个现象编辑完程序编译连接成功后随便输入一组数据运行程序若能够得到预期的结果就认为一切正常程序完全正确
存在这一现象的根源就在于学生不具备或不注重软件测试的思想方法因此在教学过程中应该首先从理论上给学生灌输软件测试的思想方法要求编辑完程序后先进行人工静态检查检查算法是否正确变量常
量的定义及引用是否前后一致函数的参数等其次在实践上机实验中指导学生科学正确地选取测试数据测试程序发现程序中可能存在的错误
不论用什么测试方法都不可能将所有可能的输入数据都用作测试用例进行所谓的穷举测试而必须从大量的可用测试用例中精心挑选少量的测试数据使得采用这些测试数据能够达到最佳的测试效果能够高效率地把软件中隐藏的错误揭露出来因此本文的如下部分将以几个典型的问题为例讨论如何选取测试用例完成程序的测试
例1编写一个程序输入a ,b,c 三个值输出其中最大者解决这个问题有多种不同的方法但不正确的程序都是因为存在逻辑错误因此这类程序的测试通常利用逻辑覆盖法设计测试用例为达到较强的逻辑覆盖标准选取的测试用例应满足条件组合覆盖标准和路径覆盖标准
对于上述问题如果不用软件工程中的逻辑覆盖方法来设计测试用例在实践中也可以考虑三个数的排列
例2编写程序将数组中最大的数与最后一个数交换最小的数与第一个数交换
对于这类问题通常采用错误推断法设计测试用例设计测试用例时考虑如下两种特殊情况容易发现程序中的错误最强编程语言
1最大的数在最后最小的数在第一2最大的数在第一最小的数在最后
例3有一个已按从小到大排好序的10个元素的数组今输入一个数要求按原来排序的规律将它插入数组中
对于这类问题通常采用等价划分法设计测试用例将测试数据分为以下三类
1比a[0]小
2介于a[0]到a[9]之间3比a[9]大
同时结合边界值分析法在每个等价类中选取邻近边界值及等于边界值的测试用例
4
结束语

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。