某公司开发基于Web的招聘系统,采用Java EE系统架构。系统提供用户注册、职

最全题库2022-08-02  38

问题 某公司开发基于Web的招聘系统,采用Java EE系统架构。系统提供用户注册、职位设置、接受应聘者的申请和评估录取应聘者等功能。接受申请主要是验证应聘者提交的姓名、地址、照片、简历和预申请职位等信息的完整性,并发送给应聘者相关通知;评估应聘者主要是根据部门经理设置所需职位,对已经受理的申请进行资格审查,发送给应聘者录用与否的相关决策信息。    系统要支持:    在50个用户并发时,主要功能的处理能力至少要达到5个请求/秒,平均数据量12KB/请求;    用户可以通过PC、移动设备上的不同操作系统和浏览器进行访问。1、简要叙述招聘系统链接测试的主要测试内容。2、简要叙述为了达到系统要支持的(2),需要进行哪些兼容性测试,并设计一个兼容性测试矩阵实例。3、在满足系统要支持的(1)时,计算系统的通信吞吐量。4、系统实现时,对用户的登录判断所用的动态SQL语句如下:  "SELECT*FROM Users WHERE User_ Name='"+ strUserName+"'AND Password='"+ strPassword+"';"    该SQL语句是否能防止SQL注入?请设计一个测试用例,以测试SQL注入,并说明防止SQL注入的方法。

选项

答案

