种相互对立属性的统一体, 也可代表同一事物内部相互对立的两个方面 因此, 任何事物不但具有阴阳对立的两方, 而且在其中的任何一方, 又有其阴阳相对的两个方面 事物相互对立的阴阳属性, 是由其性质 趋势 位置等方面所决定的 一般地说, 凡是活动的 明显的 进行性的 上升的 机能亢进的, 或属于功能方面

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "种相互对立属性的统一体, 也可代表同一事物内部相互对立的两个方面 因此, 任何事物不但具有阴阳对立的两方, 而且在其中的任何一方, 又有其阴阳相对的两个方面 事物相互对立的阴阳属性, 是由其性质 趋势 位置等方面所决定的 一般地说, 凡是活动的 明显的 进行性的 上升的 机能亢进的, 或属于功能方面"

Transcription

1 2017 3rd International Conference on Humanity and Social Science (ICHSS 2017) ISBN: Research on the Application of Yin Yang Theory in Software Testing Teaching Fang-chun JIANG Shen Zhen Institute of Information Technology, Shen Zhen, Guang Dong , China Keywords: Yin test, Yang test, Software testing, Computer education. Abstract. In this paper, the traditional thinking of yin and Yang in ancient China is applied to computer education and applied in software testing. The concept of Yin test and Yang test is put forward, and the three basic principles of the inherent, mutual and transformation of yin and Yang test are put forward. Finally, the experimental results are compared and good results are obtained. 软件测试教学中阴阳学说的应用研究 蒋方纯深圳信息职业技术学院, 广东, 中国 关键词 : 阴测试 ; 阳测试 ; 软件测试 ; 计算机教育 摘要 : 本文将中国古代阴阳传统思维运用到计算机教育中, 并在软件测试中进行应用研究 提出了阴测试与阳测试的概念, 以及阴阳测试的固有 互含 转化三个基本原理 最后进行了实验对比, 取得了较好的实验效果 1. 阴阳学说的基本内容下面首先就阴阳学说的产生 阴阳学说的内容和阴阳的相互关系等问题进行论述 1.1 阴阳学说的产生阴 阳两字的古义是背日和向日, 起初并无任何哲学内涵 阴阳概念始于古人对自然现象的观察大约产生于原始社会的末期 当人们站在山岗上, 看到山的南坡阳光充足, 植物生长繁茂山的北坡却冷暗不见阳光, 植物低矮不荣, 两边的差别十分明显, 以阳光是否充足为依据, 产生了阴阳概念 这时的阴阳概念是十分具体的是指实物的 随着时间推移, 人们观察到越来越多的事物均存在两种既对立又依赖的关系, 从而形成了一种两极思维和二元分类法, 这就是阴阳学说 阴阳概念就从论述具体事物, 变为抽象概念, 用于说明世界万事万物的发生发展和变化规律 [1] 这种抽象的阴阳概念形成后, 就成了中国传统文化的思想主干, 成为中国人的思维模式, 这一世界观影响着中华民族的方方面面 在自然科学中人们应用阴阳学说研究天文地理, 以此解释四季变化和万物的兴衰 同样, 在软件测试方面, 也可以运用阴阳学说, 在软件测试方法 模式的选取, 测试工作量的平衡等问题上进行研究, 丰富和发展软件测试理论 1.2 阴阳学说的内容所谓阴阳, 它是对自然界相互关联的某些事物和现象对立双方的概括, 它是抽象的概念而不是具体的事物 正因为阴阳是事物对立双方的概括, 所以, 它既可代表事物所固有的两 256

