测试产品说明书属于静态黑盒测试。产品说明书是书面文档,而不是可执行程序,因此是静态的。
1、对产品说明书进行高级审查
测试产品说明书的第一步并不是立刻钻进去找缺陷,而是要站在一定的高度进行审查。审查产品说明书是为了找到根本性的问题、疏忽或者遗漏的地方。
这看起来更像是做研究而不是做测试,但研究的本质是为了更好的了解软件该做什么,了解了产品说明书背后的诸多为什么和怎么做,就可以更好的进行细节检查。
1.1、假设自己是客户
当软件测试人员第一次拿到需要审查的产品说明书时,最容易做的事是把自己当做客户 。研究一下客户会是什么人,可以和市场或者销售人员聊聊,了解他们对用户的认识;
如果是内部使用的产品,可以找使用他单人谈一谈。
了解客户所想是很重要的。记住,质量的定义是“满足客户要求”,测试人员必须了解并测试软件是否符合那些要求,如果熟悉软件应用领域的相关知识将会有很大的帮助。
假如什么知识也没有,如果审查产品说明书的某一部分不理解,不要假定它是对的就放过它。毕竟你最终还是要用产品说明书来设计软件测试,因此,避免不了要去了解它。
最好是现在就搞懂。如果真的发现了缺陷,不是更好吗。(在假设自己是客户是不要忘记了软件的安全性)
1.2、研究现有的标准和规范
标准和规范的差别在于程度不同,标准比规范更加严格。一般来说标准应该严格遵守;规范是可选的,但也应该遵守。也可以将标准作为规范来使用。
下面是可以考虑作为标准和规范的一些例子。但这并不是明确规定的,对具体软件是否适用需要研究。
公司惯用语和约定。如果软件视为某公司定制的,就应该采用该公司职员常用的术语和约定
行业要求。医药、公有和金融行业的应用软件有其必须杨遵守的标准。
政府标准。政府——特别是军队系统有严格的标准。
图像用户界面(GUI)。如果软件运行在Windows或者Mac操作系统下,关于软件外观和用户的感受具有公开的标准。
安全标准。软件及其界面和协议可能需要满足一定的安全标准或级别。也许还要进行独立的认证,以确保其满足必要的标准。
软件测试人员的任务不是定义软件要符合何种标准或规范,这是项目经理或者编写产品说明书的人的任务。测试人员要做的是观察,“检查”采用的标准是否正确、有无遗漏。
在进行软件的确认与验收时,还要注意是否与标准和规范相抵触,把规范和标准当做产品说明书的一部分。
1.3、审查和测试类似软件
了解软件最终结果的最佳方法是研究类似软件,例如竞争对手的产品或者开发小组的其他类似产品。研究类似软件有助于设计测试条件和测试方法,还可能暴露出意想不到的潜在问题。
在审查竞争产品是要注意的问题包括。
规模。软件的功能是强大还是单一?代码量多还是少?这些差别与测试有关吗?
复杂性。软件简单还是复杂?这会影响测试吗?
测试性。是否有足够的资源、时间和经验来测试软件?
质量和可靠性。软件是否完全满足质量要求?可靠性高还是低?
安全性。竞争对手的软件安全性(不管宣传还是实际的)和自己的比较如何?
最重要的是动手实践,所以拿到类似的软件要尽量试、使用它、疯狂实验、追根求底,这些可以为后面仔细审查产品说明书积累大量的经验。
记住要阅读竞争对手软件的用户评价等文章。这对安全方面的问题特别有帮助,毕竟我们测试偶然使用软件不一定能发现安全方面的问题,但用户经常使用这些问题肯定会引起关注。
2、对产品说明书低层次测试技术
完成产品说明书的高级审查之后,就可以很好的了解产品一级影响其设计的外部因素。有了这些信息,就可以在更低的层次详细测试产品说明书了。
2.1、产品说明书属性检查清单
可称为“一字不漏”,深思熟虑的优秀产品说明书,一般具有8个重要的属性。
完整。是否有遗漏和丢失?完全吗?单独使用时是否包含所有内容
准确。 既定解决方案正确吗?目标定义明确吗?有没有错误
精确、不含糊、清晰。描述是否一清二楚?是否有单独的解释?容易看懂和理解吗?
一致。产品功能的描述是否自相矛盾,与其他功能是否冲突?
贴切。描述功能的陈述是否必要?有没有多余信息?功能是否符合原本的客户要求?
合理。在规定的预算和进度下,以现有的人力、工具和资源能否实现?
代码无关。产品说明书是否坚持定义产品,而不是定义软件设计、架构和代码?
可测试性。功能能否测试?提供给测试人员用来验证操作的信息是否足够?
在测试产品说明书、阅读文字、检查图标时,要仔细对照,看看他们是否有上述的属性,如果不具备,那就是发现了需要指出的缺陷。
2.2、产品说明书用语检查清单
在产品说明书可能会有一些模糊性语言,这时候要仔细审查它们在上下文中是怎么使用的,可能会有缺陷。
总是、每一种、所有、没有、从不。如果看到这种表示绝对或者肯定的描述,需要确认是这样的。我们要考虑违反这些情况的用例
这样、因此、明显、显然、必然。这些意图说明你接受假定情况,不要中了圈套。
某些、有时、常常、通常、经常、几乎。这种话太过模糊。“有时” 发送作用的功能是没发测试的。
等等、诸如此类、以此类推、例如。以这种次结束的功能清单无法测试。功能清单要绝对或解释明确,一面让人对功能清单内容产生迷惑。
良好、迅速、链家、高效、小、稳定。这种无法量化的用语,它们无法测试。如果说明书中出现这些用语,必须进一步准确定义其含义。
处理、进行、拒绝、跳过、排除。这些用语可能会隐藏大量需要说明的功能。
如果……那么……(没有否则)。对于有 “如果……那么……”而缺少“否则”结构的陈述。要想“如果 ”没有” 发生会怎样
3、没有产品说明书怎么办
进行探索性测试。’把软件当做产品说明书来对待。系统性的了解软件的功能,记录软件的执行情况,详细描述功能。比如所有的菜单、输入框。根据了解的东西
理出一个大概的测试内容。
哪怕没有产品说明书,但总有人知道产品是什么样的,比如开发、产品、销售。可以去找他们沟通了解。记录收集到的信息并进行整理,再把整理出出的测试内容给
他们进行补充细节。