虽然说开发和测试从某种意义上讲是“对立”的关系,但是早在哲学课里我们已经知道对立统一是结为一体的。所以我一直觉得开发和测试是一种互相补充,而开发人员和测试人员也传承了这一关系,他们只是站在不同的角度去维护一个产品。于是我比较习惯测试前和测试后都会征求开发人员的意见。比如我会在测试前寻问开发人员他们认为程序中需要着重测试的要点以及测试的注意点,而在测试执行后我又会主动的向他们讲述自己实际的测试情况并请他们判断是否还存在遗漏。 实践证明这样的做法非常有意义,拿近一次项目组周会时的讨论来说,考虑项目已经进行了测试用例的评审,而代码也已完成了编写,在接下去的时间里要着手执行功能测试,我向项目组的所有成员询问在执行测试阶段对于测试人员还有哪些建议和要求,其中一位开发人员非常诚恳的说,他认为一个web网站测试的重点首先应该是安全性,其次是性能,后才是功能,而他认为安全性测试在我的测试用例中只体现了部分内容,但仍有一些潜在的安全因素没有在用例中很好的体现。坦白讲真有种一语惊醒“梦中人”的感觉,虽然我也知道安全性测试的重要,但是在测试过程中我还是将功能放在第一位,多少还是忽略了安全性的测试,而这方面的知识也相对的匮乏。 会后我又找这位开发人员进行了安全性测试的讨论。总结有3点内容在平时的测试中需要注意起来。 1.权限的控制。这一点我相信大多数测试人员都很熟悉,并且会在测试用例中体现出来,但是需要提醒大家的是url作为开放的输入,我们必须考虑在修改url的前提下会不会导致权限控制出现漏洞。 2.输入代码的过滤。这一点相信大家也不陌生。如果程序未对该种情况过滤,那么整个页面的布局和安全都会受到破坏。 3.SQL注入。这一点至少对于我来说是一个比较新的概念,它通过在url中输入sql语句来攻击设计不健全的系统及其数据库,具体涉及的内容网上有很多介绍的文章,感兴趣的同学们都可以去搜索阅读。 当然除了上述三点,安全性测试涉及的内容还是有很多很多,之前云齐的文章也有提到过一点,现在想想才发现测试好比挖地雷,我们必须小心的将所有隐藏的“地雷”挖掘出来,才能让所有人安全! 很多时候,基于需求的测试和针对web特有的浏览器兼容性测试、cookie失效的验证,对于测试人员并不陌生。但实际上,与浏览器相关的测试内容远不止这些。 举一个例子来说,很多时候我们都非常明确页面上的所有入口,并对这些入口设计了大量的用例,而浏览器的地址栏却常常会被我们忽略。实际上,url的输入意义远比我们意识中的重要,忽略了url的测试,很容易造成安全上的隐患。 再进一步的说,浏览器的前进、后退、刷新按钮同样是测试人员需要关注的点。前进、后退在用户登录、注销信息的测试中应用为频繁。而刷新,往往容易被忽视,但其同样是bug的“温床”。在近的一次测试中,我遇到过在我删除某条记录系统提示删除成功后,点击“刷新”按钮,页面提示出错的情况。出现该现象的原因在于页面试图去取已删除的内容,导致出现异常。其实这个问题应该隐藏了比较久的时间,但是却一直未被发现,足可见我们都忽视了“刷新”的测试。 除了上述的内容外,我相信一定还存在很多我们在测试中忽视的内容,而这些点的补充,是我们每一个人的责任!