2 种相互对立属性的统一体, 也可代表同一事物内部相互对立的两个方面 因此, 任何事物不但具有阴阳对立的两方, 而且在其中的任何一方, 又有其阴阳相对的两个方面 事物相互对立的阴阳属性, 是由其性质 趋势 位置等方面所决定的 一般地说, 凡是活动的 明显的 进行性的 上升的 机能亢进的, 或属于功能方面的, 都属阳 ; 与它相反的一面, 凡沉静的 隐晦的 退行性的 下降的 机能衰减的, 或属于器质方面的, 都属于阴 从事物的运动变化来看, 静属阴而动属阳, 暗属阴而明属阳, 当事物处于沉静状态时便属阴, 处于活动状态时便属阳 阴阳学说的基本内容是阴阳的对立制约 阴阳的互根互用 阴阳的消长平衡和阴阳的相互转化四个方面 [2] 根据阴阳学说的基本理论, 在软件测试理论与技术中加以应用, 就可得到静态测试属阴, 动态测试属阳, 黑盒测试属阴, 白盒测试属阳, 性能测试属阴, 功能测试属阳 阴阳的互根互用是指阴阳的两个方面既是互相对立的, 又是相互依存的 任何一方面, 都不可能脱离另一方面而单独存在 上为阳, 下为阴, 没有上, 无所谓下 ; 热为阳, 寒为阴, 没有热, 无所谓寒 ; 没有寒, 也无所谓热 阴阳两方面都是这样, 阴依存于阴, 阴依存于阳, 每一方都以另一方为存在条件 这种相互依存的关系, 又称为 互根 以上阴阳对立斗争 依存互根, 消长转化几方面的关系, 是阴阳学说的基本内容 这些内容不是孤立的, 而是互相联系 互相影响 互为因果的 阴阳消长是阴阳转化的前提, 而阴阳转化则是阴阳消长发展的结果 [3] 2. 软件测试理论中的阴阳学说根据阴阳学说, 把它应用在计算机软件测试中, 对阴测试与阳测试进行定义, 并对阴阳测试的固有 互含 转化三个原理进行说明 2.1 阴测试与阳测试软件测试从不同的测试角度去划分, 可以分成不同的测试方法, 如图 1 所示 但最容易被人接受及最常用到的测试划分方法为黑盒测试与白盒测试 静态测试与动态测试 性能测试与功能测试 [4] 图 1 软件测试方法分类根据阴阳的定义, 把具有沉静的 隐晦的 器质方面的属性的测试称为阴测试, 例如静态测试 黑盒测试 性能测试 ; 把具有活动的 明显的 功能方面的属性的测试称为阳测试, 例如动态测试 白盒测试 功能测试 根据阴阳学说划分的软件测试方法如表 1 所示 257

