登陆注册
8925700000034

第34章 物流信息系统的实施(3)

3.人工测试

人工测试又称代码复审,主要有代码复查、代码走查和代码会审三种方法。

代码复查是指源程序编写完毕后,直接由程序员自己进行检查。由于程序员心理上对自己编写的程序有偏爱,所以一些习惯性的错误自己不易发现。此外,对功能理解的错误也不易发现,所以,代码复查是针对小规模程序常用的方法,效率不是很高。此外,代码复查也是源程序进行测试的第一步。

代码走查一般由三至五人组成测试小组,在预先阅读过该软件资料和源程序的前提下,由测试人员扮演计算机的角色,用人工方法将测试数据输入被测程序,并在纸上跟踪监视程序的执行情况,让人代替机器沿着程序的逻辑走一遍,发现程序中的错误。测试小组成员应是从未介入过该系统设计实施的有经验的程序设计人员。由于人工运行速度很慢,因此代码走查只能使用少量简单的测试用例。

代码会审的人员构成和代码走查类似。在会审时,要求程序作者逐个阅读和讲解程序,测试人员逐个审查、提问、讨论可能产生的错误。代码会审要对程序的功能、结构和风格等进行审定。

6.4.4 系统测试用例设计

1.测试用例在物流信息系统测试中的作用

测试用例被看做是有效发现软件缺陷的最小测试执行单元,也被视为软件的测试规格说明书。在测试工作中,测试用例的设计是非常重要的,是测试执行的正确性、有效性的基础。如何有效地设计测试用例,一直是测试人员所关注的问题;设计好测试用例,也是保证测试工作的最关键的因素之一。

物流信息系统测试工作中处于重中之重的测试用例不但构成了设计和制定测试过程的基础,而且测试的深度与测试用例的数量成正比。一般来讲,判断测试是否完全的一个主要方法是基于需求的覆盖,而这又是以确定、实施和(或)执行的测试用例的数量为依据的;测试工作量与测试用例的数量成比例;测试设计和开发的类型以及所需的资源主要受控于测试用例。这些都使得测试用例在整个物流信息系统开发过程中处于更加重要的地位。

测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。测试用例应该包含软件或者项目名称、所服务的范围、背景、作者、编写时间等文档类信息;根据测试用例的定义和目的,测试用例的内容应该有:标题和用例编号、版本号、修改记录,针对目标和假设前提可能发现的错误、输入数据或代码、测试步骤、预期输出和错误发现方法。

对于每个测试需求,在测试用例中需要考虑在正面测试和负面测试条件下的测试,或者通过确定两个测试用例来实现:一个测试用例代表预期的条件,它可用于核实行为是否正确或符合预期(正面测试);另一个测试用例则代表不可接受的、异常的或意外的条件,它可用于核实测试需求是否未以非预期方式执行(负面测试)。

在一般情况下,对于测试的每个需求来说,至少要有一个正面测试用例和为数较多的负面测试用例,以此来检查在异常情况下系统能否正常处理,或者用户进行了错误的操作时的友好提示等等。

测试用例已被确定用来执行测试目标中所有的产品需求行为,包括(视情况而定):

功能、数据确认、业务规则实施、测试目标工作流程或控制、数据流、对象状态、性能(包括工作量、配置和强度)、安全性可访问性、兼容性。每个测试用例都说明或者代表一个唯一的输入集或事件顺序,它能够产生唯一的测试目标行为,复审那些产生相同行为的测试用例并判定它们是否等同,即它们是否都执行测试目标中的路径。

2.测试用例的设计方法

根据动态测试的方法分为黑盒测试和白盒测试,相应的测试用例的设计方法也可以分为针对黑盒测试的用例设计和针对白盒测试的用例设计。针对白盒测试的测试用例设计方法有语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖等;黑盒测试的测试用例设计方法主要有等价类划分、边界值分析、因果图法和错误推测法等。

(1)白盒测试的测试用例设计方法

