使用Java异常堆栈跟踪来改进中级Java学习者的漏洞修复技巧外文翻译资料

 2022-03-02 09:03

英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料


使用Java异常堆栈跟踪来改进中级Java学习者的漏洞修复技巧

作者:Trupti S. Indi,Pratibha S. Yalagi, Manisha A. Nirgude

译文

摘要 - 今天的行业需要关注开发过程中的软件质量,而不仅仅是软件交付。可以在软件开发生命周期的不同阶段测量,监控和测试软件质量。软件的重大失败会影响金钱以及公司的声誉。在这种情况下,在更短的时间内修复漏洞是一个重要因素。今天对工科学生的挑战是拥有程序编写技能以及漏洞修复技能,并在规定的时间内完成任务。在这里,我们介绍了如何改进漏洞修复技巧的实验。我们在信息技术学科三年级学生的Java编程课程中进行了实验。这个实验是使用Java异常堆栈跟踪来查找Java程序中的漏洞并在规定的时间内修复它们。为了测试该实验的效果,进行了预测试后实验研究以及感知调查。我们发现超过65%的学生在规定的时间内成功修复了漏洞,大约20%的学生能够修复漏洞,但不是在规定的时间内。大约80-85%的学生在课程内处于分析和修复程序中漏洞的状态。

关键字 - Java编程,调试,Java异常堆栈跟踪,异常处理,漏洞修复技巧

1 介绍

计算机编程是工程课程的基础课程。此类中添加的各种计算机编程语言是C编程语言,C ,C#,Java等。这些计算机编程语言是软件开发过程所需的基本构建块。学生应具备良好的计算机编程概念知识,包括程序编写技巧,问题解决方案设计技巧,程序分析技巧和程序调试技巧。如今,行业需要关注开发过程中的软件质量,而不仅仅是软件交付。可以在软件开发生命周期的不同阶段测量,监控和测试软件质量。在教授编程课程时,需要向学生详细阐述所有这些事实。在今天的教学过程中,只有程序写作技能的知识是不够的[8]。除了程序编写技巧,漏洞修复技能还可以帮助学生编写高质量的程序。在许多实际系统中,例如服务器,基于安卓平台的系统和设备以及嵌入式系统,由于其面向对象的特性,稳定性,可移植性和安全性,Java是高要求的编程语言[7]。因此,IT行业需要Java程序员有优秀的程序写作技巧和漏洞修复技巧。在本文中,我们介绍了在信息技术学科三年级学生的Java编程课程中进行的实验。本实验的主要目的是使用Java异常堆栈跟踪来理解Java程序中的异常,并在规定的时间内修复程序中的错误。在所提出的实验中,进行了预测试后实验研究以及感知调查。

在第二部分中,有关不同教学方法的相关工作,用于教授Java编程语言概念和调试方法。在第三部分解释了该实验背后的背景研究,第四部分说明了该实验所遵循的方法,包括使用的样品,实验装置和使用的仪器。第五部分描述了实验结果和学生反馈。接下来是第六部分的讨论和第七部分的结论。

2 文献评论

进行各种实验以研究和使用堆栈跟踪进行调试。 Adrian Schroter,Nicolas Bettenburg和Rahul Premraj [1]进行了一项实验,知道堆栈跟踪有助于加快调试速度。他们解释了堆栈跟踪如何指示代码的哪些部分可以包含缺陷,这有助于加快调试速度。还有Shujuan Jiang,张宏昌,王庆坦和张艳梅[2]提出了一种基于程序切片和堆栈跟踪的Java运行时异常调试方法,用于定位导致运行时异常的Java程序中的错误。在他们的方法中,第一个程序切片用于减少搜索范围,然后从发生异常的点开始执行向后数据流分析。然后,堆栈跟踪信息用于指导分析以确定负责运行时异常的源语句。理解由Rashkovits Rami和Lavy Ilana解释的异常处理机制存在困难[3]。此外,他们还致力于提高学生正确利用异常的高级属性以生成更高质量软件的能力。由Ioana Tuugalei Chan Mow进行的关于Java编程中的新手编程错误的研究旨在确定学生基于语法,语义和逻辑错误的分类所构成的编程错误的常见类型。该研究确定了常见的编程错误,但未查看所用的时间学生修复错误[4]。我们提出的实验主要关注学生修复错误所花费的时间。 Truong Nghi,Roe Paul和Bancroft Peter介绍了一个静态分析框架,可以用来让初学者练习写出质量更好的Java程序。该框架使用软件工程指标和相对比较来判断学生计划的质量,并提供有关如何改进解决方案的反馈。有各种评估工具用于评估学生的编程技巧[5]。 Draylson Micael等讨论了ProgTest的使用,这是一种基于测试的评估工具,可以为学生提供关于所开发程序的质量和设计的测试用例的即时反馈[9]。在相同的编程背景下,Manisha Nirgude为#39;C#39;编程课程进行的实验表明,使用调试工具有助于提高新手学习者的概念理解和错误发现能力以及程序编写技能[6]。

