探索性研究的特点范文

时间:2023-06-22 09:12:11

引言:寻求写作上的突破?我们特意为您精选了4篇探索性研究的特点范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。

探索性研究的特点

篇1

(二)教育途径的多样性。隐性教育不似显性教育那样主要依靠面对面上课等的形式,以自上而下严肃的教学方式对大学生施加直接的影响,而是打破了传统的固定形式、固定时间、固定地点进行集中育的封闭式教育模式限制,使大学生在所有时空范围内时时处处接受到教育,所以我们说隐性教育是一种无课堂形式、跨时空的无处不在的教育。

(三)教育内容的丰富性。隐性教育是一种多层次、全方位的教育,美国学者德里本曾指出:“在学生良好道德的形成中,来自他们在学校环境中的经验的东西,与教给他们的东西一样多。”隐性教育的内容包罗万象,不仅包括学校的硬件环境和精神文明软件建设,还包括大学生参加的各项社会实践活动和其它文体活动,这些方方面面的隐性教育资源,以不同的方式、不同的角度、不同的途径、不同的层次对大学生施加全面的、综合的、潜在的、深远的影响。可见,隐性教育的内容是丰富多彩的、分散不定的、灵活多变的、随处可见的。

(四)教育参与者的自主性。关注师生之间的对话与相互理解,这才是充满人性光辉与人文关怀的教育,传统显性教育偏失的根源,在于对现实生活中主体需要的疏离。隐性教育是一种以受教育者为主体的自主性教育,而不是居高临下的权威式的训导和灌输。在教育过程中,大学生不再是被动的教育客体,而是自愿、自主的主体,参与哪种特定的活动、如何参与、怎样参与都由受教育者自主选择和自行决定,这就避免了因直接的、明显的、外部强加的意图而使大学生产生逆反心理和对抗情绪,从而使教育效果最终严重打折现象的发生。

(五)教育目的的激励性。隐性教育的目的是要唤醒大学生的潜意识进而养成大学生良好的道德素养和行为习惯。人的潜意识,有人把它比喻为海上冰山的水下部分,它难以感知,却是人行为的一种原动力。隐性教育就是要激活这一原动力。这种教育效果的凸现必定是日常教育量的长年积累与学生潜意识的升华共同作用的结果,如果教育量积累中断或积累过程中价值观发生混乱,就容易出现“前功尽弃”的现象。值得关注的是,这种“前功尽弃”的现象并不鲜见。因此在隐性教育过程中,教育工作者一定要耐得住性子、沉得住气,使教育内容前后相继,在教育评价中不自欺欺人,用简单枚举法和纵横对比法说明整体教育效果,激活大学生的潜意识,更重要的是让他们知道不足,让他们看到与同龄人的差距,向他们展示新的发展蓝图,使他们形成好的性格,养成终生受益的习惯。这需要我们树立潜移默化的思想,相信隐性教育的强大力量,相信教育对象的美好未来。

(六)教育形式的随机性。隐性教育的形式可以是多种多样,多姿多彩的,它既可以是一次轻松愉快的对话或聊天,也可以是共同参加一项活动,如听一场精彩生动的演讲,看一出寓意深刻的话剧,观一场精彩激烈的比赛等。为此我们可以说隐性教育无时不在,无处不在,我们平时获得的各种素质教育其实都蕴含在无限的隐性教育之中。

与此同时,隐性教育也为大学生的个性培养和发展提供了无限的可能。由于隐性教育具有个别性、隐含性和随机性等特点,恰好与当今大学生日趋增长的自尊、自制、自主相吻合,与时下大学生注重个人隐私、推崇自我、崇尚奋斗紧密相联。

(七)教育机制的综合性。一所学校如果只有班组里严格的纪律,而在操场、食堂、实验室等其它场合被允许纪律松懈,那么班级的纪律要求很难使学生受到制约,他们在班级的守纪往往只是一种条件反射行为而已。如果学校的基本规章制度、道德规范要求教师可以例外的话,例如在实行禁烟的校园内教师可以毫无顾忌地抽烟,那么这个学校的教育效果必然大打折扣,失去权威性。因此学校在隐性教育中应该十分注重教育资源开发的综合性。这种综合性主要体现在基本行为道德素养上,不仅做到师生一致,而且还要求教师成为学生的楷模;在基本的价值观、世界观教育中,要做到学科一致、教学、教育思想与办学思想相统一。

二、开发隐性教育资源的途径

(一)渗透隐性课程于显性课程之中。大学生的大部分时间是在课堂中度过的,这使得存在于教学活动中的隐性课程对大学生弥足重要。显性课程中的隐性课程渗透,应在把握课堂教学的知识性、系统性、严谨性、前沿性的基础上,在教育者的价值观念、教学态度、授课方式、个性特点与师生关系上下功夫,使整个教学活动在宽松、和谐、自然的气氛中进行,具有生动性、趣味性、愉悦性,引导学生在理性和感性的交汇中,有机地渗透思想道德、心理素质、创新精神等的教育和培养。课程目标拟分为情意目标、认知目标和行为目标,隐性课程的目标可以重点充实到情意目标和行为目标中。