3 表 1 阴测试与阳测试分类表软件测试分类软件测试方法属性静态测试不需要运行程序, 具有沉静属性 阴测试黑盒测试不关心程序内部的逻辑结构与处理过程, 具有隐晦属性 性能测试关注时间性能 空间性能 稳定性能等, 具有器质方面的属性 动态测试需要运行程序, 具有活动属性 阳测试白盒测试研究程序内部的逻辑结构与处理过程, 具有明显性 功能测试检查软件是否满足用户在功能方面的要求, 具有功能方面的属性 2.2 阴阳测试的固有原理在任何一个软件产品的测试过程中, 都存在着阴测试 阳测试两类不同的属性因素, 这就是阴阳测试的固有原理 在开发阶段, 通常由程序开发人员进行代码复查, 这即是静态测试 ( 阴测试 ) 又是白盒测试 ( 阳测试 ), 包含有阴阳测试两种属性因素 ; 在进行单元测试和集成测试阶段, 通常进行要阅读参数 结构等方面是否正确的白盒测试 ( 阳测试 ), 又要进行模块运行是否正确的黑盒测试 ( 阴测试 ), 包含有阴阳测试两种属性因素 ; 在进行系统测试和验收测试阶段, 即要进行功能测试 ( 阳测试 ), 又要进行性能测试 ( 阴测试 ), 包含有阴阳测试两种属性因素 阴阳测试的固有原理说明, 在软件测试过程中, 一定包含有阴阳两种属性, 也就是说最好一定进行阴测试和阳测试, 才符合测试事物的固有属性规律 2.3 阴阳测试的互含原理在阳测试中含有阴测试的因素, 反之在阴测试中又含有阳测试的因素 即 阳多阴少 的测试, 为阳测试 ; 阴多阳少 的测试, 为阴测试 这就是阴阳测试的互含原理 在实际软件测试工作中, 进行黑盒测试 ( 阴测试 ) 以及选择测试用例时, 也要考虑程序的结构 参数 接口等白盒测试 ( 阳测试 ) 的因素, 只不过是阴多阳少为阴测试 ; 进行白盒测试 ( 阳测试 ) 时, 也要考虑程序执行时的输入输出之间的结果黑盒测试 ( 阴测试 ) 因素, 只不过是阳多阴少为阳测试 ; 现在出现一种灰盒测试, 即有黑盒测试 ( 阴测试 ) 又有白盒测试 ( 阳测试 ), 只不过是阴阳测试差不多各占一半 在进行静态测试 ( 阴测试 ) 时, 在头脑中也在进行着程序的执行, 即动态测试 ( 阳测试 ), 只不过静态测试 ( 阴测试 ) 是主要形式, 所以为阴测试 ; 同样进行动态测试 ( 阳测试 ) 时, 也要考虑程序的静态测试 ( 阴测试 ) 因素, 只不过动态测试 ( 阳测试 ) 是主要形式, 所以为阳测试 如果有一种测试即有静态测试 ( 阴测试 ) 又有动态测试 ( 阳测试 ), 几乎各占一半时, 就可称之为阴阳测试 同理, 在进行功能测试 ( 阳测试 ) 时也要关注性能测试 ( 阴测试 ), 进行性能测试 ( 阴测试 ) 时也要关注功能测试 ( 阳测试 ) 2.4 阴阳测试的转化原理阴阳测试的变化, 往往朝着其各自相反的方向发展 阳测试的变化, 朝着阴测试方向发展 ; 反之, 阴测试的变化, 则朝着阳测试方向发展 阳测试生成至极, 可转化为阴测试 ; 反之, 阴测试生成至极, 也可转化为阳测试 这就是阴阳测试的转化原理 根据前述的阴阳测试互含原理, 当进行黑盒测试 ( 阴测试 ) 时, 如果考虑白盒测试 ( 阳测试 ) 的因素过多时, 就会向白盒测试 ( 阳测试 ) 转变, 最终变为白盒测试 ( 阳测试 ); 同样, 白盒测试 ( 阳测试 ) 也可以转化为黑盒测试 ( 阴测试 ) 当进行动态测试( 阳测试 ) 时, 如果过多考虑静态测试 ( 阴测试 ) 因素, 就会向静态测试 ( 阴测试 ) 转化, 最终变为静态测 258

