阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】 某证券交易所为了方便提供证券交易服务,欲开发一个基于Web的证券交易平台。其主要功能包括客户开户,记录查询、存取款、股票交易等。客户信息包括姓名、.Email(必填且唯一)、地址等;股票交易信息包括股票代码(6位数字编码的字符串)、交易数量(100的整数倍)、买/卖价格(单位:元,精确到分)。 系统要支持: (1)在特定时期内3000个用户并发时,主要功能的处理能力至少要达到128个请求/秒,平均数据量2KB/请求; (2)页面中采用表单实现客户信息、交易信息等的提交与交互,系统前端采用HTML5实现。
问答题
在对此平台进行非功能测试时,需要测试哪些方面?
【正确答案】正确答案:性能测试、负载测试、压力测试、并发测试、配置测试、可靠性测试、容量测试、失效恢复测试、链接速度测试等。
【答案解析】解析:本问题考查Web应用非功能性测试的内容。题目背景是股票交易,属于交易密集型的应用。题目还涉及到特定时期内3000个用户并发,并且处理能力至少要达到每秒128个请求,所以需要测试与并发能力相关的因素,即对性能、负载、压力、并发、配置、可靠性、容量、失效恢复、链接速度、兼容性等方面进行测试。
问答题
在满足系统要支持的(1)时,计算系统的通信吞吐量。
【正确答案】正确答案:通信吞吐量:P=N(并发用户的数量=3000)×T(每单位时间的在线事务数量=128)×D(事务服务器每次处理的数据负载=2KB/s)=3000×128×2=768000KB/s=750MB/s。
【答案解析】解析:本问题考查Web应用的性能指标计算。通信吞吐量的计算公式为: P=NxTxD 其中参数: N:并发用户的数量 T:每单位时间的在线事务数量 D:事务服务器每次处理的数据负载 P:系统的通信吞吐量 本题中系统要求支持的(1)中给出3000个用户并发,即N=3000;主要功能的处理能力至少要达到128个请求/秒,即T=128;平均数据量2KB/请求,即D=2KB/s。 则:通信吞吐量P=3000x 128x2:768000KB/s=750MB/s。
问答题
表单输入测试需要测试哪几个方面?
【正确答案】正确答案:表单输入测试需要验证:输入域、错误输入是否有错误提示、必填项和选填项。
【答案解析】解析:本题考查表单测试相关内容。表单(Form)在Web页面中用来提供给用户填写信息,从而获得填写的相关信息,实现用户和系统之间的交互。本系统页面中采用表单实现客户信息、交易信息等的提交与交互。进行表单测试时,需要对表单输入进行验证,包括输入域、错误输入时是否有错误提示、必填项和选填项等方面的验证。
问答题
(1)针对股票代码:111111、数量:10万、当前价格:6.00,设计4个股票交易的测试输入。 (2)设计2个客户开户的测试输入,以测试是否存在XSS、SQL注入。
【正确答案】正确答案:(1)测试一:任一标准等价类测试输入,满足股票代码为11 11 11,交易数量为100整数倍且小于等于10万,买/卖价格为包含两位小数的正数,如“11 11 11,300,6.78”。 测试二至测试四:分别为任一健壮等价类测试输入,即每个输入有一个无效数据,其余输入为有效数据。如“11111A,300,6.78”“111111,301,6.78”“111111,300,6.789”。 (也可以采用边界值分析法来设计测试用例,这样测试二至测试四需要选择一些边界上的值,比如交易数量取0、100、99900、100000、100100等情况。) (2)测试一:其中一字段包含任何HTMK,如<HTML>,或任何脚本如<SCRIPT>; 测试二:其中一字段为:任何包含SQL,功能符号测试是否使SQL改变为不符合设计意图即可,如包含‘OR.、’一、‘OR‘1’=‘1’等。
【答案解析】解析:本题考查Web应用测试的输入,包括输入的不同情况、安全性方面的SQL注入和XSS跨站攻击。 (1)针对股票代码:11 11 11、数量:10万、当前价格:6.00,设计4个股票交易的测试输入,即包括对股票代码为6位数字编码的字符串、交易数量题目要求为100的整数倍、交易价格单位为元(精确到分)。对输入不同情况,可以采用等价类划分或边界值分析法等设计测试输入。 等价类划分法是把所有可能的输入数据,即程序的输入域划分为若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。其中,等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,它们具有等价特性,即每一类的代表性数据在测试中的作用都等价于这一类中的其他数据。这样,对于表征该类的数据输入将能代表整个子集合的输入。边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。 根据等价类划分原则,测试输入应该考虑股票代码是否全为数字、交易数量是否为100的整数倍、交易价格是否为小数点后2位。设计标准等价类和健壮等价类的测试输入,如下: 测试一:任一标准等价类测试输入,满足股票代码为11 11 11,交易数量为100整数倍且小于等于10万,买/卖价格为包含两位小数的正数,如“11111l,300,6.78”。 测试二至测试四:分别为任一健壮等价类测试输入,即每个输入有一个无效数据,其余输入为有效数据。如“11111A,300,6.78”、“111111,301,6.78”、“111111,300,6.789”。 如果采用边界值分析法来设计测试用例,则输入正确域中任何值作为输入之外,测试二至测试四需要选择一些边界上的值,比如交易数量取0、100、99900、100000、100100等情况。 (2)输入的内容中输入某些功能符号可能会传到后台引起安全问题。 Web应用系统在某些情况下,接收页面上传的内容,并作为新页面的内容。例如,在本系统中需要提交股票代码、交易数量、交易价格,在提交之后,需要查看交易情况时显示相关的内容。 在将输入内容作为新页面的情况下,如果用户输入如下带有HTML标记的内容:

在提交之后,标记将提交到服务器上,并在有用户访问新的页面中显示,此时所看到的网页中包含以上标记的部分元素可能是:

从客户的角度看,该网页中就出现了弹出窗口提示,显示Hello World!,如下图所示。

即用户输入的内容已经被浏览器成功执行。再如输入如下内容:

在提交之后,后续用户再访问时,所看到的网页中包含标记的部分元素可能是:

即新用户所看到网页中显示Click me!,当用户鼠标移过此文字时,就会弹出窗口(左侧为Chrome弹出,右侧为IE9直接给出的提示窗口,多次鼠标滑过操作Chrome提示窗口多了一行浏览器对阻止这类代码的创建新窗口的选项,firefox类似):

而如果这类代码可以执行,就存在被真正恶意攻击者攻击的可能,而且可能造成各类安全问题。所以网站提交代码中的任何脚本、页面功能符号都不应该被直接接受使其作为功能符号在后续使用。所以测试时需要考虑设计包含HTML标记符、脚本等测试输入,如
