摘要:
有些人以为探究性测验是一项低成本思维的使命,测验,
人员仅仅阅读使用程序,看看会呈现什么。
可是咱们不应该忽视这样做,
由于有时它确实提醒了一些风趣的的过错,
可是测验人员在探究使用程序时能够遵从一些技能和模式。
让咱们来看一个在探究性测验中运用的两步步进程。

我以为软件工程中最被低估的测验类型是探究性测验。有些人以为这是一个不费力的使命,测验人员仅仅浏
览使用程序,看看会呈现什么。

咱们都知道探究性测验不是暂时测验,这意味着需求遵从一些技能和模式。当我对一个阅历了改动的软件应
用程序进行探究性测验时,我运用这样一个两步进程。

进程1:在不知道发生了什么改动的情况下挨近测验中的使用程序。

这将保证现有行为不受影响,要害途径功用不会改动。如果您的的测验失利,它将提醒使用程序现已阅历的变
更,这或许是预期的行为,也或许是在完成改变时引入的潜在缺点。

可是,为了做到这一点,需求有一个要害途径产品方案,这样我我就能够在每次做出更改时参考它。并且这个
产品方案需求由整个团队来更新和维护。

进程2:在彻底了解预期行为之后,挨近被测验的使用程序。

这需求对用户需求文档进行彻底的剖析。测验人员需求与工程和产品团队成员密切合作,以了解影响的领
域,这反过来有助于发现边际案例。这也需求彻底了解端到端的产品行为,最重要的是集成点。

让咱们看一个例子来更好地了解探究性测验的重要性以及上述两种技能是如何有益的。

假定咱们有一个允许用户上传文档的软件使用程序,它是运用多层架构完成的:

表明层-协助用户上传、替换、删去文档以及从服务器上的文件夹下载文档的GUI

使用层一运行业务逻辑,如验证文件类型、验证用户权限等”。

数据层-存储上传的文件、审计条目等。

该使用程序目前仅允许具有特定人物A的用户上传pdf文件。产品团队要求的更改是不再允许具有人物A的用户
下载文件,并将增加一个新人物,人物B,它能够上传jpg和png文件#以及pdf文件

在这个改动完成之后,就由测验人员来做探究性的测验了。不在进程1中,在不知道发生了什么改动(上传jpg或
png文件的才干)的情况下,测验人员最初会尝试上传pdf文件牛,用另一个pdf文件替换它们,删去,并以人物a的用户
身份下载上传的pdf文件。因此,当测验人员尝试下载pdf文件时,该测验会失利,由于该人物的这一更改会删去该
才干。完成的改变不应该中止任何其他流程。

这种方法将保证现有的要害途径功用不受影响,并且还提醒了一个不允许测验人员行进的改变,提示他们前
进到进程2。

到现在为止,你或许以为这些是每个测验人员在测验使用程星序时一般采纳的进程。探究性测验在哪里呈现?

假定在执行上述进程时,您拍照了一个截图,该截图被保存为jpg格局,文件名中包含当前日期和时间戳。由
于日期和时间格局的原因,它有特别的字符和空格,当这个文件上传时,它将无法通过测验,由于文件名中的空格
将被转换为”%20″,代码或许无法处理它。

这个事实不会在测验方案或检验规范中提及;只有从不同的视点探究使用程序,才干发现这个问题。

当你试图用自己的方式解决问题时,你会发现一个全新的视见角。其他人或许现已用任何图像文件测验了这个
进程,可是由于一个测验人员运用了一个截屏,它暴露了这个问题。

文件的可用性或许是下游使用程序的要害要求。这个问题也或许在线集成测验进程中被发现,集成测验是进行
探究性测验时要记住的另一个重要测验。保证记住一切的集成点,并从这些点提取或向这些点推送正确的数据对错
常重要的。

在这种情况下能够完成的另一个测验是负载测验。使用程序还应该处理试图下载同一文件的并发用户,。一个
探究性的测验人员还应该有才干在真实的场景中描绘使用程序。

探究性测验是关于以不同的心态,作为不同的用户来考虑,并且在考虑用例的一切或许性的同时检查使用程
序的一切层。

有几个东西能够用来遵从这项技能。我一向热衷于制作思维哇导图来表明使用程序的端到端功用。它协助我无
缝地找到有影响的范畴,防止因错综复杂而陷入困境,疏忽全局。

此外,探究性测验并不总是与手动测验相关联。探究性测验我的成果能够提醒需求自动化测验的范畴。

为了有效地执行探究性测验,团队的每个成员都遵从一套测验进程是是很重要的。每个人都需求兼任测验的职
责,在软件开发生命周期的某个时间进行探究性测验,从需求收集开端,一向到改变发布到出产。