软件测试:1.Describe An Error

    要求:

    1.简要描述你最近完成项目里的一个error;

    2.说明原因,错误影响,及你怎样发现的;

  或许因为刚开学的缘故,近期我并没有完成大的项目,多少有些惭愧。

  不过前几天刷编程题时,遇到一道基础的“最大子列和”问题,印象颇深。在程序排错时,自己仅凭感觉找faults,没有章法,费时费力。

    Failure描述:

  在Online Judge系统(OJ)上提交程序时显示结果“部分正确”,其中8个测试用例里有2个答案错误。

  根据自己以往的经验,既然其中有5个测试用例通过了,说明程序整体上没有大的错误,其中的一些特殊边界值的处理可能存在问题。

  然后先设计几组自己认为容易出错的边界值测试用例,在IDE里重新将程序运行起来,手动对自己设计的测试用例组进行测试,找出答案错误的情况。

  重新读题,题目要求如上图所示。输入一个整数序列,输出该序列的最大子列和、及该子列的第一个和最后一个整数值。

  特殊情况,在整数序列的所有整数均为负数时,输出的最大子列和为0,最大子列的第一个整数为整数子列的第一个整数,最大子列的最后一个整数为整数子列的最后一个整数。

    Error:

  再读题目要求后,注意到一个问题,输出的最大子列和为“0”时有3种情况:

  1.特殊情况,即所有整数项都为负数时;

  2.所有整数项都为0;

  3.所有整数项由负数和0组成;

  而我在之前编写程序并没有考虑这个问题。程序处理上面的情况3时可能会出现问题,于是设计了测试用例,输入:

  4

  -1 -2 0 -9

  

  期望得到的输出是:

  0 0 0

  而实际的输出是:

  0 -1 -9

  

  至此,终于找到程序出错的原因。在所有测试用例中,如果输入的整数序列的所有整数项由0和负数混合组成时,输出结果就会出错。

    Faults:

  Logic faults,定位到程序代码13行,将子列和为负数,和子列和为0的情况误认为是一种情况。这导致在输入的整数序列的所有整数项由0和负数混合组成时,输出最大子列的第一个和最后一个整数值,本该是输出0子列的整数值,却被当做特殊情况输出了整个序列的第一个和最后一个整数值。

    如果不足,欢迎指教,感激不尽

软件测试:1.Describe An Error的更多相关文章

  1. 软件测试作业1--描述Error

    记忆犹新的错误: 上个学期选修了可视化这门课程,最后大作业用d3实现,在使用d3读取csv数据的时候出现了以下Error: 我先是在代码中读取了某csv格式的数据,并且将其存入变量root中,然后对r ...

  2. 软件测试中的fault,error,failure

    问题:给定两段代码,设计fault,error,failure的测试用例. fault:即引起错误的原因,类似病因. error:类似疾病引起的内部结果. failure:类似疾病引起的症状. 代码1 ...

  3. MySQL学习笔记 -- 数据表的基本操作

    数据库是一个可以存放数据库对象的容器,数据库对象包括:表.视图.存储过程.函数.触发器.事件.其中,表是数据库最基本的元素,是其他数据库对象的前提条件. 表中的一列称为一个字段,一行称为一条记录. 1 ...

  4. Laravel错误与日志处理

    App\Exceptions\Handler class is where all exceptions triggered by your application are logged and th ...

  5. 【转】MySQL Temporary Table相关问题的探究

    本文转载自:http://itindex.net/detail/10901-mysql-temporary-table 问题的引入 让我们先来观察几条非常简单的MySQL语句: mysql> c ...

  6. .ascx.g.cs文件不能生成 The name ‘InitializeControl’ does not exist in the current context - Visual Web part Sharepoint

    InitializeControl doesn't exsit When using visual studio 2012 for developing SharePoint 2013 Visual ...

  7. MySQL:创建、修改和删除表

    其实对很多人来说对于SQL语句已经忘了很多,或者说是不懂很多,因为有数据库图形操作软件,方便了大家,但是我们不能忘记最根本的东西,特别是一些细节上的东西,可能你用惯了Hibernate,不用写SQL语 ...

  8. R︱sparkR的安装与使用、函数尝试笔记、一些案例

    本节内容转载于博客: wa2003 spark是一个我迟早要攻克的内容呀~ ------------------------------------- 一.SparkR 1.4.0 的安装及使用 1. ...

  9. sparkr跑通函数 包含排序

    spark1.4.0的sparkR的思路:用Spark从大数据集中抽取小数据(sparkR的DataFrame),然后到R里分析(DataFrame). 这两个DataFrame是不同的,前者是分布式 ...

随机推荐

  1. redis命令Set类型(七)

    集合类型 集合类型:无序.不可重复 列表类型:有序.可重复 命令: 1>增加/删除元素 语法:SADD key member [member -] 127.0.0.1:6379> sadd ...

  2. 3.13 练习题4:邮件发送(smtp)

    3.13 练习题4:邮件发送(smtp) 前言本篇总结了QQ邮箱和163邮箱发送邮件,邮件包含html中文和附件,可以发给多个收件人,专治各种不行,总之看完这篇麻麻再也不用担心我的邮件收不到了.以下代 ...

  3. PowerDesigner生成PowerBuilder扩展属性~

      PowerDesigner版本:11.0.0.1363 步骤: 一.打开PowerDesigner新建模型->物理数据模型(Physical Data Model). 二.在常规选项 DBM ...

  4. []TLD code run

    opencv3.3.1 https://github.com/alantrrs/OpenTLD https://github.com/arthurv/OpenTLD problem opencv3.0 ...

  5. 采用NoteExpress参考文献导入和导出

    1.NoteExpress使用 该软件分为企业版和个人版,但目前看来个人版已经不能用了,我用的是我们学校购买的软件,感觉还是很方便的. (1)首先建立数据库: (2)可以通过导入原文选项将下载好的文章 ...

  6. JMeter中Ultimate Thread Group插件使用

    JMeter下载地址:  http://jmeter.apache.org/Ultimate Thread Group插件下载地址: https://jmeter-plugins.org/get/ 一 ...

  7. vue学习之路一:安装vue-element-admin项目

    今天看到一个vue网站,觉得很好,立马又有学习vue的冲动了,话不多说,直接贴项目网址: https://github.com/PanJiaChen/vue-element-admin/blob/ma ...

  8. SpringBoot使用Druid数据库加密链接完整方案

    网上的坑 springboot 使用 Druid 数据库加密链接方案,不建议采用网上的一篇文章<springboot 结合 Druid 加密数据库密码遇到的坑!>介绍的方式来进行加密链接实 ...

  9. HOMEWORK1

    回顾你过去将近3年的学习经历 当初你报考的时候是真正喜欢计算机这个专业吗? 当初报考的时候是选择英语和计算机专业,报英语那个学校没去上,就来学了计算机,对计算机专业的感觉介于喜欢和热爱之间,就是说还是 ...

  10. Netty中的基本组件及关系

    原文:https://blog.csdn.net/summerZBH123/article/details/79344226---------------------  概述    这篇文章主要是用来 ...