现在我正在为django应用程序编写测试,这是一个非常令人困惑的任务。因为我是为其他人工作,所以我需要在我的测试中有完整的测试用例。我有些疑问,请帮帮我。
在前端,我有一个html输入,它具有number
和label frequency
类型。
在后端,我将使用以下方法读取频率字段中的值。
freq=request.POST['frequency']
在这里,我还没有考虑过频率字段具有无效值的测试用例(即字符而不是数字)。
是否有必要考虑上述测试案例?
因为在前端,它已经被限制在数字输入,因此用户将不允许输入字符。
重要的是,我正在做白盒测试,而不是黑匣子测试。
发布于 2018-04-10 06:43:17
无论前端的测试结果如何,后端都应该分别进行测试。最主要的原因是安全。很好,您已经测试了前端只能发送到后端的数字,但如果有人故意使用拦截工具和伪造请求发送到您的后端,并将号码更改为任何其他顽皮值呢?这可能会导致应用程序中的错误,并可能公开敏感信息。这只是一个例子,但还有更多,而不仅仅是关于输入。仅在应用程序的前端部分进行测试验证是不够的。
发布于 2018-04-10 10:40:43
如果您负责测试整个解决方案,那么您必须考虑组成该解决方案的所有组件。如果您只负责后端测试,那么您应该专注于后端,而不关心任何集成方面。在后一种情况下,让负责集成级别测试的人员感到头疼。
发布于 2018-04-10 11:46:15
简短的回答是肯定的。
之所以回答是肯定的,是因为对任何有一点点知识的人来说,绕过前端验证并将无效数据发送到后端是微不足道的。它可以通过内置到每个浏览器中的工具来完成,更不用说任何代理工具了。
通常情况下,来自系统前端的任何数据都是不可信的,无论您正在执行的前端验证是什么,都应该在后端进行检查。
这可能是防止应用程序中的安全问题的最简单方法之一,但也是最被忽略的方法之一。如果不测试后端和前端的输入验证,我建议您浏览一下OWASP站点,特别是前10位,以了解可能发生的问题。
(我不属于OWASP。我认为它们是web测试人员的重要参考)
https://sqa.stackexchange.com/questions/33019
复制相似问题