|
|
|
|
移动端

2.9 习题

《软件测试:一个软件工艺师的方法(原书第4版)》第2章程序示例,本章给出了3个单元层次程序实例的伪代码。本节为习题。

作者:马琳/李海峰 译来源:机械工业出版社|2017-11-15 17:33

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

2.9 习题

1. 重新考察图2-1所给出的三角形程序的经典流程图。变量match的取值可以是4或5吗?有可能依次“执行”方框1、2、5和6吗?

2. 回顾第1章中对程序的规格说明的规定行为和程序实现的实际行为之间关系的讨论。如果仔细研究NextDate函数的程序实现,你就会发现一个问题:处理30天月份(4月、6月、9月和11月)的CASE子句中,没有对day=31情况的处理。请讨论这个实现是否正确。处理2月时,CASE子句没有对day=29情况的处理,请讨论这个实现是否正确。

3. 在第1章中曾提到测试用例的一部分是期望输出。请给出NextDate函数对1812年6月31日的测试用例的期望输出是什么?为什么?

4. 对三角形问题的一种常见的扩展是检查是否为直角三角形。如果三条边满足勾股定理(即c2=a2+b2),则为直角三角形。此时要求按递增的顺序给出各条边,即应有a≤b≤c。请扩展Triangle3程序来处理直角三角形。在后面的习题中还要再次进行这种扩展。

5. 边长分别为-3、-3和5时,Triangle2程序会怎么处理呢?请采用第1章中给出的思想方法来讨论这个问题。

6. 计算前一天日期的函数YesterDate函数是NextDate函数的逆函数。对给定的year、month、day,YesterDate函数应返回这一天的前一天的日期。把这个问题作为本章中实例的一种扩展,请采用你喜欢的语言(或伪代码)编写一个YesterDate程序。

7. 在GUI设计中,一部分技巧在于防止用户输入错误。事件驱动式的应用程序特别容易受到输入错误的影响,原因在于各种事件可能以任何顺序出现。在本章给出的SATM系统中,用户可能会输入美元金额后就马上点击“计算”按钮,而忘记选择国家。类似地,用户也可能选择国家就马上点击计算按钮,而没忘记输入美元金额。GUI设计者可以利用一种称为“强制导航”的做法来避免此类问题的发生。在Visual Basic语言中可以利用控件的可见性,来实现这一点。请讨论如何实现之。

8. CRC出版公司的网站(http://www.crcpress.com/product/isbn/9781466560680)上提供了本书的一些补充软件,这一系列软件大都是我在为研究生开设的“软件测试”课上使用过的。其中的第一部分是使用naive.xls程序(在绝大多数Microsoft Excel下都可运行)来测试三角形问题、NextDate函数和佣金问题。你可以在表格中设定一些测试用例,然后只要点击“Run Test Case”(执行测试用例)按钮就可以运行这些测试用例。利用naive.xls程序来以一种直觉(朴素)的方法好好测试一下这三个实例,这是成为测试专家的起点。在这些实例中,每个程序都被有意设置了一些故障。每当你发现了失效,请尽量去推想其中潜在的故障到底是什么。请把你的结果都记录下来,在第5章、第6章和第9章中比较各种测试思想方法时还会用得到。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Eclipse从入门到精通(第2版)

本书为《Eclipse从入门到精通》一书的全新改版。本书以最新的Eclipse 3.2作为写作版本。全书分为5篇:起步篇介绍了Eclipse及相关插件的安装...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