1)语句覆盖

由于程序中有分支语句,程序的某次执行一般并不能执行到其中的每一条语句。因此,如果某语句中含有一个错误,而它在测试中没执行,这个错误就不可能被发现。为了提高发现错误的可能性,应该在测试时执行程序中的每一个语句。

语句覆盖是一个比较弱的测试标准,其含义是选择足够的测试用例,使得程序中每条语句至少都被执行一次,以此尽可能多地发现程序中的错误。

2)判断覆盖

判断覆盖又称分支覆盖,其含义是选择足够多的测试用例,使得程序中每条判断语句至少获得一次“真”值和“假”值,也就是每个判断语句的每个分支都至少被执行一次。

3)条件覆盖

条件覆盖的含义是执行足够多的用例,使得判断语句中的每个条件均获得各种可能的结果,它比判断覆盖测试能力要强。

4)判断/条件覆盖

判断/条件覆盖的含义是指执行足够多的测试用例,使得判断表达式中每个条件都取到各种可能的值,并且使每个判断表达式也都取到各种可能的结果。

5)条件组合覆盖

条件组合覆盖是一种更强的逻辑覆盖标准,它要求选取足够多的测试用例,使得判断表达式中所有条件的各种可能组合都至少出现一次。凡是满足这种覆盖的用例,一定满足判断覆盖、条件覆盖和判断/条件覆盖。

6)路径覆盖

路径覆盖的含义是选取足够多的测试数据,使程序的每条可能路径都至少执行一次(如果有循环,则要求每个循环至少经过一次)。

路径覆盖是相当强的标准,它保证程序中每条可能的路径都至少执行一次,因此这样的测试数据更有代表性,暴露错误的能力也比较强。但是,为了做到路径覆盖只需考虑每个判断表达式的取值,并没有检验表达式中条件的各种可能组合情况。如果把路径覆盖和条件组合覆盖结合起来,可以设计出检错能力更强的测试数据。

(2)黑盒测试的测试用例设计方法

1)等价类划分

按照黑盒测试思想,输入所有可能的数据来测试某个程序是不可行的。所以,只能在可能的输入数据中选取一个最具代表性的有限子集,作为测试用数据,期望用较小的代价暴露程序中的较多错误。

等价类划分方法的基本思想是设想用一组有限的数据去代表近似无限的数据,就是基于对输入或输出数据的评估将数据划分为两个或更多子集(如有效的和无效的数据集),从每个等价类中选择一定的代表值进行测试,来代表整个数据集的输入/输出。

等价类划分是将输入数据的可能值分成有效等价类(符合要求的输入)和无效等价类(非法输入)两种,每一类以一个代表性的测试数据进行测试,这个数据就等价于这一类中的任意其他数据。

例如,输入的数据范围是1~999,我们可以划分一个有效等价类(大于等于1且小于等于999的数)和两个无效等价类(小于1的数,以及大于999的数)。

等价类测试的关键是划分等价类。要做好这一点,一是要注意积累经验,二是要正确分析被测程序的功能。例如,某程序的功能是求解一元二次方程ax2+bx+c=0。

那么,根据功能可划分出如下的等价类:

满足a≠0,且b=0,c=0的输入数据;满足a≠0,且b=0,c≠0的输入数据;满足a≠0,且b≠0,c=0的输入数据;满足a=0,且b≠0,c≠0的输入数据;a=0,b=0,c≠0的输入数据,非法方程;a=0,b=0,c=0的输入数据,不是方程。

其中,前四个等价类为有效等价类,后两个为无效等价类。因此,测试用例数据就可分别从这些等价类中选取六组测试用数据。

2)边界值分析

在编写程序时,人们往往只注意正常情况,忽视了边界状态。边界值分析法就是在某个变量范围的边界上,验证独立的输入/输出是否正确的测试方法。因为实践证明,程序往往在输入/输出数据边界更容易发生错误,所以检查边界情况的测试用例是比较高效的,可以更快地查出错误。