解析 1、招聘系统的链接测试主要测试如下3个方面: 1)每个链接是否能够链接到目标页面  2)被链接的页面是否存在 3)是否存在孤立页面2、招聘系统的兼容性测试:  1)平台兼容性和浏览器兼容性。  2)兼容性测试矩阵示例如下:3、通信吞吐量:P=N(并发用户的数量=50)×T(每单位时间的在线事务数量=5)×D(事务服务器每次处理的数据负载=12KB/s)=50×5×12=3000KB/s。4、该SQL语句不安全,容易造成SQL注入。    设计测试用例:    [注:设计类似如下用例的一个即可,其中应包含SQL功能符号,使得该SQL语句变得不符合设计意图即可,例如,包含了“--”或“’,DROP……”等]    参考用例1:    strUserName:Zhang'--strPassword:San    [注:上述用例将使得该SQL语句变为:    SELECT*FROM Users WHERE User_Name='Zhang'--AND Password='San';]    参考用例2:    strUserName:Zhang'or'a'='a    strPassword:San'or'a'='a    [注:上述用例将使得该SQL语句变为:    SELECT*FROM Users WHERE User Name='Zhang'or'a'='a'AND Password='San'or'a'='a':]    防止SQL注入的方法主要有:拼接SQL之前对特殊符号进行转义,使其不作为SQL语句的功能符号。 1、本题考查Web应用测试相关内容。Web应用测试既要关注类似传统软件系统测试的多个方面,如性能测试、压力测试等,还需要测试链接、浏览器、安全等多个方面。    本问题考查链接测试的主要内容。链接测试是Web应用功能测试的重要内容,测试时需要测试所有页面的外向链接、内部链接、页面中链接跳转、发送Email等功能性链接、是否存在孤立页面、链接的目标是否存在等等。链接测试主要测试如下3个方面:    1)每个链接是否能够链接到目标页面;    2)被链接的页面是否存在;    3)是否存在孤立页面,即无法通过应用主要入口页面链接到,而只有通过特定URL才能访问到的页面。2、本问题考查Web应用兼容性测试的内容。Web应用的兼容性是Web应用可用的重要方面,Web应用具有支持多渠道访问的特性,设备、平台、浏览器等的开发商不同、版本不同,会影响Web应用的可用性、可访问性甚至功能性等诸多方面。因此,兼容性测试是Web应用测试的重要方面。    Web应用兼容测试是测试Web应用在各种硬件、软件、操作系统、网络等不同的环境下,发现程序运行时出现的错误。常见的Web应用兼容性测试有平台的兼容性测试、浏览器兼容性测试、分辨率测试、连接速度测试、打印机测试、数据库兼容性测试和应用软件之间的兼容性测试。   本系统用户可以通过PC和移动设备的不同操作系统和浏览器进行访问,涉及到PC和移动设备使用多种操作系统,如Windows的多种版本、Linux、Unix、Android、iOS,而各种系统上又有多种可用的浏览器,如IE的多种版本、Firefox、Google Chrome、Safari等,因此需要针对不同设备,进行相应的操作系统平台和浏览器的兼容性测试。    兼容性测试矩阵是进行兼容性测试的常用工具,将操作系统平台和浏览器为矩阵的两维,对相应组合进行测试。3、本问题考查Web应用系统的性能指标计算。通信吞吐量,设定如下指标参数:    N:并发用户的数量;    T:每单位时间的在线事务数量    D:事务服务器每次处理的数据负载    P:系统的通信吞吐量    有如下计算公式:    P=N×T×D    本题中系统要求支持的(1)中给出50个用户并发,即N=50;主要功能的处理能力至少要达到5个请求/秒,即T=5;平均数据量12KB/请求,即D=12KB/s。    则:通信吞吐量P=50×5×12=3000KB/s4、本问题考查Web应用安全性方面。SQL注入是Web应用安全性测试的重要方面。    许多Web应用系统采用某种数据库,接收用户从Web页面中的输入,完成展示相关存储的数据(如,检查用户登录信息)、将输入数据存储到数据库(如,用户输入表单中数据域并点击提交后,系统将用户名密码等注册信息存入数据库)等操作。在有些情况下,将用户输入的数据和设计好的SQL框架拼接后提交给数据库执行,就可能存在用户输入的数据并非设计的正确格式,就给恶意用户提供了破坏的机会,即SQL注入。恶意用户输入不期望的数据,拼接后提交给数据库执行,造成可能使用其他用户身份、查看其他用户的私密信息,还可能修改数据库的结构,甚至是删除应用的数据库表等严重后果。因此需要在测试阶段进行认真严格的测试。    本系统实现时,对用户的登录判断所用的动态SQL语句是:"SELECT*FROM Users WHERE User_Name='"+strUserName+"'AND Password='"+ strPassword+"';"    采用拼接字符串方式,无法防止SQL注入。    例如strUserName:'Zhang'--,strPassword:San,则该SQL变为:    SELECT*FROM Users WHERE User_ Name='Zhang'--AND Password='San';    “--”是SQL中注释符号,其后的内容为注释,这样上述语句中“--”之后的内容变为注释,只要用户表中有用户名为Zhang,系统就允许用户以Zhang的身份登录,并以Zhang的身份做任何可做的操作。    再比如strUserName:Zhang'or'a'='a,strPassword:San'or'a'='a,则该SQL变为:    SELECT*FROM Users WHERE User_Name='Zhang'or'a'='a'AND Password='San'or'a'='a';    因为'a'='a'条件总是成立,因此,SQL执行结果包括用户表中所有行,系统就允许以第一行的身份进行登录。    更为严重的情况下,如果用户输入strUserName:Zhang';DROP table users_details;'--'以及任何字符串作为strPassword,该SQL就变为:   SELECT*FROM Users WHERE User=Name='John';DROP table users_details;'--'AND Password='San;    这就造成数据库中users_details表被永久删除。    防止SQL注入的方法主要有:拼接SQL之前对特殊符号进行转义,使其不作为SQL语句的功能符号。    SQL注入在使用SSL的应用中仍然存在,甚至是防火墙也无法防止SQL注入。因此,在测试Web应用时,需要认真仔细设计测试用例,采用Web漏洞扫描工具等进行检查,以保证不存在SQL注入机会。
转载请注明原文地址:https://tihaiku.com/congyezige/2416302.html

最新回复(0)