现代软件工程 练习与讨论 第十三章 软件测试

13.5.2有错不改

此题很明显是一个边界的取值问题,这确实是一个bug,是微软的算法设计失误。闰年的计算:

a.被 400 整除的年份

b.被 100 整除, 但是不被400 整除的年份

c.被 100 整除, 同时被400 整除的年份

d.被 4 整除, 但是不被100 整除的年份

e.被 4 整除, 同时被100 整除的年份

f.偶数, 不被4 整除的年份

g.奇数年份

h.其它非法输入的年份

此外还有重要的一点,就是边界。设计允许的最小的年份和设计允许的最大的年份.所以根据边界分析,测试者一定要发现闰年的第一天;闰年的最后一天;平年的第一天;平年的最后一天。

13.5.9  练习——学习和使用多个平台上的测试工具

我做项目一般都是用JAVA作为开发语言,ECLIPSE作为IDE工具,其中,测试工具我用的最多的就是JUnit了。尤其是我做eb开发使用Hibernate作为框架的时候,几乎每一个模块都会使用Junit。

JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何完成功能和完成什么样的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。

步骤(引用,出处为http://hefeng1987-net-163-com.iteye.com/blog/1571040,另外还有一个比较好的配图说明,网址为

http://wenku.baidu.com/link?url=sxTuc9Xv3-p4-Nk5-yk02tjeLVPdQEI9otnmmKjz1hStDfxJpw5D8a8K3OzLZVh054_cdak4pTOd4MNU8Obt4gapiK17zBvYv-Dk8LCb7Ii):

1.为项目导入Junit的jar包(Build path -> Add Library ->Junit)。

2.新建一个名为Test的Source Folder,用于存放测试类源代码。

3.目标类与测试类应该位于同一个报下面,这样测试类中就不必导入源代码所在的包,因为他们位于用一个包下面。

4.Junit4并不需要测试类继承TestCase父类。

5.在一个测试类中,所有被@Test注解所修饰的public void方法都是testCase(测试用例),可以被Junit所执行。

6.规范:虽然Junit4并不要求测试方法名以test开头,但最好还是按照Junit3的要求那样,以test作为测试方法名的开头。

7.在Junit4中,通过@Before注解实现与Junit3中的setUp方法同样的功能。

8.在Junit4中,可以使用@BeforeClass与@AfterClass注解修饰一个public static void no—arg的方法,这样被@beforeClass注解所修饰的方法会在所有测试方法执行前执行。

9.注解@lgnore可用于修饰测试类与测试方法,当修饰测试类时,表示忽略掉类中的所有测试方法;当修饰测试方法时,表示忽略掉该测试方法。

10.参数化测试(Parameters):当一个测试类使用参数化运行器运行时需要在类的声明处加上 @RunWith(Parameterized.class)注解,表示该类将不使用JUnit内建的运行器运行, 而使用参数化运行器运行;在参数化运行类中提供参数的方法上要使用 @Parameters注解来修饰, 同时在测试类的构造方法中为各个参数赋值(构造方法是由JUnit 调用的),最后编写测试类,它会根据参数的组数来运行测试多次。

11.在JUnit4中,如果想要同时运行多个测试,需要使用两个注解@RunWith(Suite.class)以及 @Suite.SuiteClasses()

13.5.10  历史上的20 大bug(网页暂时无法打开,能打开后再更新答案)

时间: 2024-12-29 07:19:32

现代软件工程 练习与讨论 第十三章 软件测试的相关文章

现代软件工程 练习与讨论 第十七章 人、绩效和职业道德

第十七章 1. 比较不同团队的绩效评估方法,提出自己团队的绩效评估计划 虽然不同的团队模式有着不同的优缺点,但是就邹欣老师所给出的几个团队来说,我们更倾向于选择第一个团队. 首先,大家在很大程度上都是同一级劳动者,这样就使得我们的工作团队保持一个紧密亲切的氛围.对任务进行不断的细化,使得每个人可以各司其职,共同为了一个大的目标而努力,在一个团队中谁也不希望因为自己的原因而去耽误整个团队的进度,也会使每个团队成员保持一种紧迫感.有利于团队中的每一个成员得到真正的锻炼,并学会承担责任. 2. 在团队

现代软件工程 练习与讨论 第六章 敏捷流程

请结合中国软件开发的情况(在国企开发,给企业开发软件,个人创业,游戏产业等),讨论应该增加一些什么问题,来帮助团队选择最合适的开发模型. 在我看来,当前国企开发,很多时候初初衷很好,但当作出来时,发现用户群体很少甚至是过时了.所以,在开发时要增加对于项目将来的用户群体,产品定位,以及需求等的实时考量问题,比如,当前用户群体对这样一个项目的需求是否还和之前一样,我们还需要增加什么功能,这样的产品是否当前出现了它的可替代品或是比它功能更完整的产品,我们需不需要有针对性的增加目前没有的新功能等问题.

现代软件工程 练习与讨论 第七章 MSF

1. 果冻: 西方管理学大师戴明曾经说:“Eliminate numerical goals, numerical quotasand management by objectives. Substitute (that with) leadership”,意思就是说(在团队中)要消除以数字定义的目标.份额,以及以类目标为基础的管理原则.我们要用领导能力取而代之. 这和“数量化的管理”级别的要求有没有冲突? 首先,个人认为这是没有冲突的,在一个团队的时候,用领导力来取代一些以类目,份额,目标为基

现代软件工程 练习与讨论 第五章 团队和流程

1.团队模式和团队的开发模式有什么关系? 团队模式主要取决于组成团队的成员,包括team leader以及team mates.其中,由于身处各个角色人员的性格,能力以及IQ,EQ等的不同,特别是team leader的上述这些“属性”,会往往决定了一个团队的“士气”“面对困难坚持不懈的程度”等特点,即我们常说的“软实力”.而这样的软实力也往往会激发一个团队的巨大潜能,为企业创造出超乎想象的价值. 团队的开发模式与我们目前所熟知的软件开发模式,例如,瀑布.迭代.螺旋以及敏捷等等都密不可分,但它不

现代软件工程 练习与讨论 第三章 软件工程师的成长

1. (1)第三种,稳定,安全,高效. (2)需要,programer不是coder,要成为软件工程师必须要有一定的能力,不能阿猫阿狗都自称软件工程师,这样不利于行业的发展 2. (1)既是工程,也是艺术,艺术家的衡量标准通过创造能力来衡量,创造能力体现在创新事物的新颖,实用,以及美感. (2)软件工程和音乐美术是有区别的,更讲究实用性而不是观赏性. 3.随着工具和理论的完善,软件开发的门槛越来越低,同样竞争也会越来越激烈,保持个人的先进和创新能力对个人在行业内的立足至关重要.行业在发展的同时,

现代软件工程 练习与讨论 第四章 结对编程

4.7.2. 人和人不一样,在和别人合作的时候,要注意各人表达观点的方式和思考的方式不尽相同.请看网上关于MBTI的文章,测试并分享各自的MBTI类型,讨论不同性格类型对合作有多大的影响, 在合作的各个阶段应该如何应对. ISTJ 安静.严肃,通过全面性和可靠性获得成功.实际,有责任感.决定有逻辑性,并一步步地朝着目标前进,不易分心.喜欢将工作.家庭和生活都安排得井井有条.重视传统和忠诚. ISFJ 安静.友好.有责任感和良知.坚定地致力于完成他们的义务.全面.勤勉.精确,忠诚.体贴,留心和记得

现代软件工程 第十三章 练习与讨论

13.5.2  有错不改 果冻: 微软的产品经过这么多版本的不断完善,应该是把所有问题都搞定,“止于至善”了吧? 阿超: 那也不一定,在非常有名的电子表格软件Excel中,就有这样一个Bug:Excel 的日期计算功能认为1900年是一个闰年,这是不对的,但是它愣是一直没有改正这个错误. 众人: 真的?为什么屡教不改呢? 阿超: 故事是这样的,当时这类电子表格软件的市场领头羊是Lotus 1-2-3这一款软件.它的日期计算功能有一个Bug,就是把1900年当作闰年.这类软件在内部把日期保存为“从

第五——十三章的作业

第五章 1.团队模式和团队的开发模式有什么关系? 团队模式指团队的分工模式,团队内部的结构,团队开发模式指团队开发的流程及步骤 2.如果你领头开展一个全新的项目,你要怎么选择“合适”的团队模式? 根据团队的能力和项目的结构,选择合适的团队模式.如果大家都比较自觉,且其中有一人能力较强,就会选择主治医师模式.如果项目比较复杂且每个人都有自己熟悉的开发领域,会选择功能团队模式.如果项目在不同方向和领域都有任务,就会选交响乐团模式.如果是开放式项目,可能会选择爵士乐模式.如果开发的人非常多,会选择官僚

Gradle 1.12用户指南翻译——第二十三章. Java 插件

其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/userguide/userguide.html. 另外,Android 手机用户可通过我写的一个程序浏览文档,带缓存功能的,兼容