采用边界值分析的基础也是划分等价类,是对等价类划分方法的补充。不同的是,对每一等价类所选取的测试数据应在其边缘值附近,而不是选取每个等价类的典型值或任意值作为测试用例。

例如,输入数据的值的范围是-1.0~1.0,则可选-1.0、1.0、-1.001和1.001等数据作为测试数据。

3)错误推测法

人们可以通过经验和直觉推测程序中可能存在的各种错误,从而针对性地设计测试用例。这种方法没有确定的步骤,在很大程度上是凭经验进行的。

例如,输入数据为0,或者输入数据为“空”;输入的学生成绩超过100分或为负值;输入一些不存在的数据等。

同类推荐
  • 金牌直销员必备

    金牌直销员必备

    直销,对于大家来说肯定不会是一个陌生、新鲜的名词,正如一位著名的商业专家所描述的那样:直销是人们谈论最多,却了解最少的行业。直销为什么会有如此大的魅力,如此多的目光,甚至被人们誉为未来的商务趋势及新世纪商业领域的发展潮流呢?历史发展到今天,直销已经造就了无数企业和行业的奇迹和辉煌,安利、雅芳、玫琳凯、完美、仙妮蕾德等,都以其活生生的成果昭彰于世。如果你渴望成就意义非凡的成功事业,如果你渴望拥有自强、自信又洒脱的幸福人生,可从直销开始!在这里,所有的梦都将不再是飘浮天际的虚幻,而是握在你手心里的实实在在。
  • 富士康管理模式

    富士康管理模式

    这本《富士康管理模式》在台湾也称为鸿海集团,创建于1974年。它的掌门人郭台铭将一个7.5万元起家的小厂,打造成了今天的“全球代工大王”,是电子代工行业中真正的NO.1。不是说代工已是夕阳产业吗,为什么富士康的发展势头却如此迅猛?它的管理模式可以被复制吗?《富士康管理模式》从富士康的发展现状入手,深刻解析了富士康的管理模式,试图解开富士康成功的谜团。
  • 世界500强企业岗位执行标准

    世界500强企业岗位执行标准

    这不是一本一般地介绍世界500强企业的书,不是对500强企业新闻式的报道,也不是对500强企业成就的赞歌,而是在参阅了500强企业的工作分析、实施准则等方面的成功实践标准的基础上,总结了从最高管理层到普通员工的各个岗位职责要求、行为规范及执行标准,以便读者参考和借鉴。
  • 格兰特和李将军的领导力

    格兰特和李将军的领导力

    本书从作战的角度纵览了1864年陆路战役的全貌,对格兰特和李作为领导者所面对的挑战进行了非常有趣且实用的分析还描述了使两位将军成功的素质、技巧和方法,并且巧妙地把他们的经验转化为“领导力教程”。
  • 集团内部控制论

    集团内部控制论

    本书分为十五章,主要内容为集团内部控制的探索价值、集团内部控制的研究基础、中国集团内部控制的理论探索、中国集团内部控制的实践探索、国际内部控制的经验借鉴、内部控制理论框架打造、集团内部控制能力本源等。
