移动应用测试-质量属性

2字数 3178阅读 171

我们将从检查功能测试开始,关注安全性,互操作性,兼容性,准确性和适用性。我们将讨论用于创建功能性移动测试的各种传统和非传统技术。接下来,我们继续进行非功能性测试,特别是性能,可用性,可靠性和可移植性。

简介

让我们首先澄清功能测试和非功能测试。想一想的一种方法是语法。考虑一下ATM。 ATM可以让您做什么?它可以让您提取现金,存款,平衡查询和转移资金。在语法上,这些都是动词短语。提取现金。存款。做平衡查询。转移资金。那里有一个动词和一个名词,形成动词短语。

很快。可靠。容易。那些是副词。所以,如果你正在考虑一个系统而你正在考虑它的作用,动词短语,这是功能性的一部分。如果你正在思考它是如何做到的,那么副词和形容词就是非功能性的。

重要的是要记住,没有适用于所有应用程序的质量特性的魔术列表,或者对所有应用程序同等重要。正如我前面提到的,对于银行应用而言,安全性是大问题。

参考资料

功能测试

图片.png

功能测试是关于应用程序的功能。它主要关注四个主要特征:

  • 准确性;
  • 适用性;
  • 安全;
  • 互操作性。

准确性测试检查应用程序是否真正为您提供了正确的答案。例如,对电子商务应用程序进行的一项精度测试将检查运费的错误计算。

适用性测试检​​查应用程序是否提供了它应该提供的功能。应用程序可以准确地工作但不适合,因为它没有执行您需要执行的操作的功能。例如,航空公司应用程序的一项适用性测试会检查它是否不仅可以搜索航班,还可以在您找到航班后完成预订。

安全测试检查应用程序是否可以拒绝未经授权访问数据和功能,同时允许授权访问数据和功能。例如,药房应用程序的一项安全测试将确保每个客户都可以访问他们自己的处方数据,但不能访问任何其他客户的处方数据。

互操作性测试检查应用程序是否与其使用或使用它的其他应用程序正常工作。例如,餐馆定位应用程序的一个互操作性测试,确保您可以点击餐馆的电话号码,这个动作将正确地导致电话应用程序拨打该餐厅的电话号码。

大多数测试人员在考虑进行功能测试时会想到准确性和适用性的测试。

安全漏洞往往是被动的而不是主动的。我所说的安全漏洞是被动的,是指某人 - 无论是黑客,犯罪分子,心怀不满的工作人员还是安全测试人员 - 都必须尝试利用漏洞来让安全故障发生。对比一个简单的准确性错误,它会给任何人错误的答案,无论是否有意导致失败。因此,重要的是要考虑安全风险可能存在的方式,以便您可以测试它们。让我们来看看其中的一些风险。

首先,移动应用通常是通过网络访问信息,这可能涉及通过公共Wi-Fi网络发送和接收信息。这样的公共网络具有内在的风险,因为犯罪分子很容易监控它们的流量。因此,发送到应用程序或从应用程序发送的任何敏感数据都需要加密。

移动设备本身受到攻击,因为人们会下载并安装应用程序而不会提出明显的问题:“谁创建了这个应用程序?”现在,大多数人,在使用他们的PC时,要知道他们不应该打开他们不认识的人发送的附件,但同样的人会下载并安装由他们不认识的人创建的应用程序。任何这样的应用程序都可以想象成为特洛伊木马。

此外,人们并不总是在他们的移动设备或其PC上建立良好的安全性。移动设备更容易丢失。

当人们用手机换另一部手机时,他们可能会对新手机过于兴奋而不记得擦拭旧手机,因此可能会留下私人和机密信息。即使它被擦除,你也要问,“擦除的安全级别是多少?”只是删除一些内容是不够的,只是覆盖一次内存位置通常不足以使其无法擦除。

移动应用程序也带来了特殊挑战,因为它们有时会使用许多不同的通信渠道。其中一些本质上是不安全的,或者以不安全的方式易于使用。对于大多数PC和笔记本电脑而言,唯一固有的不安全通道是Wi-Fi。

