本周再软件工程这门课上我们学习了软件测试,首先我们要知道几个词的意思。
Bug:软件的缺陷
Test Case:测试用例
Test Suite:测试用例集
Bug可以分解为:症状,程序错误,根本原因。症状就是从用户角度看软件出了什么问题。程序错误就是从代码的角度看,代码的什么错误导致了软件的错误。根本原因就是错误根源,就是代码错误的根本原因。
这周我们学了各种测试方法:单元测试和代码覆盖率测试,构建验证测试,验收测试,探索式测试,回归测试,场景集成系统测试,伙伴测试效能测试,压力测试,内部外部公开测试易用性测试,以及实战 中的测试等等。
我们还要直到如何运用测试工具,并且要练习与讨论,然后进行测试经验交流。下面来看一下设计模式:
一般而言,一个模式有四个基本要素:
1. 模式名称(pattern name) 一个助记名,它用一两个词来描述模式的问题、解决方案 和效果。命名一个新的模式增加了我们的设计词汇。设计模式允许我们在较高的抽象层次上 进行设计。基于一个模式词汇表,我们自己以及同事之间就可以讨论模式并在编写文档时使 用它们。模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。找到恰当 的模式名也是我们设计模式编目工作的难点之一。
2. 问题(problem) 描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后 果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设 计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。
3. 解决方案(solution) 描述了设计的组成成分,它们之间的相互关系及各自的职责和协 作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定 而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合 (类或对象组合)来解决这个问题。
4. 效果(consequences) 描述了模式应用的效果及使用模式应权衡的问题。尽管我们描述 设计决策时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处 具有重要意义。软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。因 为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植 性的影响,显式地列出这些效果对理解和评价这些模式很有帮助。 出发点的不同会产生对什么是模式和什么不是模式的理解不同。一个人的模式对另一个 人来说可能只是基本构造部件。本书中我们将在一定的抽象层次上讨论模式。《设计模式》并 不描述链表和h a s h表那样的设计,尽管它们可以用类来封装,也可复用;也不包括那些复杂 的、特定领域内的对整个应用或子系统的设计。本书中的设计模式是对被用来在特定场景下 解决一般设计问题的类和相互通信的对象的描述。