热门推荐
  • 灭世鬼帝

    灭世鬼帝

    仙侠异世,无奈自己却是废物一枚,小屌丝偶得画卷,方知鬼气筑基...
  • 相思谋:妃常难娶

    相思谋:妃常难娶

    某日某王府张灯结彩,婚礼进行时,突然不知从哪冒出来一个小孩,对着新郎道:“爹爹,今天您的大婚之喜,娘亲让我来还一样东西。”说完提着手中的玉佩在新郎面前晃悠。此话一出,一府宾客哗然,然当大家看清这小孩与新郎如一个模子刻出来的面容时,顿时石化。此时某屋顶,一个绝色女子不耐烦的声音响起:“儿子,事情办完了我们走,别在那磨矶,耽误时间。”新郎一看屋顶上的女子,当下怒火攻心,扔下新娘就往女子所在的方向扑去,吼道:“女人,你给本王站住。”一场爱与被爱的追逐正式开始、、、、、、、
  • 乱世凌霄

    乱世凌霄

    天庭之上,神佛一手遮天,维持万年不变的规矩。玉帝如同傀儡,想反抗的神,佛,妖,魔,人,鬼。均神秘失踪。我从出世起便立下誓言,我若成佛,天下无魔;我若成魔,杀仙戮佛!如来,你已彻底激怒了我!你不但要偿命,我还要这三界众生来为你赔偿。你夺走我的一切,我便要你加倍奉还!
  • 无限之次元王座

    无限之次元王座

    简介神马的真麻烦,不过咱还是写了,咳咳,看好了。中二版:吾乃时间之行者,空间之旅人,吾追逐真理,寻求不朽。吾乃旧世界之终结者,亦乃新世界之创建者,吾是冷血的刽子手,亦是智慧的启蒙者,吾乃——龙帝-王潜。正常版:本书讲的就是一个名为王潜的骚年在被逼成为人工智能后,在地球快毁灭时重生回到2016年,靠着金手指穿越到各个位面装逼的故事。
  • 冰山王子恋上冷血丫头

    冰山王子恋上冷血丫头

    一片薰衣草田记录着他们的点点滴滴,当王子们看见复仇的公主丫头们时还会不会爱上她们,宽容她们呢本是让家人们捧在手心的快乐天使,那美妙的幻想最终却被她们的父亲捏碎,成为了冷血绝情的折翼天使,当她们遇上他们会擦出怎样的火花
  • 轩辕神武

    轩辕神武

    看林轩,如何从一个“灵魂弱者”,变成一个强者。
  • 七年之后

    七年之后

    婚后七年,还没来得及痒,就在结婚纪念日收到一纸离婚协议。“毕竟用钱买来的婚姻,只能用钱来画上终点,不是吗?”他的一句话,让她七年的付出成了一个笑话。交易一场,拉开了他们纠缠的序幕。她还没从弃妇的阴影里走出来,高高在上的前夫却突然霸道的堵住了她的去路。安若素以为从此他们的人生就此陌路,霍伟霆却不给她绝决的机会,一而再,再而三的出现在她的世界里。新的纠葛让她无从适从,直到听到他的表白。她以为,自己可以为爱情再勇敢一次,却发现,伤害,还未停止······
  • 虚舟集

    虚舟集

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 冷面皇妃之玄坤幻影

    冷面皇妃之玄坤幻影

    她本是逐鹿城一个冷血的杀手,为了救唯一在乎的人,接受雇主所托通过玄坤镜穿越到一百五十年前的逐鹿城,却不知早在她受邀之时,就已经踏入一个巨大的阴谋之中。她没想到会在异世遇到他,一个为了帝位步步为营,却肯为她放手天下的男子,一个愿意忍受万蚁噬心,却不愿放开她的手的男子,一个对别人阴狠绝情,独独对她柔情似水的男子……历经种种之后,她心已落下,还能回到原来的世界吗?他本是一个受到冷落的皇子,一心只想取得皇位,让那些对不起他的人不得好死,却在机缘巧合之中,遇到那个清心寡欲的女子。一开始只是为了大计欺瞒利用于她,哪知历经多次九死一生,他竟任由不能动的心蠢蠢欲动。他时而霸道,时而黏腻,心却始终如一。他在她耳旁许诺,他余生只为她而活,无论身在朝堂还是田陌,这辈子,她都是他的,也只能是他的……主角:蓝轻儿、万俟溪配角:蓝书杭、柳芽、尧漠、黎楚阳、段思吟、万俟渊等
  • 三顾九思

    三顾九思

    本文慢热,逗逼。华宁领养欢迎各位亲们的评价。欢迎灌水,吐槽,禁止骂街。