3 背景研究

学生掌握Java编程知识。然而,在实验室中实施概念时,观察到了以下几点:(1)学生依靠教师纠正计划中的错误和异常。 (2)即使他们使用try-catch块处理异常并且在程序中使用print语句显示异常,他们也无法修复错误并在规定的时间内执行程序,导致未完成给定任务。在Java中理解异常处理机制存在困难[3],Rashkovits Rami和Lavy Ilana解释了在Java中理解异常处理机制的困难[3]。学生没有使用适当的步骤来理解程序中的异常。学生只是根据猜测或他们的朋友解决错误的方式(可能无法纠正的方法)来修改他们的程序。这可能会导致同一程序中的新异常和错误很少。在最短的时间内修复漏洞与熟悉程序编写技巧同样重要。

为了修复漏洞,一种方法是使用任何工具调试程序。调试Java程序的不同方法是断点和逐步执行,使用调试消息,使用Java调试器等。

上述方法存在的一些问题是:(1)程序的逐步执行花费的时间太长,需要更多关注。 (2)调试消息的使用需要经常进行代码修改,并且由于需要重复编译和执行步骤。 (3)调试也需要时间来设置,使代码非常悲惨,如果之后没有删除调试消息,则会引入运行时开销。在所提出的实验中遵循的方法不需要很长时间并且不需要经常进行代码修改,而是仅需要理解和分析异常堆栈跟踪以修复程序中的漏洞/错误。在这里,学生需要了解Java异常堆栈跟踪在程序捕获或抛出异常时的作用。异常堆栈跟踪的知识将帮助学生找到导致错误的正确代码。因此Java异常堆栈跟踪将比其他方法更快地帮助学生修复漏洞。

实验的目标是了解异常堆栈跟踪并分析异常堆栈跟踪,以提高对Java学习者的概念性理解并修复Java程序中的漏洞。本实验的主要目的是使用Java异常堆栈跟踪来理解Java程序中的异常,并在规定的时间内修复程序中的错误。为了找到研究问题的答案,与信息技术学科的三年级工科学生一起进行了测试前测试实验研究以及感知调查。首先进行了预编程测试。在这里,每个学生都有三个带有漏洞的程序。提到持续时间来修复这些程序中的漏洞并成功执行这些程序。每个学生的程序执行状态和持续时间记录如图2所示。然后,老师使用功率点演示和演示示例教授“Java异常堆栈跟踪”概念。概念解释后,在实验室进行编程后测试。在这个测试中,三个程序给学生带来了错误。在此,还提到了学生成功执行各自课程的指定时间。我们确保在测试前和测试后给出的程序的认知水平相同。发布每个学生记下的程序执行状态和持续时间,如图4所示。

4 方法

研究问题是“如何改善Java学习者的漏洞/错误修复技巧?”

以下是为此实验设定的目标成就:

(1)学生将能够获得Java Exception Stack Trace的知识。

(2)学生将能够阅读和理解Java异常堆栈跟踪。

(3)学生将在分析堆栈跟踪后采取适当的措施来修复程序中的错误。

(4)学生在解决当前错误时不会产生新的错误。

(5)最后,学生将在规定的时间内使用Stack trace修复Java程序中的错误。

4.1 使用样品

在这个实验中,我们考虑了中级Java学习者。随机选择了40名来自信息技术工程系的三年级学生。

4.2 实验装置