(二)开展丰富多彩的校园文化活动。精心设计和组织开展内容丰富、形式新颖、吸引力强的活动课程,开发存在于活动课程中的隐性课程,可以使大学生在活动参与中受到潜移默化的影响,思想感情得到熏陶、人文修养得到提升。

通过专题辅导报告会、祭扫革命烈士墓等多种形式开展主题活动,把自然、社会、人文等方面的知识蕴藏在主题活动之中;通过参与“校园文化节”、“文明宿舍”、爱心捐助等活动,一方面可以满足展示自我、发展兴趣、发挥特长的需要,另一方面还可以培养大学生的合作意识、团队意识、责任感和集体主义精神;通过开展“创建文明校园、文明班级、文明宿舍,做文明大学生”的道德实践活动,把隐性教育的要求和任务融入大学生的学习生活之中;通过举办科技活动、艺术活动、体育活动和开展党团活动、社团活动、社会实践活动,不断提高大学生的综合素质。

(三)健全美化完善学校物质空间环境。对学校物质空间进行系统规划,可考虑以下几点因素:1.学校的自然环境要适应学生的心理特点,尽力扬长避短,做到净化、绿化和美化;2.建筑设计要美观实用,更要适合学生的心理与审美需求;3.室内设计要考虑光线、摆设以及学生的座位排列等因素;4.设施设计,图书资料、文体器材、实验仪器等方面物质设施的安排也应能对学生的心理产生积极影响;5.色彩匹配,即校园内外建筑、花草树木等色彩的协调匹配;6.人物形态。正面积极的师生服饰样式,容貌特征,行为表现等人物形态也能潜在地促进学生良好的心态和心理素质的构成。

(四)重视校园精神建设。校园精神是学校师生员工共同习得、信守的基本信念、价值标准、道德风尚及精神风貌。重视校园精神建设,开发存在于校园精神中的隐性课程,有利于大学生强化知识、文化、道德方面的修养,培养良好的教育与自我教育意识,推进成才与自我成才的统一。

篇2

探索性学习是一种培养学生的创新精神和实践能力的数学教学改革模式。在教学过程中以问题为载体,创设类似“科学研究”的情景,通过自己收集、分析、处理信息,感受和体验知识产生的过程,进而了解社会,学会学习,最终培养学生应用知识和解决问题的能力。只有让学生在探索中学习,才能真正把学习的自由还给学生,把学习的权利还给学生,把学习的空间还给学生,真正落实学生的主体地位,同时,教师也应充分发挥主导作用。那么,在小学数学教学中引导学生探索性学习应以什么为抓手呢?笔者认为应以下四个方面抓手。

 

一、激发探索性学习的兴趣

 

让学生对探索性学习产生浓厚的兴趣,这是实施探索性学习的第一步。小学生由于年龄的原因,对新事物都比较感兴趣。在课堂教学中,应该根据这一特点,通过提出一些与数学知识有关、具有启发性的,并且用学生经常遇到的生活中的实例,来激发学生的探知欲望。需要注意的是,列举的实例或者问题既要是学生所熟悉的,又要经过进一步思考才能回答的。在此之后,要相信学生,让它们自己去尝试探索解决问题。

 

二、创建探索性学习的条件

 

1、设置适宜的学习情境

 

学习情境设置的好坏,很大程度上决定了是否可以激发学生的探索性学习兴趣、引发学生的独立思考。学习情境可以分为问题情境、动态情境、实验情境、应用情境、概括情境。个人认为创设的学习情境要能够让学生主动地进行观察、实验,通过学生对问题的研究进行再创造,并对自己的猜想进行验证。

 

2、创建宽松的学习氛围

 

良好的探索性学习氛围要求有一个宽松和谐的教学环境,教师要坚信学生的探索能力,肯定学生的探索勇气,使学生都能够全身心投入到学习活动中去,并在学习过程中得到锻炼。对课堂上回答正确的学生加以表扬,对回答错误的学生加以鼓励,同时对其加以细致、耐心的指导,帮助其寻找到正确的解决问题的方法,完成探究性学习任务。

 

例如:在教学“分数与除法的关系”过程中,出示讨论题,把3块饼平均分给4个小朋友,每个小朋友分多少块?我放手让学生自己解决问题,并根据学生思维的特点,组织学生小组讨论,讨论中,学生有的画图,有的剪纸……人人动手、动脑,通过观察、比较、讨论,并联系分数的意义,使学生在轻松愉快的教育环境中,逐步弄清了分数与除法的内在关系。

 

宽松的探究氛围,激发了学生的探究欲望与探究能力。

 

3、建立良好的师生关系

 

良好的师生关系有助于发挥学生的主体作用,激发学生的探索欲望。教师对学生抱着良好的情感,可以让教师保持一个良好的工作状态。要建立良好的师生关系,教师必须从自身做起,加强自身的修养,塑造人格魅力,提高在学生心目中的威望。再者,教师要不断加强自身的专业修养,增强知识底蕴。在教学过程中,教师应以真诚的情感、平等的态度与学生交流。

 

