下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页测试错误代码测试错误代码
发表于:2023-05-21来源::点击数:标签:代码
开发人员会编写两种代码:功能代码和错误代码。这篇文章是关于了解在测试错误代码时的空前的挑战,我们将从一个开发人员的角度讨论错误代码开始。随后我们将探索作为测试人员一种最好的攻击这一挑战的方法。开发人员会编写两种代码。第一个是让工作执
开发人员会编写两种代码:功能代码和错误代码。这篇文章是关于了解在测试错误代码时的空前的挑战,我们将从一个开发人员的角度讨论错误代码开始。随后我们将探索作为测试人员一种最好的攻击这一挑战的方法。
开发人员会编写两种代码。第一个是让工作执行的代码,我们称这种代码为功能代码因为它提供了满足用户需求的功能性。第二种是为了防止功能代码由于不正确的输入(或一些意外的环境状况)而引起的失败,我们称它为错误代码是因为它是处理错误的。对于许多的开发人员而言,这是出于需要而被强迫编写的,并不是因为它特别有趣。
同时编写两种类型的代码是有问题的,是因为在软件开发人员的头脑里必须在两种代码之间做上下文的切换(contextshift)。这种上下文的切换是值得怀疑的,因为他们需要开发人员停止思考一种代码并开始思考另一种代码。
假设Johnny,一个我们假想的辛勤的开发人员,正在开发一个新的应用程序。Johnny通过编写功能代码开始工作,你甚至可能想的更远,想使用一些象UML的技术以让Johnny充分理解必须要编写的各种各样的用户场景。这样很好,实际上,象Johnny一样的优秀的编程人员可以查找到大量的可以帮助他们编写优秀的功能代码的信息。有很多的书,指南,还有许多有用的出版物中的示例都可以帮助你。
但是,当Johnny意识要需要编写错误代码时会发生什么事情呢?可能当他在编写或指定一些他确定要做的代码对象时,他说,这个输入需要校验边界(bounds-checked)。Johnny会怎么做呢?其中一个选择是停止编写功能代码并且改为编写错误代码。这需要在Johnny的开发员的脑子里做一个上下文的切换。他必须停止思考用户的场景和他正在实现的功能代码,然后开始思考如何处理错误。由于处理错误可能会比较负责,这可能要花他一些时间。
现在,当Johnny返回到编写功能代码的任务里,yes它们变得编写任何不平凡的程序。你看到了问题:可怜的Johnny不得不忍受着两种上下文切换以除了一个错误。设想以下在编写一个(即使是一个小的)应用程序将有多少象这样的上下文切换。
另一个选择是推后编写错误代码以避免上下文切换。假设Johnny记得在最后抽出时间来编写错误代码,他或许不得不发一些时间来回忆他以前试图编写一个处理器来处理的错误事件的本质。因此现在Johnny在没有上下文利益的前提下编写错误代码。编写错误代码是有问题的不管你如何面对。因此对于象我一样的人来说,发现错误。因此现在让我们用测试的角度看看,我们要用什么方法测试错误代码呢?强制错误信息出现是使错误代码执行的最好方法。软件应该正确地响应错误的输入或者首先应该成功地防止输入进入到软件中。有把握了解的的唯一办法是用一批错误的输入测试应用程序。或许最重要的是了解应用程序如何响应不正确的输入。我设法验证以下三种不同的错误处理器的类型:
输入过滤器(Inputfilters):能够用于预防错误的输入进入所测试的软件(softwareundertest)。有效的过滤错误的输入,例如,一个图形用户界面,只允许合法的输入通过界面
输入校验(Inputchecking):可以执行以确保软件不会执行使用错误的输入。最简单的例子是每次输入一个到系统中,开发人员插入一条IF语句以确保数据在处理之前输入是合法的。换句话说,如果输入是合法的,那么就除了它,否则显示一个错误信息。在这个优先的攻击时,我们的目标是确保我们看见了所有这样的错误信息。
异常处理器(Exceptionhandlers):是一种最后才采用的方法,并且常用于在系统由于处理了错误输入而导致的失败之后清理错误。换句话说,错误的输入允许进入稀土女冠,被处理后,系统出现了错误。异常处理器是一种常见的程序,在软件失败时被调用。它通常包括重新设置内部变量,关闭文件并且恢复软件和用户交互能力的代码。一般来说,也会显示一些错误信息。
测试人员必须考虑所测试软件可以接受的输入并且集中在不正确数值上。在这里的方法是输入太打,太小,太长,太短的数值,这些数值是超出了可接受的范围或是错误的数据类型的数值。这种方法可以发现的主要的缺陷是遗漏了错误的情况-开发人员不知道哪些输入的数据是错误的或被忽略的个别情况。遗漏的情况通常导致软件中止或崩溃。测试人员也应该查看错误信息放错位置的情况。有时开发人员正确地获得了错误信息,但是却把它安排给了错误的输入数值。因此,对于那个提交的输入数值而言,这个错误信息就好像是胡说八道。
最后,纯粹恶作剧的数据是不能提供任何信息的错误消息。尽管这样的信息不会引起对用户直接的伤害,但是他们是草率的并且在用户的头脑里投下了对软件制造商的诚信的怀疑。“Error5—UnknownData”对于一些开发人员来说可能看上去是一个好的主意,但是它将在用户的头脑里产生挫败,用户不知道他们什么地方做错了。不管测试人员正在测试一个GUI面板中的输入字段还是测试一个API调用中的参数,测试人员必须在执行这个攻击时思考输入的属性。如下是一些常见的应该思考的属性:
输入类型(Inputtype):输入无效类型通常将产生一个错误信息。例如,如果“问题”的输入类型是整数,那些尝试输入一个真实的数字或一个字符。
输入长度(Inputlen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 售后服务单填写模板快速响应与问题解决
- 人力资源招聘与培训计划制定工具包
- 合作项目开发进度延迟的说明函5篇范本
- 个人数据信息正确使用防护承诺书(4篇)
- 知识管理知识库构建模板
- 宁波地区宁海县2026届初三下学期期中考试英语试题(A)含解析
- 2026年江西专版市级名校初三下期第二次周考英语试题含解析
- 城市绿化养护管理规范流程指南
- 扬州市2026届初三下-期末联考英语试题试卷含解析
- 税务合规性保证承诺函(7篇)
- 7s标准化管理制度
- 2025年河南省郑州市中考一模英语试题及答案
- T/CHTS 10163-2024公路桥梁结构监测系统施工质量检验与评定标准
- 锂电池防护用聚烯烃泡沫塑料 编制说明
- 店铺合作摆摊协议书
- 校园VI设计案例体系解析
- 招标代理公司制度与流程汇编
- 低碳-零碳产业园运行管理规范DB15-T 3993-2025
- DB35∕T 84-2020 造林技术规程
- 《基于FCFF模型的三一重工企业价值评估的案例分析报告》16000字【论文】
- 审计工作总结汇报演讲
评论
0/150
提交评论