软件测试的案例分析 - 闰年4.1

news/2024/11/8 14:47:06/

文章目的

显示不同的博客能获得多少博客质量分
(这是关于博客质量分的测试 https://www.csdn.net/qc) 这个博客得了 60 分。 希望获得 70 分左右

正文

我们谈了不少测试的名词, 软件是人写的, 测试计划和测试用例也是人写的, 人总会犯错误。错误发生之后, 总有人问: 为什么这个bug 没有测出来啊?! 我们看看一类简单的bug是如何发生的,以及如何预防它们再度发生:

闰年

软件少不了和日期打交道, 日历系统算是人类的一个遗留系统 (legacy system), 这个系统在逐步进化的过程中, 打了好多补丁, 闰年就是补丁之一。

关于闰年,现在的 规格说明书 (spec) 是:

年份被 4 整除的,就是闰年, 但是被 100 整除的年份不闰,被 400 整除的年份又是闰年。

但是,人们在写软件的时候,还是犯了不少错误。

错误之一

算不清某一年是不是闰年。

怎么避免这些错误呢?有两个办法:

  1. 认真分析问题,写出正确的算法
  2. 通过完备的测试用例来保证算法的正确

但是人类总是匆匆忙忙,有时候就不免犯很多小错误。 下面是C# 的代码片段, 这段程序对么?

public static bool IsLeapYear(int year)
{System.Diagnostics.Debug.Assert(year >= 1900);if (year % 400 == 0)return true;if (year % 100 == 0)return false;if (year % 4 == 0)return true;return false;
}

我们要写什么样的测试用例来保证程序的正确性呢?

出错后怎么改正?

1900 年是闰年么? 根据我们上面提到的规格说明书,这不是一个闰年。 如果出现了错误,我们改还不行么?

但是,在全世界被广泛使用的电子表格软件 Excel 就有这样一个Bug,而且它并不改正:Excel 的日期计算功能认为1900年是一个闰年。

在这里插入图片描述
程序员为何不修改这个明显的bug 呢? 请看我写的其他博客。
(这个博客是作为测试案例,测试博客质量分)


http://www.ppmy.cn/news/241098.html

相关文章

惠普打印机服务器状态未知,惠普打印机状态显示需要注意

惠普打印机状态显示需要注意,而打印时提示“需要用户干预”,其解决方法如下: 1、删除打印任务。 2、把打印机电源断开一分钟,再连接上及重启电脑。 3、检查usb线连接是否连接牢靠。 4、检查打印机开机后,是否为就绪状态…

安全响应中心 — 垃圾邮件事件报告(6.5)

2023年6月 第二周 样本概况 ✅ 类型1: 携带钓鱼链接的伪造传票邮(URLPhish) 近期,安全团队捕获到一类新的伪造51某票的钓鱼邮件,内容上为伪造的律师事务所传票信息,并诱导收件人点击钓鱼链接。代表样本如下: 结合情…

php 检测密码,密码强度检测_php 密码强度检测代码

摘要 腾兴网为您分享:php 密码强度检测代码,篆刻字典,游戏堂,一加商店,微众银行等软件知识,以及外卖通,变形金刚动态壁纸,唯一优品,会计考试go,玩途旅行,玩鲨…

物联网全栈开发实战系列文章汇总(共880篇,持续更新-2023.06.01)

物联网全栈开发实战(共880篇) 文章目录 物联网全栈开发实战(共880篇)1、Arduino单片机系列1.1 Arduino开发实例(包含各类传感器驱动、通信实例、DIY实例,共114篇)1.2 Arduino与Proteus仿真实例(包含大量设备驱动仿真,共109篇)1.3 Arduino与FreeRTOS编程(共18篇)1.4…

linux dd层次,【linux】dd命令详解

本文转自 上官知识库 http://www.uplook.cn/index-Index-show-view719.html?treeid23 dd是一个linux下的文件复制和转换程序。除非告诉dd命运去进行某种转换操作,否则它只是进行从输入文件到输出文件的复制工作。不过现在dd更多的用来进行磁盘性能的测试&#xff0…

从Linux内核源码到操作系统

Linux源码只有运行起来才能成为操作系统,否则她只能静静的躺在存储介质上沉睡,本文就讲解如何将这个睡美人唤醒,唤醒后给他穿上旗袍她就成为RedHat,给她换上包臀裙她就成为SUSE,再或者给她换上超短裙,她就成…

手工修改HP主机Instance Number三招

有时我们需要更改设备的instance number,(例如配置MC的时候),本文给出WTEC的最权威步骤。[more] 其中procedure I比较简单,但并不总是好用,最彻底的还是procedureII。 另外,建议大家先做一个系统…

LoadRunner测试经典案例

LoadRunner测试经典案例使用虚拟用户(Virtualusers)来模拟实际用户对业务系统施加压力。虚拟用户在一个中央控制器(controllerstation)的监视下工作。 在做一个测试方案时,要做的第一件事就是创建虚拟用户执行脚本。LoadRunner提供了Virtual User Generator来录制或…