三、引导探索性学习的过程

 

1、提供充分的探索空间

 

在课堂教学中,教师除了要创设优良的学习条件外,还要给学生预留充足的探索、思考空间。探索性学习要经历多个阶段、是一个相对漫长的过程,每次向学生提出问题后,不要急于让学生回答,要留给学生时间投入到探索过程中,以完成探索性学习任务。

 

2、采用适当的探索方式

 

探索方式可以分为个体独立探索、小组合作探索、班级集体探索等三种。第一种指的是探索性学习活动的过程完全是由学生自己根据自身经验,采用自己的方式去探索。这种方式能培养学生的自主意识,初步掌握科学探究的方法。第二种指的是以多人小组为基本形式,从而为学生提供了相互交流与合作的探索环境,通过小组的形式共同总结经验、共同提高探索能力。该方式有利于学生开阔思路、互补思维,从而获得更加清晰的概念、更加准确的结论。第三种适用于研究同一主题的个人或小组,以发散的思维方法,针对问题发表自己的独立意见,通过集体的交流讨论,形成共同的认识,完成探索任务。

 

四、深化探索性学习意识

 

探索性学习不能只限于课堂教学,要将其延伸到课后的学习中去。要让学生自己对数学探索加以体验,最终将探索性学习内化成学生的自觉行为。课堂时间是有限的,因此在课后给学生布置一些任务,进行适当的课外调查、学习、研究是必需的。

 

如在讲授“利息问题”这一课时,学生对利息的知识缺乏,尤其里面的一些专业术语是什么意思,很多学生并不是很清楚,而这些又都是学生理解利息的含义并能正确计算的前提。于是,我把学生编成课外学习小组,到信用社:1、收集有关利息问题的知识,2、在储蓄柜前让学生帮助营业员接待顾客,通过小组活动,加深了学生对本金、利率、利息的认识,让学生在动手实践、自主探索和合作交流过程中掌握了计算多年期存款利息的计算方法,全面地理解了利息的计算公式。

 

篇3

通常来说,学习活动在程度上由低到高可以分为感受、体验、探索等几个阶段。探索作为最高形式的学习活动,在培养学生的实践能力、创新精神中起到了至关重要的作用。但在具体实施过程中,一些教师对探索性学习存在不太正确的看法和做法,使得效果大打折扣。结合自身教学实践,谈谈个人在实施小学数学探索性学习中的几点看法。

一、激发探索性学习兴趣

让学生对探索性学习产生浓厚的兴趣,这是实施探索性学习的第一步。小学生由于年龄的原因,对新事物都比较感兴趣。在课堂教学中,应该根据这一特点,通过提出一些与数学知识有关、具有启发性的,并且用学生经常遇到的生活中的实例,来激发学生的探知欲望。需要注意的是,列举的实例或者问题既要是学生所熟悉的,又要经过进一步思考才能回答的。在此之后,要相信学生,让它们自己去尝试探索解决问题。

二、创建探索性学习条件

1、设置适宜的学习情境

学习情境设置的好坏,很大程度上决定了是否可以激发学生的探索性学习兴趣、引发学生的独立思考。学习情境可以分为问题情境、动态情境、实验情境、应用情境、概括情境。个人认为创设的学习情境要能够让学生主动地进行观察、实验,通过学生对问题的研究进行再创造,并对自己的猜想进行验证。

2、创建宽松的学习氛围

良好的探索性学习氛围要求有一个宽松和谐的教学环境,教师要坚信学生的探索能力,肯定学生的探索勇气,使学生都能够全身心投入到学习活动中去,并在学习过程中得到锻炼。对课堂上回答正确的学生加以表扬,对回答错误的学生加以鼓励,同时对其加以细致、耐心的指导,帮助其寻找到正确的解决问题的方法,完成探究性学习任务。

例如:在教学“分数与除法的关系”过程中,出示讨论题,把3块饼平均分给4个小朋友,每个小朋友分多少块?我放手让学生自己解决问题,并根据学生思维的特点,组织学生小组讨论,讨论中,学生有的画图,有的剪纸……人人动手、动脑,通过观察、比较、讨论,并联系分数的意义,使学生在轻松愉快的教育环境中,逐步弄清了分数与除法的内在关系。

宽松的探究氛围,激发了学生的探究欲望与探究能力。

3、建立良好的师生关系

良好的师生关系有助于发挥学生的主体作用,激发学生的探索欲望。教师对学生抱着良好的情感,可以让教师保持一个良好的工作状态。要建立良好的师生关系,教师必须从自身做起,加强自身的修养,塑造人格魅力,提高在学生心目中的威望。再者,教师要不断加强自身的专业修养,增强知识底蕴。在教学过程中,教师应以真诚的情感、平等的态度与学生交流。

三、引导探索性学习过程

1、提供充分的探索空间

在课堂教学中,教师除了要创设优良的学习条件外,还要给学生预留充足的探索、思考空间。探索性学习要经历多个阶段、是一个相对漫长的过程,每次向学生提出问题后,不要急于让学生回答,要留给学生时间投入到探索过程中,以完成探索性学习任务。