该研究是为“Java编程”课程进行的。在本课程中,每周有两个讲座和两个小时的实验课。在本课程中,学生学习了基本的java编程和对异常处理的理解。在学期结束时,在编程实验室进行了第一次预测试,其中向每个学生提供了三个有错误的程序。提到持续时间来修复错误在那些程序中并成功执行这些程序。记下每个学生的课程执行状态和持续时间。在进行预测试后,老师在课堂上教授“Java异常堆栈跟踪概念”。在本讲座中,解释了如何阅读和解释堆栈跟踪。 Java Exception Stack Trace在演示示例和power point演示的帮助下进行了说明。第二天,在编程实验室进行了后测试。在这个测试中,三个程序给学生带来了错误,并且还提到了学生成功执行各自课程的持续时间。为每个学生记录测试后的程序执行状态和持续时间。

4.3 使用的仪器

为了测试该实验的效果,两个测试由教师设计,预测试和后测试。为了收集学生关于使用Java异常堆栈跟踪来修复漏洞的反馈,设计并执行了调查问卷。

图1:来自预测试的示例程序

4.3.1 预测试:

进行了预测试以了解学生的漏洞修复能力。向学生提供了三个具有预定义错误的程序,以在预定时间段内修复漏洞。预测试中使用的示例程序之一如图1所示。作为该测试的输出,对于每个程序实际花费的时间,在例外的开始数量和给定时间段结束时,注意到例外数量下。样本评估表如图2所示。

4.3.2后测试

在“Java异常堆栈跟踪”概念解释之后,进行了第二天的Post-test以检查使用Java异常堆栈跟踪修复程序中的漏洞的效果。这个测试是包括三个在认知水平上与预测试程序相似的程序。 PostTest中使用的示例程序之一如图3所示.pos-test的评估方法类似于预测试中使用的评估方法,如图4所示。

图2:预测试的评估方法

图3:来自测试后的示例程序

在进行测试之前,Java编程专家验证了测试前和测试后的程序。检查内容有效性,并检查两个测试的等效性。

图4:后测试的评估方法

5 实验结果和反馈

测试前后测试的结果如图5所示。该图显示了在测试前和测试后的时间或之前完成课程的学生人数和未完成课程的学生人数。

图5:学生的平均表现

在测试前向学生提供了三个课程。如表1所示,根据记录的结果,程序1的成功执行在30%的学生之前完成,而70%的学生没有完成。程序2在5%的学生之前完成,95%的学生没有完成。程序3在学生之前完成了2.5%的学生而没有完成97.5%的学生。所有这三个程序都基于Java编程中的不同概念。

表1 预预测结果

预测试程序

已完成

(时间之前)

没完成

程序1

30%

70%

程序2

5%

95%

程序3

2.5%

97.5%

表格2,程序1,程序2和程序3分别显示了95%,85%和80%成功执行的学生以及5%,15%和20%的学生无法完成的测试结果在给定的规定时间内完成程序执行。

通过这个实验,学生们能够:(1)理解和分析Java Exception Stack Trace。 (2)在分析堆栈跟踪后采取适当的措施来修复程序中的错误。 (3)在解决当前错误的同时,采用适当的步骤解决错误,不产生新的错误。 (4)在规定的时间内使用Stack trace修复java程序中的错误。

表2 测试后结果

测试后程序

已完成

(时间之前)

没完成

程序1

95%

5%

程序2

85%

15%

程序3

80%

20%

3)调查问卷

为了收集学生关于使用Java异常堆栈跟踪来修复漏洞的反馈,设计了一份调查问卷,如表3所示。这是一个带有七个问题的五点Likert量表类型。这些尺度从强烈同意到强烈反对不同。问题旨在了解Java异常堆栈跟踪是否真正帮助学生,提高错误修复技能和概念性理解,并在正确的输出程序中在规定的时间内修复漏洞。

调查问卷在测试后进行。这些问题旨在找出学生在考试后表现更好的原因。他们还喜欢Java异常堆栈跟踪,Java异常堆栈跟踪有助于在修复错误时节省时间。表3结果部分报告了学生的反馈。调查问卷也得到了教育技术领域专家的验证。

6 讨论

回答研究问题“如何改善Java学习者的漏洞/错误修复技巧?” 已经获得从取得的成果和反馈分析。近75%的学生强烈认同Java Stack Trace概念将真正帮助调试Java程序,并在修复漏洞时减少工作量和时间。 62%及以上的学生同意使用堆栈跟踪分析Java程序中的异常所需的工作量较少。总的来说,从测试前和测试后的结果和学生反馈分析,我们可以说整体上使用Java异常堆栈跟踪有助于学生提高漏洞修复技能。

7 结论

我们发现使用Java异常堆栈跟踪不需要很长时间,也

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[427220],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。