4 试 ( 阴测试 ); 同理, 静态测试 ( 阴测试 ) 也可以转化为动态测试 ( 阳测试 ) 当进行功能测试 ( 阳测试 ) 时, 如果过多考虑性能测试 ( 阴测试 ) 因素, 就会向性能测试 ( 阴测试 ) 转化, 最终变为性能测试 ( 阴测试 ); 同理, 性能测试 ( 阴测试 ) 也会转化为功能测试 ( 阳测试 ) 阴阳测试的互含与转化原理说明, 在进行软件测试的测试模式 测试方法的选择时, 要充分考虑测试软件的本身的属性及要求, 做出合理的测试方案设计 3. 阴阳软件测试应用研究下面就阴阳软件测试的应用展开研究 3.1 测试模式选择与测试量估计算法基于阴阳测试学说的软件测试模式选择的核心算法思想如下 : 根据美国软件生产力研究所 [5] 的研究, 确定软件 ( 或功能模块 ) 测试使用的 18 种测试形式, 并进行阴阳测试说明与阴阳测试所占比值估计 针对软件产品 ( 或每个功能模块 ), 根据识别出的影响风险可能性和严重程度的主要因素, 评估风险发生的可能性和严重程度, 并通过权值来表示 根据用户要求 时间等因素, 确定测试进行的阶段数 根据上述信息进行综合计算, 确定测试方法和测试量, 构成测试策略, 选择合适的测试策略, 并排列不同功能模块的测试重点 3.2 实施测试模式选择与测试量估计根据美国软件生产力研究所的相关研究, 软件测试经常使用的测试形式有 18 种, 如表 2 所示 本文就以这 18 种测试为基础开展研究 由测试小组讨论确定每种测试需要进行的是阴测试或是阳测试 [6] 根据上述的阴阳测试理论, 每种测试都含有阴测试的属性和阳测试的属性 所以测试小组根据测试项目的具体情况与要求, 讨论研究决定每种测试是否进行阴测试 阳测试, 还是阴测试阳测试同时进行, 或是同时不进行, 并通过确定阴阳测试所占比例来体现出来 比例值从 0 100,0 表示不进行该项测试,100 表示只进行该项测试, 其它值表示阴测试或阳测试所占测试比例, 阴阳测试所占比例之和为 100 常规的风险评估通过计算可能性和严重程度来实现, 风险的可能性和严重程度同时还会受到各种因素的影响 例如, 对于风险发生的可能性可以考虑的因素有测试对象的复杂性 时间压力及地理分散程度 ( 如开发和测试不在同一个国家进行 ) 资源等; 对于风险的严重程度可以从测试对象的使用频率及失效发生的可视性等方面考虑 接下来确定阴测试 阳测试的权值 权值由项目的综合因素构成, 包括使用频度 失效的可视性 复杂性 时间因素 资源因素 每个因素权值的范围从 1 10, 由测试小组根据项目的实际情况讨论决定 按照用户要求及时间因素等, 根据经验数据, 确定测试进行的阶段数, 不进行的测试阶段为 0, 进行测试阶段为 1, 填入测试方法与测试量分配表中 是否测试 列中 每种测试方法的阴测试量 = 是否测试 * 比例值 * 权值合计, 每种测试方法的阴测试量 %= 每种测试方法的阴测试量 / 所有测试方法的阴测试量 同理, 算出阳测试量 %, 构成测试方法与测试量分配表 在表中测试量 % 为 0 的为不进行的测试阶段, 其余的为测试所占的比例 测试工作可以根据表中的测试方法与测试量进行测试工作 4. 实验将上述阴阳软件测试方法, 应用于 XXXX 演练 软件测试中, 并与用传统测试方法测 259

5 试 XXXX 演练 软件进行了对比 使用阴阳测试方法共用测试用例 202 个, 发现缺陷 45 个, 传统测试方法共用测试用例 330 个, 发现缺陷 43 个 测试的效果有所提高, 提高了 4.44%, 测试的工作量大大减少, 减少了 38.78% 从实验的测试效果和工作量来看, 阴阳测试方法是合理与有效的, 尤其是在测试中 小规模程序时表现的更为突出 5. 结论本文通过运用中国古代文化中阴阳学说的哲学与辩证思想, 定义了阴测试与阳测试, 并将其运用在具体的软件测试中, 进行了比较研究, 取得了较好的实验效果 今后将继续完善阴阳测试方法, 进一步提高测试的有效性, 适应更广泛的被测试软件 致谢本文得到了第三批校级优秀教学团队 ( 动漫制作技术专业教学团队 ) 动漫制作技术专业建设规划 ( ) 项目的资助, 在此表示感谢 References [1] Zhang Mingyi. Full Textbook of Chinese literature. Wuhan press, 2010, 2 (in Chinese). [2] Du Baorui. The elementary philosophy problem in Yi Zhuan. Zhou Yi Research. 1999, 4(in Chinese). [3] Hao Wanshan. The basis of Yin-Yang theory in traditional Chinese medical science. China natural medical science magazine, 2000, 2. Volume 2, issue 1(in Chinese). [4] Zhao Bin. Software Testing technology classic tutorials. Science Press, 2007, 5 (in Chinese). [5] [US] Capers Jones, interprted by Liu Congyue, Hao Jiancai, Shen Dongkai. Software Project Estimation (2nd Edition), Publishing house of electronic industry, 2008(in Chinese). [6] Fangchun Jiang, Yunfan Lu. Software testing model selection research based on Yin-Yang testing theory. ICSNCE