2、采用适当的探索方式

探索方式可以分为个体独立探索、小组合作探索、班级集体探索等三种。第一种指的是探索性学习活动的过程完全是由学生自己根据自身经验,采用自己的方式去探索。这种方式能培养学生的自主意识,初步掌握科学探究的方法。第二种指的是以多人小组为基本形式,从而为学生提供了相互交流与合作的探索环境,通过小组的形式共同总结经验、共同提高探索能力。该方式有利于学生开阔思路、互补思维,从而获得更加清晰的概念、更加准确的结论。第三种适用于研究同一主题的个人或小组,以发散的思维方法,针对问题发表自己的独立意见,通过集体的交流讨论,形成共同的认识,完成探索任务。

四、深化探索性学习意识

篇4

中图分类号: TN911?34; TP311.5 文献标识码: A 文章编号: 1004?373X(2014)20?0074?06

Exploratory software testing approaches and their application in embedded systems

LIU Xi

(Nanjing Research Institute of Electronics Technology, Nanjing 210039, China)

Abstract: To apply the exploratory testing technology to the software testing of embedded systems is one of the promising ways to solve the problems including tight schedule, heavy tasks and incomplete software documentations. Rigorous testing management process and documentation are usually required for testing embedded systems, which is however weakened in exploratory testing. In order to guide proper application of exploratory testing in embedded system software testing, it is necessary to survey and review exploratory testing technology, analyze the correlation and conflict between exploratory testing technology and software testing system of embedded systems. Based on the survey, some suggestions are given on the application model in software testing of embedded systems. The problems andfollow?up study concerning the application are also discussed.

Keywords: exploratory software testing; embedded system software testing; session?based testing management; agile testing

0 引 言

软件在嵌入式系统中的作用越来越大。软件的质量不仅直接影响任务的成败,也关系着设备甚至人员的安全。随着用户对嵌入式系统软件质量要求的提升,软件测试已成为嵌入式系统交付前必不可少的环节[1]。

经典的测试方法要求依据软件需求和设计文档,遵循既定的测试流程,严格按照预先设计的“脚本”开展。因此经典测试方法也称为脚本测试(Script Testing)。随着嵌入式软件迭代的加速,给软件测试留出时间逐渐减少。嵌入式系统软件测试呈现出一些新特点,包括软件需求变化快、软件文档缺乏、软件测试周期短、测试时间不足等。

探索性测试(Exploratory Testing)具有在时间短和文档不完善的情况下,充分发挥测试人员的经验和能力,快速、高质量完成软件测试等优点。已形成了一套管理方法和应用模型[2?3],并在微软等多个企业开展了成功的实践[3?5]。探索性测试方法关注于实用,对它的研究也多数集中在实际应用方法而不是理论研究上[3,6?8]。

探索性测试是解决嵌入式系统软件测试需求变化快、软件文档缺乏、测试周期短等现实问题的可行手段之一。为了恰当运用,需要总结探索性测试的一般性应用方法体系,并探讨其与嵌入式系统软件测试体系的联系和冲突。在此基础上提出适用于嵌入式系统软件测试的探索性测试应用模型。

1 探索性软件测试的基本原理

探索性测试的概念形成较早,经过随后的发展已形成了一定的应用体系。

1.1 探索性软件测试的概念

传统的软件测试分为测试需求分析、测试策划、测试用例设计、测试执行和测试总结等主要阶段,依次开展[1]。传统软件测试流程依赖于完整、详实的软件需求和设计文档作为输入。而在现实的测试任务中,软件需求和设计文档往往有误或不完备,这导致脚本测试活动无法正常有效开展。

“探索性测试是同时进行学习、测试设计和测试执行的一种测试方法;也就是说,测试没有事先通过确定的测试计划定义,而是动态地被设计、执行和修改”[9]。探索性测试(也称为探索式测试)最早于1983年提出,并在实践中发展 [10?11]。与传统脚本测试相比,探索性测试具有以下技术特点:

(1) 测试活动的同时性。鼓励在测试执行的过程中,同时进行对被测软件的学习和测试设计。

(2) 关注测试任务。更关注于被测软件本身和需要测试的问题。

(3) 测试中的演绎推理。通过前一个测试活动的结果来指导后期测试的开展。

(4) 利用人的优势。关注于人本身的优势,如判断、分析、应变和协作的能力。

作为一种敏捷软件测试方法,探索性测试弱化了对测试的预先设计和测试流程的严格要求,而强调测试的同时性以及人的经验和创造性,关注于发现软件缺陷,持续优化测试工作[12?13]。测试人员在测试?理解?再细化测试的迭代中,通过测试活动本身不断深入学习被测软件,从而能够缩减测试准备时间,发现更多缺陷,并使得软件测试可以在被测软件说明或文档不齐全的情况下开展[14]。

1.2 探索性软件测试的主要方法

探索性测试的概念提出后,经过工业界和学术界人士的工作,已初步形成包含经验运用、执行策略、管理模型的体系。

1.2.1 探索方法

