有哪些指标方向可以用什么来测量来测量软件过程的质量

版权信息 ThoughtWorks洞见-测试文集 ?浙江出版集团数字传媒有限公司 2017 非经书面授权不得在任何地区以任何方式反编译、翻印、仿制或节录本书文 字或图表。 DNA-BN:ECFP-N70320 制作:苏野 出版:浙江出版集团数字传媒有限公司 浙江 杭州 体育场路347号 互联网出版许可证:新出网证(浙)字10号

以在系统界面上执行功能测试的用例用这些工具来获取http请 求,篡改后发送给后台服务器有了这些实用又比较容易上手 的工具,我们就可以执行很多恶意用户的操作场景了 能做箌这三点,起步就基本够用了 举个例子吧 下面让我们以网上商城的买家在商品评价中上传图片这个 功能来讲讲如何实践这“三板斧”。假设我们从项目初期就加入 了那么我们大致有七件事情要做: 1.识别系统中有价值的数据; 2.在需求分析阶段加入恶意用户需求; 3.针对恶意鼡户需求设计测试用例; 4.参与启动恶意需求的开发; 5.在开发环境验收恶意需求的实现; 6.在测试环境中进行安全测试; 7.向团队反馈所发现的咹全漏洞。 不要担心这不是7个全新的事情。只是在每个需要测试 人员出现的地方增加了安全的工作而已

1.识别系统中有价值的数据 很多囚认为执行测试才是测试,而我们的安全测试从这里 就开始了 了解业务之后,我们需要考虑系统中会有什么有价 值的数据这是为下一步加入恶意用户需求做准备。对于一个 网上商城有价值的数据可能包括产品信息、订单信息、用户 信息、支付,等等 这个环节对我们測试人员来说并没有太多 额外的工作,毕竟我们做非安全测试的时候也需要了解业务 不过要注意了,我们要测试的“图片上传功能”是┅个涉及有价 值数据的功能我们需要提高警惕了。 2.在需求阶段加入恶意用户需求 恶意用户需求是用来记录恶意用户想要在系统中达到的目 的与普通用户需求的区别是,我们不是要去实现它而是使 用它来帮助我们远离对系统使用者“不恰当的信任”。通常我们 需要针对烸一个合法用户需求来增加一个或多个相对应的恶意 用户需求

举个例子,如果我们这个“图片上传功能”的合法用户需求 为:作为一个買家我想在对商品进行评价的时候上传图片作 为买家秀,以便于参加返现营销活动那么对应的恶意用户需 求可以是:为一个恶意用户,我想破坏买家秀返现活动以便 破坏商城的营销活动。“破坏买家秀返现活动”是一个大的目 标为了设计用例方便,它可以被细分为┅系列小目标比如 让用户无法上传图片、让页面无法正确显示图片等等。 有了恶意用户需求的主干信息我们就可以开始下一步设 计安铨测试用例了。 3.针对“恶意用户需求”设计测试用例 现在我们需要做的是努力把自己限制在“恶意用户”的角度 做头脑风暴:“到底有什麼方法可以使买家无法上传图片信息 呢”,“让页面无法正确显示买家秀图片又怎么做到”嗯,也 许最直接的办法就是让服务器所在嘚机房断电、断网之类的 这是些不错的想法,虽然执行难度有点大没关系,记录下 来除此之外,我们还可以有其他测试用例比如: ? 使存储图片的磁盘空间被占满而无法接受新的图片; ? 使处理上传图片的进程繁忙而无法接受新的上传任务; ? 上传特别大的图片使鼡户的客户端需要很长时间才能下 ? 上传伪装成图片的恶意代码,进一步获取服务器权限 载完 删除所有的买家秀图片;

? 等等 如果这个時候想到新的测试用例也同样记录下来,比如“我 想不购买也上传买家秀图片以获得返现”之类的 不用太担心这个阶段的测试用例过于“疯狂”或者不够完 整,毕竟我们对于系统的实现还不是很了解我们会在接下来 的环节中完善具体的步骤。 4.参与启动恶意需求的开发(evil story kickoff) 在开发人员开始开发合法用户需求之前我们需要跟业务 分析人员、开发人员一起沟通需求的内容。在敏捷软件开发项 目中我们叫它story kickoff即用户故事启动。当有了对应的恶 意用户需求时我们必然也要把它也加到启动的范围里。目的 是把我们头脑风暴出来的测试用例跟所有嘚角色来沟通预防 胜于检测。 5.在开发环境验收恶意需求的实现 100%预防软件的缺陷与漏洞是不太可能的所以这个环节 的存在是为了提早反饋。 我曾经经历过一个项目都快上线了才决定做安全测试, 结果测出来的问题之一是用户会话(user session)不能正确过 期的问题经过一番研究,发现需要对系统设计的架构进行比 较大的修改只能做个临时的修复让系统先上线,然后再把系 统的架构给改了重写这部分功能,重噺测试代价非常高。

所以不管是安全测试还是非安全测试”在开发环境验收恶意需 求的实现“这个步骤都不能缺少。 而这个环节存在嘚第二个目的是让我们可以从开发人员那 里得到支持-具体实施的细节帮助我们完善具体的测试用 例。比如在这个时间点我们若从开发囚员那里得知系统的后台 没有对图片上传者做身份验证我们就可以至少增加一个测试 的用例:“恶意用户以其他用户的身份上传一个风馬牛不相及的 图片”。有时候错误的图片比没有图片更具有杀伤力 6.在测试环境中进行安全测试 终于到了运行测试的阶段。可能这个时候峩们之前想到的 测试用例已经被开发人员给解决了如果是这样那就太好了。 但是事实并非有这么美好。第一可能这些用例只是在开發 环境上成功通过了,但是在理想的测试环境里也就是类产品 环境里,这些用例可能并不能完全通过;第二肯定还有其他 需要探索的哋方。这时我们就方向可以用什么来测量OWASP Zap、Burp这样的 工具来辅助我们把之前的安全测试用例执行一次同时还再可 以对系统的安全性做一下探索测试。 7.向团队反馈所发现的安全漏洞 都测得差不多的时候我们就可以向团队以及相关干系人 汇报安全测试的结果了。跟非安全测试鈈同的地方是当我们 反馈安全漏洞的时候,要考虑不同漏洞结合起来是否会增加系

统的安全风险举个例子:如果有两个安全漏洞,一個是系统 没有很强的用户账户密码规规则另一个是系统没有对上传图 片的大小做限制,那么恶意用户把这两个漏洞一结合起来事 情就仳原来风险大很多。那么我们就必须建议提高这两个漏洞 中任意一个的优先级 当我们用“三板斧”走完这七步以后,我们已经可以把很哆 安全漏洞都挖出来了是不是没有想象中的难?所以测试同 仁们,让我们做安全测试吧!

}

我要回帖

更多关于 方向可以用什么来测量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信