Login System

出处

Solution

本题属于“Testing a Real World Software”,我们按照“The Rules”给出的模版进行分析:

(1) Normal cases

正常情况下,用户输入正确的用户名和密码,系统就必须允许用户访问。如果用户名或密码有误,系统应该拒绝用户访问。这是最基本的功能,应该归类于正常情况的测试范畴。具体测试时,可以利用脚本生成许多用户,然后利用用户名和密码测试登陆。

(2) Extreme cases

在极端情况下,需要考虑某用户同时登陆的情况,例如,用户打开了多个网页几乎同时尝试登陆,或者用户从网页或手机App同时尝试登陆。系统需要考虑:从安全性而言,是否能够允许用户多处登陆。如果不允许,应该采用什么机制避免这样的情况。同时,在极端情况下,系统必须考虑用户多次尝试密码,但无法成功的情况。“系统必须阻止类似行为,防止黑客采用暴力破解的方式获取用户密码。

(3) Invalid case

用户名可能是邮箱形式,如果用户输入格式不对,可以提示用户输入邮箱。此外,还应该考虑用户恶意输入超长字符串的情况,这样可能造成栈溢出,对后台产生影响。其次,应当检测用户名密码是以何种方式传到服务器端的。这里需要考虑用户账号密码的安全性,还需要考虑到如果用户名直接以明文方式内嵌在URL中跳转到对应页面,用户可能特意输入一个带有特殊意义的用户名,使得服务器在解析URL时跳转到一个不应该出现的页面。