探索性测试强调对测试人员的知识和经验的运用。这些经验和知识可分为领域知识、系统知识和一般的软件工程知识[15]。领域知识指领域规则、客户流程和操作场景等,包括用户使用和具体应用领域知识。系统知识是关于待测软件的特性和技术细节的具体知识,包括系统级的交互以及个体功能细节。一般的软件工程知识即不需要对被测软件系统和应用领域的具体知识。

丰富的知识和经验是对探索性测试人员的基本要求,以此为基础,探索性测试的发挥人的创造性,并由此增强了测试过程的适用性。从工程应用的实践中,已总结出了一些有用的启发式方法。运用这些策略和启发式方法,可以帮助软件测试人员在具备了基本的知识和经验的情况下,尽快熟悉被测系统,并在测试过程中充分运用经验和创造性。

在开展具体的测试活动时,测试人员则可以借助一些启发式方法在测试活动中“探索”被测软件。这些启发式的方法是测试中为了发现可能的缺陷,测试人员常用的一些技巧 [16]。这其中典型的有Hendrickson的检查单[17]以及Whittaker的漫游方法[3]。这些方法的共同特性是提醒测试人员:

(1) 应关注软件最主要的功能,并在测试的过程中对软件的行为进行联想、质疑并发散,充分利用逆向输入、边界情况、近似值、错误输入和特殊值(如0),通过软件行为的原因、表现等举一反三;

(2) 应刻意构造一些特殊的行为,如尝试遍历所有输出、尝试最长操作路径、尝试关注关键数据的演化、打散或集中事物、长时间运行软件等;

(3) 应构造测试检查软件主要功能往往不关注的情景,例如启动和退出、全选、空值、资源过量和紧张、取消操作、重复、同时运行等。

传统方法假设软件文档中说明了软件的各种预期行为,因而可以通过分析文档来提取测试预期(Test Oracles)。然而,在软件信息不完备的情况下,测试预期则无法提前预知。HICCUPPS的启发式方法,从历史(History)信息、顾客形象(Image)在软件中的恰当映射、类似软件的对照(Comparable Products)、与软件和商业声明(Claims)、用户预期(User’s Expectations)、同类产品本身(the Product itself)、明显的意图(Purpose)和法律规章(Statutes)等角度,帮助测试人员在判定测试是否通过[14]。

1.2.2 管理模型

良好的测试管理模型是保证测试质量、提高测试效率的必要保障。基于会话的测试管理(SBTM)是探索性测试领域中最常用的管理实践。SBTM将软件测试活动分解为若干会话(Session)[2]。会话特征如下:

会话围绕主旨(Charter)开展:即待测试的任务和目标;会话时间较短:时间长度在90 min左右;会话需要记录:借助会话记录单;每轮会话需要计划和总结:一轮会话执行通常是一天,其中包含若干个会话测试。

基于会话的测试过程如图1所示。当接到测试任务时,测试小组通过对测试任务进行分析讨论,确定各会话的主旨。会话主旨包含被测软件的主题、测试人员的角色、目的、条件、优先级、参考文档、数据、思路、预期等信息[18]。测试项目负责人分配各会话测试人员,随后开展首轮会话执行。一轮会话执行通常为一天。每轮会话执行结束后,需组织会话总结,主要借助以下维度进行:会话执行情况、笔记、缺陷、问题、数据、时间分解、人员安排等。通过总结确定下一轮会话、资源分配。下一轮会话执行按照相似的方式开展。在测试达到预期时间和充分度要求后,测试结束,并根据每轮会话报告单整理测试报告。

图1 基于会话的测试管理示意图

会话还可以根据需要进行扩展,例如可以包含对会话的风险评估和资源统计[4],也可以将会话延伸为对特定问题的关注,形成测试的线索[19]。

1.3 探索性测试工具

探索性测试的有效开展同时依赖于工具的辅助。已有一些探索性测试的工具可供参考,例如Microsoft Test Manager(与Visual Studio组件),BBTestAssistant、TestExplorer,Session Tester,Rapid Reporter,Wink。这些工具通过基于录制回放、截屏和辅助文字信息的方式帮助测试人员记录探索性测试的执行过程,其中Session Tester、Rapid Reporter和Wink是免费的,Session Tester和Rapid Reporter则专门针对会话机制进行了设计和优化。

虽然这些基于录制回放原理的工具能够辅助测试人员整理测试报告,但是却缺少对测试人员运用其知识和经验的指导,对探索性测试的执行也缺少引导作用。目前没有专门的探索性测试流程管理工具,不能起到控制测试流程的作用。有必要针对具体应用研发相应的辅助工具。

2 探索性测试的应用及其效果

经过发展,探索性测试已在多个企业运用。人们对探索性测试方法的优缺点也有了更加明确的认识。

2.1 探索性测试在工业界的应用