但是,移动应用程序除了可能不安全的Wi-Fi之外还使用其他渠道。例如,假设您通过短信与某人发短信。这是不安全的,因为您的网络运营商可以访问这些消息。现在,一个有安全意识的人会说,“不,我从来没有这样做过。我使用Telegram应用程序。“好的,但你正确使用它吗?默认情况下,如果您与Telegram中的某人开始聊天,则表示不安全。您必须启动加密聊天,并且当您开始聊天时,告诉应用程序在您结束聊天时让线程自毁,以使消息真正安全。特别指出,微信的功能过多,已经爆出多起诈骗与安全事件。

所以,仅仅因为某人使用具有安全性的软件并不意味着他们以一种安全的方式使用它。例如,很多人使用的密码非常简短或明显。几乎所有应用程序的用户都不会拥有相同的安全思维。不仅仅是用户可能不安全。开发人员有时也这样。因此,在测试应用时,请查看敏感信息存储在设备上或存储在应用中的情况。

最后,您可能想要考虑一下您的应用程序在越狱后的iPhone行为,或root后的Android手机,或等效修改后的其他型号的手机。这可能会改变您应用的安全行为。现在,你的经理们可能会说,“嘿,人们不应该这样做,设备供应商也不支持,所以我们为什么要担心会发生什么?”我想这个问题的答案取决于风险与您的应用有关的安全漏洞。

让我们看一下安全测试的开源思想库:OWASP。
OWASP是开放式Web应用程序安全项目,他们的网站是安全意识的宝库, OWASP专注于创建与安全相关的资源,而不是工具,而是信息。 在OWASP网站上,可用的资源是主要移动应用程序安全风险列表。比如:

  • 弱的服务器端控件:当服务器端通过本机应用程序或混合应用程序信任身份验证时,就会出现这种情况。例如,如果本机应用程序与服务器建立连接,则服务器端软件可能会认为该用户是应用程序声称的用户。这可以很容易地在设备端被击败,或者通过直接与服务器呈现给更广阔世界的接口交互来绕过。

  • 设备或服务器端的不安全数据存储:这是另一个主要风险。正如我之前提到的,设备丢失了,服务器被黑了。

  • 不安全的数据传输:此处的问题示例包括私有识别信息的不正确或弱加密,或者在您应该或以弱的方式使用这些渠道时不使用HTTPS或FTPS等安全协议。

  • 意外数据泄漏:例如,必须解密加密数据才能使用它 - 假设我们在设备上存储有关用户病历的私人信息,我们允许用户添加,修改和删除信息。必须解密该信息以便向用户显示。如果该信息存储在临时位置,并且可以访问临时位置,则可能再次在服务器端或客户端导致数据泄漏。

  • 弱的身份验证和授权:身份验证问题可能导致使用移动应用程序的人不是我们认为正在使用移动应用程序的人。事实上,其他一些人设法掌握了这个人的证书。授权问题可能导致某人能够访问他们实际上无法访问的功能和数据,或者在访问被撤销或过期后保留访问权限。

  • 加密失败:这里的一个示例问题是,使用较弱的加密算法(可能出于向后兼容性或速度的目的)会使应用程序容易受到攻击。即使是强大的算法也可能因使用不良密码而变弱。

  • 客户端注入:这是攻击者强制或欺骗应用程序使用专门用于劫持应用程序本身的数据。这可以用于例如将个人识别信息从设备上载到因特网上的某个目标数据存储库,使用该应用程序作为不知情的利用工具。

  • 通过不受信任的输入做出无效的安全决策:当您的应用具有其他应用可访问的界面时,可能会出现这些问题。如果攻击者可以弄清楚如何利用这些界面,他们可以强制您的应用程序执行操作或泄露敏感信息,而无需用户知道这种情况。例如,使用特洛伊木马类型下载的应用程序可能会发生此类攻击。

  • 不正确的会话处理:大部分互联网都运行在所谓的无状态协议(如SOAP和HTTP)上。然而,人们通过认证和接受授权的过程来执行敏感活动,这需要一个状态的概念。例如,可以通过cookie或其他令牌处理状态信息,但是如果不能安全处理,这些cookie和其他令牌可以泄露给攻击者,从而允许攻击者像执行身份验证一样执行操作。

  • 缺乏二进制保护:当有人获得您的应用程序的二进制文件并设法对其进行反向工程时,可能会发生这种情况。这可能是为了窃取算法,产生应用程序的淘汰,或者弄清楚如何访问应用程序使用的敏感信息。

推荐阅读更多精彩内容