软件测试(原书第二版)读书笔记(二)

第四章 检查产品说明书

黑盒测试和白盒测试

1、黑盒测试中,软件测试员只需要知道软件要做什么——而无法看见盒子里的软件是如何运行的 ,只要进行一些输入,就能得到某种输出结果。他不知道软件如何运行,为什么会这样,只知道程序做了什么。

黑盒测试有时候又称为功能性测试或行为测试。

2、白盒测试中,软件测试员可以访问程序员的代码,并通过检测代码的线索来协助测试——可以看见盒子里面。测试员根据代码检查结果判断或多或少可能出错的数目,并据此定制测试。

静态测试和动态测试

1、静态测试是指测试不运行的部分——只是检查和审核;动态测试是指通常意义上的测试——使用和运行软件。
2、测试产品说明书属于静态黑盒测试。产品说明书是书面文档,而不是可执行程序,因此是静态的。

对产品说明书进行高级审查

1、测试产品说明书的第一步不是马上钻进去找缺陷,而是站在一个高度上进行审查。审查产品说明书是为了找出根本性的问题。
2、当软件测试员第一次接到需要审查的产品说明书时,最容易做的事情就是把自己当成客户

了解客户所想是很重要的。质量的定义是“满足客户需求”。

3、标准与规范的差别在于程度不同,标准比规范更加严格。如果小组认为很重要,则标准应严格遵守;规范是可选的,但应该遵守。
4、在审查竞争产品时需要注意的问题包括:

规模。软件的功能强大还是单一?代码多还是少?这些差别和测试有关吗?
复杂性。软件简单还是复杂?这会影响测试吗?
测试性。是否有足够的资源、时间和经验来测试软件?
质量和可靠性。软件是否完全满足质量要求?可靠性高还是低?
安全性。竞争对手软件的安全性和自身比起来如何?

产品说明书的低层次测试技术

1、产品说明书属性检查清单:

完整。
准确。
精确、清晰。
一致。
贴切。
合理。
代码无关。
可测试性。

2、产品说明书术语检查清单:

总是、每一种、所有、没有、从不。
当然、因此、明显、显然、必然。
某些、有时、常常、大多、几乎。
等等、以此类推、例如。
良好、迅速、高效、廉价、稳定。
处理、进行、拒绝、跳过、排除。
如果……那么……(没有否则)。

第五章 带上眼罩测试软件

动态黑盒测试:带上眼罩测试软件

1、不深入代码细节测试软件的方法称为动态黑盒测试。常被称为行为测试。
2、有效的动态测试需要需求文档或产品说明书。
3、测试用例是指进行测试时使用的特定输入,以及测试软件的过程步骤。

通过性测试和失效性测试

1、测试软件有两种基本方法:通过性测试和失效性测试。
2、在进行通过性测试时,实际上是确认软件至少能做什么,而不会考验其能力。软件测试员不需要想尽办法让软件崩溃,仅仅运用最简单、最直观的测试用例。

在设计和执行测试用例时,总是首先进行 通过性测试。在破坏性测试之前看看软件机功能是否实现是很重要的。

3、确认软件在普通情况下能正确运行之后,就可以采取各种手段搞垮软件来找出软件缺陷了。纯粹为了破坏软件而设计和执行的测试用例成为失效性测试或错误强制测试。

等价类划分

1、选择测试用例是软件测试员最重要的任务。选择测试用例的方法是等价类划分。等价类划分是指分步骤把海量的测试用例集减得很小,但过程同样有效。

在寻找等价划分时,考虑把软件具有相似输入、相似输出、相似操作的分在一组。这些组就是等价划分。

2、等价类划分的目标是把可能的测试用例集缩减到可控制且仍然足以测试软件的小范围内。因为选择了不完全测试,就要冒一定风险,所以选择分类时必须仔细。

数据测试

1、对软件最简单的认识就是分为两部分:数据和程序。软件测试常用的一个方法是把测试工作按同样的形式划分。
2、对数据进行软件测试,就是在检查用户输入的信息、返回的结果以及中间计算结果是否正确。
3、根据一些关键的原则进行等价类划分,以合理减少测试用例,这些关键的原则是:边界条件、次边界条件、空值和无效数据。
4、测试边界:如果建立两个等价划分就可以找出更多软件缺陷。第一个划分包含认为应该正确的数据——在边界内部最后一两个合法的数据点第二个区间包含认为可能出现错误的数据——边界之外——一到两个非法的数据点

越界测试一般是简单地对最大值加1或者很小的数,以及对于最小值减1或者很小的数。
围绕边界条件进行等价划分,并建立测试用例是至关重要的,这是减小测试工作量最为有效的办法。

5、有些边界在软件内部,最终用户几乎看不到,但是软件测试员扔有必要进行检查,称为次边界条件,或者内部边界条件。

软件中2的幂有范围或值,是作为边界条件的重要数据。
另一个常用的次边界是ASCII字符表。

6、另一种看起来很明显的软件缺陷来源是当软件要求输入时——比如在文本框中——不是没有输入正确信息,而是根本没有输入任何内容,可能单单按了Enter键。这种情况产品说明书常常忽视
7、数据测试的最后一种类型是垃圾数据。这是失效性测试的对象。经过边界测试、次边界测试和默认值测试等通过性测试证实软件能够工作之后,就该进行垃圾数据测试了。

状态测试

1、软件状态是指软件当前所处的条件或者模式。
2、软件测试员必须测试程序的状态及其转换。
3、测试软件的逻辑流程

建立状态转换图。
减少要测试的状态和转换的数量。
怎么进行具体测试。

4.失败状态测试

竞争条件和时序混乱。
重复、压迫和重负。

第六章 检查代码

静态白盒测试:检查设计和代码

1、静态白盒测试是在不执行软件的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时候称为结构化分析。
2、进行静态白盒测试的首要原因是尽早发现软件缺陷,以找出动态黑盒测试难以发现或隔离的软件缺陷。
3、进行静态白盒测试的另外一个好处是,为黑盒测试员在接受软件进行测试时设计和应用测试用例提供思路。
4、检查代码——静态白盒测试——被证实是早期发现软件缺陷最有效的办法

正式审查

1、正式审查就是进行静态白盒测试的过程。
2、正是审查的四个基本要素:

确定问题。
遵守规则。
准备。
编写报告。

3、同事审查、走查、检验。

编程标准和规范实例

标准由4个主要部分组成:

标题。
标准。
解释说明。
示例。

通用代码审查清单

数据引用错误
数据声明错误
计算错误
比较错误
控制流程错误
子程序参数错误
输入/输出错误
其他检查

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章