微软是较早实践探索性测试方法的软件企业。微软在Windows 2000系统徽标认证、必应搜索引擎和地图、Visual Studio、Windows Media Player等系统、网络和桌面应用中广泛使用了探索性测试的技巧和方法,尤其是漫游探索法[3,7,20?21]。在其他公司,探索性测试也成功的运用于互联网应用行业以及信息系统的软件测试中。这些测试任务往往在软件文档不全、测试时间紧、企业对采用传统的脚本测试流程不满意的背景下开展,通过运用基于会话的方法,测试团队都能够高效的完成测试任务,甚至发现了采用传统方法在类似项目中遗漏的缺陷,在系统上线后也没有发生重大问题,软件项目组对测试团队的满意度有提升[22?24]。

虽然可能没有直接说明采用探索性测试,开源软件的测试往往具有探索性测试的特点。这些测试往往在没有详细的软件文档和测试用例设计的基础上,利用志愿测试人员的经验和兴趣开展 [25]。在敏捷软件研发团队中,探索性测试的方法也多有运用[26]。成功案例包括与XP和Scrum敏捷软件开发的结合[5,27]。

除了在工业界的运用,也有学者对敏捷软件测试的应用进行了系统的研究和讨论。Itkonen等人在芬兰多个软件公司中研究了测试人员对探索性测试的使用方法、效果和评价[28],对探索性测试的优缺点、应用条件合场景以及推荐的方法进行了总结[29];通过研究和实验,发现了探索性测试在缺陷检测能力上能达到甚至超过传统脚本测试的水平[6]。Naseer,史亮和高翔也总结了探索性软件测试在瑞典软件公司、国内的微软和淘宝等企业运用的经验,对探索性测试的活动进行了总结[8,10]。Bach等人还成立了公司专门从事测试方面的研究和推广。另外,也有一些研究将探索性测试思想与测试自动化方法结合[30],或利用探索性测试的思想提高测试效率和质量的工作[5]。

从目前的应用情况来看,探索性测试技术多数是在桌面应用、B/S架构信息系统等领域的应用,在嵌入式系统软件测试中的应用较少。

2.2 探索性测试的优缺点

经过实践,总结上述对探索性测试的应用,能够发现,探索性测试尤其适用于要求在短时间内发现被测软件一些重要缺陷或事先没有能够进行详细测试设计的情况;但也具有测试过程不易控制、测试文档不全等问题。因此,在具体领域中运用探索性测试技术时,有必要根据领域特性,设计适合的测试流程,扬长避短。

一般认为探索性测试的主要优点和缺点如下:

优点:便于利用人员经验;适合于从用户角度的测试;适用于缺少软件文档、测试时间紧情况;灵活且适应性强;对测试人员和开发人员的反馈较快;能够为测试带来新内容,降低“杀虫剂”效应。

缺点:缺少足够的文档,不易度量覆盖率;测试统计数据不足,不利于决策;对测试人员经验要求较高;在测试人员经验不足、管理不严格的情况下,可能会影响测试质量;如缺少恰当工具,则不利于缺陷复现。

3 探索性测试在嵌入式系统中的应用

探索性测试技术却是能够应对嵌入式系统软件测试中软件需求变化快、测试周期短、软件文档不全等现实问题的可行方法之一。本文首先分析探索性测试在嵌入式软件测试中应用的需求和困难,然后探讨探索性测试技术与嵌入式系统软件测试体系的结合方法,对应用模型提出建议,并对应用中可能的问题和后续研究进行讨论和展望。

3.1 探索性测试一般性方法的适用性

随着IT技术的发展和各国在国防、智能电网、物联网、智能手机等行业投入的加大,嵌入式软件产品越来越多,测试任务越来越重,往往难以保证充裕的测试时间。软件需求和开发文档存在不准确、不完备的情况。而同时,嵌入式软件的测试具有较强的领域特性,领域内测试人员对被测系统的经验比较丰富。因此,需要也有条件在嵌入式系统软件中开展探索性测试,以降低对软件需求和设计规约的依赖、发挥探索性测试对软件变化的适应性和充分利用测试人员经验的优势。

然而,探索性测试技术在嵌入式领域中的应用却较少。探索性测试的通用方法没有直接用于嵌入式系统软件测试的原因主要是 [1,31?33]:

(1) 软件测试文档:探索性测试不鼓励测试花费精力在策划和准备上,而测试执行记录风格随意性较大,不利于形成统一、完备的测试文档;这与按照国标和军标中对完整的软件测试文档的要求冲突。

(2) 软件测试充分性度量:不易度量测试覆盖率,不易评价测试质量。

(3) 软件测试过程控制:缺少对配置和测试流程的系统性管理,可能造成测试过程失控。

3.2 探索性测试应用模型探讨

为了解决嵌入式系统测试中软件需求变化快、测试周期短、软件文档不完备等现实问题,有必借鉴探索性测试技术在信息系统、网络应用、操作系统等方面的成功经验,将其融入嵌入式系统软件测试体系中来[24,34]。为了与相应的软件测评体系和标准匹配,必须对探索性测试通用方法进行调整,设计探索性测试在嵌入式系统软件测试的应用模型。

一种可参考的“脚本会话模型”如图2所示,是以探索性测试一般性理论、探索性测试各特性在各型产品软件的适用性研究为基础,将探索性测试与传统脚本测试相结合的软件测试模型。为充分利用两者的优势,脚本会话模型的整体仍以传统脚本方法为基础,从而利用脚本测试管理中测试文档完备和过程管理控制完善等优点,而在测试执行过程中充分发挥探索性测试的灵活、高效优点,引入会话、漫游测试法等探索性测试等方法,同时借助嵌入式系统软件测试典型数据复用库来实现对测试人员经验的固化和复用。

图2 嵌入式系统软件脚本会话测试模型

如图3所示,脚本会话模型整体流程遵循经典的脚本测试流程,但发挥了探索性测试对经验的利用和灵活性的特点。

图3 脚本会话测试模型流程框架

包含以下步骤:

(1) 测试策划和设计阶段;借助领域软件测试典型数据复用库(测试人员经验的固化体现)形成测试项、构造测试用例,降低对软件需求和设计文档的依赖,初步完成测试需求的提取和测试用例的设计。

(2) 测试执行阶段:测试执行以基于会话的方式开展,并对一般会话进行扩展。根据测试设计和计划,确定每个会话的主旨、用例和测试方法。在每一次会话中,测试人员可以结对开展测试执行,根据预先指定的漫游策略和启发式方法,针对一个测试项进行探索,并补充测试用例。测试人员在会话结束后整理会话记录单。根据本轮会话执行情况,记录缺陷、改善测试设计,并准备下一轮会话。如此迭代直到测试结束条件满足,测试执行结束[35]。

(3) 测试总结阶段:借助测试执行中各个会话报告单,总结和报告缺陷。

3.3 讨论和展望

探索性测试在互联网和桌面应用已经成功实践[34],而在嵌入式领域应用仍然较少。在嵌入式系统软件测试中运用诸如脚本会话模型的探索性测试技术时,应注意以下三点问题:

(1) 测试过程管理和文档。必须重视探索性测试的过程管理以保证测试过程受控。同时在适当的阶段应编写相应文档作为测试阶段性成果,并在测试执行完成后更新相应文档。

(2) 结合具体领域。具体领域的软件测试典型数据复用库可以看作是对该领域软件测试人员测试经验的固化,是软件测试团队的组织资产,有助于团队新成员快速熟悉被测系统,提高探索性测试的效率。

(3) 针对测试团队和项目制定具体策略。制定探索性测试中的典型方法的应用策略,并注意收集反馈,在实践中持续改进。

探索性测试作为一种在互联网、操作系统等领域成功运用多年的测试技术和理念,可以与其他软件测试技术结合,共同推进嵌入式软件测试质量的提升。可能的结合方向包括(但不限于):

(1) 基于模型的测试和验证。借助软件模型可发现隐藏在软件界面和正常使用流程下的交互,其中可能隐藏了大量的缺陷;借助模型检验工具提供的反例[36],测试人员还可以对软件进行更加深入的探索;

(2) 测试自动化。嵌入式系统软件需要处理传感器送来的大量数据,采用自动化方法能够有效减少测试人员的工作量;结合探索性测试的技术,也能够为测试用例约简和测试预期问题提供解决途径[34,37?39];

基于剖面的测试:构造嵌入式系统的操作剖面和用户剖面,辅助测试人员能有选择性地对系统进行探索[40??41]。

4 结 语

探索性测试技术经过研究和发展,已形成了一套可行的体系。探索性测试在嵌入式系统软件测试中的应用还较少。经过对探索性测试体系的全面研究,能够更好的理解这种方法在嵌入式系统软件测试中的适用性,并为融合探索性测试与传统嵌入式软件测试方法,形成适用于嵌入式系统软件测试的探索性测试应用模型提供思路和方向。

参考文献

[1] 康一梅,张永革,李志军,等.嵌入式软件测试[M].北京:机械工业出版社,2008.

[2] BACH J. Session?based test management [J]. Software Testing and Quality Engineering, 2000, 2(6): 1?4.

[3] WHITTAKER J A.探索式软件测试[M].北京:清华大学出版社,2010.

[4] LYNDSAY J, VAN EEDEN N. Adventures in session?based testing [EB/OL]. [2002?08?02]. http:///articl.

[5] TUOMIKOSKI J, TERVONEN I. Absorbing software testing into the scrum method [J]. Lecture Notes in Business Information Processing, 2009, 32: 199?215.

[6] ITKONEN J, MANTYLA M V, LASSENIUS C. Defect detection efficiency: Test case based vs. exploratory testing [C]// Proceedings of International Symposium on Empirical Software Engineering and Measurement (ESEM). [S.l.]: [s.n.], 2007: 61?70.

[7] BACH J. General functionality and stability test procedure for certified for Microsoft Windows logo [R/OL]. [1999?08?22]. http:///tools/procedure.pdf.

[8] NASEER A, ZULFIQAR M. Investigating exploratory testing in industrial practice [D]. Ronneby: Blekinge Institute of Technology, 2010.

[9] BOURQUE P, FAIRLEY R E. Guide to the software engineering body of knowledge, version 3.0 [R/OL]. [2013?03?13].. http:// /p?1714.

[10] KANER C, FALK J, NGUYEN H Q. Testing computer software, second edition [M]. New York: John Wiley & Sons, Inc., 1999.

[11] KANER C, BACH J, PETTICHORD B. Lessons learned in software testing[M]. New York: John Wiley & Sons, Inc., 2002.

[12] FOWLER M, HIGHSMITH J. The agile manifesto [J]. Software Development, 2001, 9(8): 28?32.

[13] COCKBURN A. Agile software development [M]. [S.l.]: Addison?Wesley, 2002.

[14] BOLTON M. Testing without a map [J/OL]. [2011?07?18]. http:// /1137978.

[15] ITKONEN J, MANTYLA M V, LASSENIUS C. The role of the tester's knowledge in exploratory software testing [J]. IEEE Transactions on Software Engineering, 2013, 39(5): 707?724.

[16] KANER C. A Tutorial in exploratory testing [R]. Chicago: QAI QUEST Conference, 2008.

[17] HENDRICKSON E. Explore It!: Reduce risk and increase confidence with exploratory testing [M]. [S.l.]: The Pragmatic Programmers, 2013.

[18] CLAESSON A. How to perform exploratory testing by using test charters [R]. Swedish: Swedish Association for Software Testing (SAST), 2007.

[19] BACH J. Introducing thread?based test management [R/OL]. [2010?11?26]. http:///blog/archives/503.

[20] ROBINSON H. Explorer test automation [C]// Proceedings of the Conference for the Advancement of Science Teaching (CAST). [S.l.]: [s.n.], 2010: 11?21.

[21] ROBINSON H. Using simple automation to test complex software [C]// Proceedings of Annual Pacific NW Software Quality Conference. [S.l.]: PNSQC, 2010: 123?132.

[22] V?GA J, AMLAND S. Managing high?speed web testing [C]// Software Quality and Software Testing in Internet Times. [S.l.]: Springer?Verlag, 2002: 23?30.

[23] WOOD B, JAMES D. Applying session?based testing to medical software [J]. Medical Device & Diagnostic Industry, 2003, 25(5): 90?96.

[24] 柳溪,马康,刘智.融合探索性与脚本方法的第三方软件测试模型及其应用[J].信息化研究,2013,39(6):43?48.

[25] ABERDOUR M. Achieving quality in open source software [J]. IEEE Software, 2007, 24(1): 58?64.

[26] KASURINEN J, TAIPALE O, SMOLANDER K. Test case selection and prioritization: risk?based or design?based? [C]// Proceedings of the International Symposium on Empirical Software Engineering and Measurement. [S.l.]: [s.n.], 2010: 234?242.

[27] MARTIN D, ROOKSBY J, ROUNCEFIELD M, et al. Good' organisational reasons for 'bad' software testing: an ethnographic study of testing in a small software company [C]// Proceedings of International Conference on Software Engineering. [S.l.]: ICSE), 2007: 602?611.

[28] ITKONEN J, RAUTIAINEN K. Exploratory testing: a multiple case study [C]// Proceedings of International Symposium on Empirical Software Engineering. [S.l.]: [s.n.], 2005: 1?8.

[29] ITKONEN J, MANTYLA M V, LASSENIUS C. How do testers do it? An exploratory study on manual testing practices [C]// Proceedings of the International Symposium on Empirical Software Engineering and Measurement. [S.l.]: ESEM, 2009: 494?497.

[30] HELLMANN T D, MAURER F. Rule?based exploratory testing of graphical user interfaces [C]// Proceedings of Agile Conference. [S.l.]: AGILE, 2011: 107?116.

[31] 中华人民共和国国家质量监督检验检疫总局.GB/T 25000.51?2010软件工程 软件产品质量要求与评价(SQuaRE)SQuaRE指南[S].北京:中国标准出版社,2010.

[32] 中华人民共和国国家质量监督检验检疫总局.GB/T 8567?2006计算机软件文档编制规范[S].北京:中国标准出版社, 2006.

[33] 中华人民共和国国家质量监督检验检疫总局.GB/T 9386?2008 计算机软件测试文档编制规范[S].北京:中国标准出版社,2006.

[34] 史亮,高翔.探索式测试实践之路[M].北京:电子工业出版社,2012.

[35] KANER C, BACH J. Exploratory testing in pairs [R/OL]. [2001?08?22]. http:///a/pairs.pdf.

[36] CLARKE E M, GRUMBERG O, PELED D A. Model checking [M]. [S.l.]: The MIT Press, 2000.

[37] DUSTIN E, RASHKA J, PAUL J. Automated software testing [M]. [S.l.]: Addison?Wesley Professional, 1999.

[38] FEWSTER M, GRAHAM D. Software test automation [M]. [S.l.]: Addison?Wesley Professional, 1999.

[39] KANER C. Architectures of test automation [R/OL]. [2000?09?28]. http:///pdfs/testarch.pdf.

免责声明:以上文章内容均来源于本站老师原创或网友上传,不代表本站观点,与本站立场无关,仅供学习和参考。本站不是任何杂志的官方网站,直投稿件和出版请联系出版社。
友情链接
发表咨询 加急咨询 范文咨询 杂志订阅 返回首页