Web网站测试流程和方法

Web网站测试流程和方法(转载)

1测试流程与方法
1.1测试流程
进行正式测试之前,应先确定如何开展测试,不可盲目的测试。一般网站的测试,应按以下流程来进行:
1)使用HTML Link Validator将网站中的错误链接找出来;
2)测试的顺序为:自顶向下、从左到右;
3)查看页面title是否正确。(不只首页,所有页面都要查看);
4LOGO图片是否正确显示;
5LOGO下的一级栏目、二级栏目的链接是否正确;
6)首页登录、注册的功能是否实现;
7)首页左侧栏目下的文章标题、图片等链接是否正确;
8)首页中间栏目下的文章标题、图片等链接是否正确;
9)首页右侧栏目下的文章标题、图片等链接是否正确;
10)首页最下方的【友情链接】、【关于我们】等链接是否正确;
11)进入一级栏目或二级栏目的列表页。查看左侧栏目名称,右侧文章列表是否正确;
12)列表页的分页功能是否实现、样式是否统一;
13)查看文章详细页面的内容是否存在乱码、页面样式是否统一;
14)站内搜索(各个页面都要查看)功能是否实现;
15)前后台交互的部分,数据传递是否正确;
16) 默认按钮要支持Enter及选操作,即按Enter后自动执行默认按钮对应操作。
1.2 UI测试
UI测试包括的内容有如下几方面:
1)各个页面的样式风格是否统一;
2)各个页面的大小是否一致;同样的LOGO图片在各个页面中显示是否大小一致;页面及图片是否居中显示;
3)各个页面的title是否正确;
4)栏目名称、文章内容等处的文字是否正确,有无错别字或乱码;同一级别的字体、大小、颜色是否统一; 
5)提示、警告或错误说明应清楚易懂,用词准确,摒弃模棱两可的字眼;
6)切换窗口大小,将窗口缩小后,页面是否按比例缩小或出现滚动条;各个页面缩小的风格是否一致,文字是否窜行;
7)父窗体或主窗体的中心位置应该在对角线焦点附近;子窗体位置应该在主窗体的左上角或正中;多个子窗体弹出时应该依次向右下方偏移,以显示出窗体标题为宜;
8)按钮大小基本相近,忌用太长的名称,免得占用过多的界面位置;避免空旷的界面上放置很大的按钮;按钮的样式风格要统一;按钮之间的间距要一致;
9)页面颜色是否统一;前景与背景色搭配合理协调,反差不宜太大,最好少用深色或刺目的颜色;
10)若有滚动信息或图片,将鼠标放置其上,查看滚动信息或图片是否停止;
11)导航处是否按相应的栏目级别显示;导航文字是否在同一行显示;
12)所有的图片是否都被正确装载,在不同的浏览器、分辨率下图片是否能正确显示(包括位置、大小);
13)文章列表页,左侧的栏目是否与一级、二级栏目的名称、顺序一致;
14) 调整分辨率验证页面格式是否错位现象;
15)鼠标移动到Flash焦点上特效是否实现,移出焦点特效是否消失;
16) 文字颜色与页面配色协调,不使用与背景色相近的颜色。
17) 每个非首页静态页面含图片字节不超过300K,全尺寸banner第一个场景控制在200k以内二个场景在300K,三个场景在400K以此类推
18) 同一界面上的控件数最好不要超过10个,多于10个时可以考虑使用分页界面显示。
19) 超过一屏的内容,在底部应有go top按钮
20) 超过三屏的内容,应在头部设提纲,直接链接到文内锚点
21) 首页,各栏目一级页面之间互链,各栏目一级和本栏目二级页面之间互链
22) 导航的文字要简明扼要,字数限制在一行以内
23) 报表显示时应考虑数据显示宽度的自适应或自动换行。
24) 所有有数据展现的界面(如统计、查询、编辑录入、打印预览、打印等),必须使测试数据的记录数超过一屏/一页,以验证满屏/页时其窗体是否有横向、纵向滚动条或换页打(L)印,界面显示是否正常;
25) 如有多个系统展现同一数据源时,应保证其一致性;
26) 对于报表中的所有字段值都应该有明确的定义,对于无意义的字段值,不应该显示空,应显示“--”“/”,表示该字段值无意义。
27) 对统计的数据应按用户习惯进行分类、排序。
28) 界面内容更新后系统应提供刷新功能。
29) 用户在退出系统后重新登陆时应考虑是否需要自动返回到上次退出系统时的界面;
30)在多个业务功能组成的一个业务流程中,如果各个功能之间的执行顺序有一定的制约条件,应通过界面提示用户。
31)用户提示信息应具有一定的指导性,在应用程序正在进行关键业务的处理时,应考虑在前台界面提示用户应用程序正在进行的处理,以及相应的处理过程,在处理结束后再提示用户处理完毕。
32)在某些数据输入界面,如果要求输入的数据符合某项规则,应在输入界面提供相应的规则描述;当输入数据不符合规则时应提示用户是否继续。
33)在对任何配置信息修改后,都应该在用户退出该界面时提示用户保存(如果用户没有主动保存的情况下);
34)在对某些查询功能进行测试时,应考虑查询条件的设置的合理性以及查询结果的互补性。如某些后台处理时间不应该作为查询条件。
35)界面测试时,应考虑某一界面上按钮先后使用的顺序问题,以免用户对此产生迷惑。例如只能在查询成功后显示执行按钮。
36)界面测试时,应验证窗口与窗口之间、字段与字段之间的浏览顺序是否正确;
37)在某些对数据进行处理的操作界面,应考虑用户可能对数据进行处理的频繁程度和工作量,考虑是否可以进行批量操作。
38)界面测试时应验证所有窗体中的对象状态是否正常,是否符合相关的业务规则需要。
49)应验证各种对象访问方法(Tab 健、鼠标移动和快捷键)是否可正常使用,并且在一个激活界面中快捷键无重复;
40)界面测试不光要考虑合理的键盘输入,还应考虑是否可以通过鼠标拷贝粘贴输入。
41)对于统计查询功能的查询结果应验证其是否只能通过界面上的查询或刷新按键人工触发,应避免其他形式的触发。
42)对界面上的任何对象进行拖拉,然后进行查询、打印,应保证查询打印结果不变;
43)确保数据精度显示的统一:如单价0元,应显示为0.00元;
44)确保时间及日期显示格式的统一;
45)确保相同含义属性/字段名的统一;
46)对所有可能产生的提示信息界面内容和位置进行验证,确保所有的提示信息界面应居中。

1.3链接测试
链接测试主要分为以下几个方面:
1)页面是否有无法连接的内容;图片是否能正确显示,有无冗余图片,代码是否规范,页面是否存死链接(可以用HTML Link Validator工具查找);
2)图片上是否有无用的链接;点击图片上的链接是否跳转到正确的页面;
3)首页点击LOGO下的一级栏目或二级栏目名称,是否可进入相应的栏目;
4)点击首页或列表页的文章标题的链接,是否可进入相应的文章的详细页面;
5)点击首页栏目名称后的【更多】链接,是否正确跳转到相应页面;
6)文章列表页,左侧的栏目的链接,是否可正确跳转到相应的栏目页面;
7)导航链接的页面是否正确;是否可按栏目级别跳转到相应的页面;
(例:【首页->服务与支持->客服中心】,分别点击首页服务与支持客服中心,查看是否可跳转到相应页面;)
8) 新闻、信息类内容通常用新开窗口方式打开。
9) 顶部导航、底部导航通常采取在本页打开。
1.4搜索测试
搜索测试主要分为以下几个方面:
1)搜索按钮功能是否实现;
2)输入网站中存在的信息,能否正确搜索出结果;
3)输入键盘中所有特殊字符,是否报错;特别关注: ’ . • \  / -- ;特殊字符
4)系统是否支持键盘回车键、Tab键;
5)搜索出的结果页面是否与其他页面风格一致;
6)在输入域输入空格,点击搜索系统是否报错;
7)本站内搜索输入域中不输入任何内容,是否搜索出的是全部信息或者给予提示信息;
8)精确查询还是模糊查询,如果是模糊查询输入:中%国。查询结果是不是都包含中国两个字的信息;
9)焦点放置搜索框中,搜索框内容是否被清空;
10)搜索输入域是否实现回车键监听事件;
1.5表单测试
表单测试主要分为以下几个方面:
1)注册、登录功能是否实现;
2)提交、清空按钮功能是否实现;
3)修改表单与注册页面数据项是否相同,修改表单是否对重名做验证;
4)提交的数据是否能正确保存到后台数据库中(后台数据库中的数据应与前台录入内容完全一致,数据不会丢失或被改变);
5)表单提交,删除,修改后是否有提示信息;提示、警告、或错误说明应该清楚、明了、恰当。
6)浏览器的前进、后退、刷新按钮,是否会造成数据重现或页面报错;
7)提交表单是否支持回车键和Tab键;Tab键的顺序与控件排列顺序要一致,目前流行总体从上倒下,同时行间从左到右的方式
8)下拉列表功能是否实现和数据是否完整(例如:省份和市区下拉列表数据是否互动);
1.6输入域测试
输入域测试主要分为以下几个方面:
1)对于手机、邮箱、证件号等的输入是否有长度及类型的控制;
2)输入中文、英文、数字、特殊字符(特别注意单引号和反斜杠)及这四类的混合输入,是否会报错;
3)输入空格、空格+数据、数据+空格,是否报错;
4)输入html语言的,是否能正确显示;
5)输入全角、半角的英文、数字、特殊字符等,是否报错;
6)是否有必填项的控制;不输入必填项,是否有友好提示信息;
7)输入超长字段,页面是否被撑开;
8)分别输入大于、等于、小于数据表规定字段长度的数据,是否报错;
9)输入非数据表中规定的数据类型的字符,是否有友好提示信息;
10)在文本框中输入回车键,显示时是否回车换行;
11) 非法的输入或操作应有足够的提示说明。
1.7分页测试
分页测试主要分为以下几个方面:
1)当没有数据时,首页、上一页、下一页、尾页标签全部置灰;
2)在首页时,首页”“上一页标签置灰;在尾页时,下一页”“尾页标签置灰;在中间页时,四个标签均可点击,且跳转正确;
3)翻页后,列表中的数据是否扔按照指定的顺序进行了排序;
4)各个分页标签是否在同一水平线上;
5)各个页面的分页标签样式是否一致;
6)分页的总页数及当前页数显示是否正确;
7)是否能正确跳转到指定的页数;
8)在分页处输入非数字的字符(英文、特殊字符等),输入0或超出总页数的数字,是否有友好提示信息;
9)是否支持回车键的监听;
1.8 交互性数据测试
1)前台的数据操作是否对后台产生相应正确的影响
   (如:查看详细信息时,需扣除用户相应的授权点数);
2)可实现前后台数据的交互(如:在线咨询,能否实现数据的交互实时更新);数据传递是否正确;前后台大数据量信息传递数据是否丢失(如500个字符);多用户交流时用户信息控制是否严谨;
3)用户的权限,是否随着授权而变化;
4)数据未审核时,前台应不显示;审核通过后,前台应可显示该条数据;

功能测试中还需注意以下几点内容:
1)点击【收藏我们】,标题是否出现乱码;收藏的url与网站的url是否一致;能否通过收藏夹来访问网站;
2)对于修改、删除等可能造成数据无法恢复的操作必须提供确认信息,给用户放弃选择的机会;
3)在文章详细页面,验证字体大小改变、打印、返回、关闭等功能是否实现;
2安全性测试
2.1目录设置
目录测试主要分为以下几个方面:
1)在测试路径上出现:http://218.61.30.17:7001/dzgh/xwzx/khzl/2008/11/13/58127.html/2008/11/13/58127.html去掉,看是否能出现目录下文件;
2)访问文件目录如果出现403错误,说明网页加以限制拒绝访问;
3)访问文件目录如果出现SSH其他根目录路径,说明有漏洞缺陷;
4)用X-Scan-v3.2-cn工具对网站服务器扫描。可以对网站参透出开启的端口号,SSH弱口令,网站是否存在高风险;比如:在扫描参数中输入测试网站的地址,点击扫描。如果扫描出网站端口号高风险或SSH弱口令可以与开发人员沟通进行修改;
5)测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
6Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
7)为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。
8)当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。
9)服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
10)网页加载速度测试可以采用HttpWatch软件等,可以知道那些内容影响网站整体速度。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

一、界面测试公共测试用例

界面测试一般包括页面文字,控件使用,少图,CSS,颜色等。

1.     文字

内容一致性:

1)公司要求文字的一致性,例如各种宣传文字、注册的协议条款、版权信息等;

2)各处相同含义文字的一致性,例如标题栏文字、页面主题文字、弹出窗口文字、菜单名称、功能键文字等。

样式一致性

1)(通常分类包括)各类文字字体、字号、样式、颜色、文字间距、对齐方式;

2)按钮的文字间距,按钮长度一定前提下,2个字的按钮,需要中间空一格(或者其它约定,需要统一);

3)链接文字,同一类,菜单、小标题、页角文字链接,在点击时颜色变化要相同;

4)对齐方式,页面上文字的对齐,例如表单、菜单列、下拉列表中文字的对齐方式(左、右、居中等要统一)

语言习惯:

1)中文:文字简单,含义明确,无歧异,无重复,无别字,正确运用标点符号。

2)英文。

3)日文。

2.     按钮

1button的样式整体要统一,例如突出、扁平、3D效果等只能选其一;

2)采用的图片表述相同功能,要采用单一图标。

3.     文本框

1)录入长度限制,根据数据库的设计,页面直接限定录入长度(特殊处屏蔽复制、粘贴);

2)文本框自身的长度限制,主要考虑页面样式。

4.     单选框

1)默认情况要统一,已选择,还是未选。

5.     日期控件

1)图标、控件颜色、样式统一;

2)点击控件、文本框均应弹出日期选择框。

6.     下拉选择框

1)默认是第一个选项,还是提示请选择一个。

7.     提示信息

1)静态文字与它的提示信息一致性,例如静态文字为‘ID’,出错信息显示用户ID’

2)空值时,出错信息需要统一,例如可以采用静态文字”+不能为空;

3)出现录入错误时,例如可以统一采用静态文字”+格式不符合要求;

4)提示信息标点符号是否标识;点击上一步,返回的页面上不应残留出错信息;

5)静态提示信息,在录入框右侧,应有录入信息的相应要求的提示文字,达到方便操作的目的;

6)必输项提示信息,必输项提示信息采用统一的标志。

8.     导航测试

死导航、乱导航、操作复杂等。

9.     链接测试

1)发现404错误。

2)避免死链接情况,执行完相应操作应有返回按钮,返回到相应页面;例如:操作成功后,进入成功提示信息页面,但页面没有返回按钮,无法及时进入操作之前的页面。

10.   IE的后退

退出系统,无论直接关闭浏览器或点击后退键,退出都不应再返回系统。

11.   分辨率

页面文字显示、样式等要支持常见分辨率,例如CRT显示器的1024*768LCD1280*1024

12.   重复提交问题

1)功能操作完成后,鼠标右键点击所在页面,选择弹出菜单的刷新功能,容易出现重复提交问题。

2)功能操作完成后,通过IE的后退键进行重复操作,容易出现重复提交问题。

3)某功能键反应时间延迟时(限制客户端网络带宽等方式来模拟实现),在短时间内重复点击该功能键,容易出现重复提交问题;

13.   防止SQL注入式攻击

1)不允许任何直接在jsp页面调用SQL语句,这种情况常发生在系统的后期修改中。

14.   用户非授权页面访问

1)每个页面都需要安全验证,防止用户通过直接拷贝具体页面地址等方式,访问系统;

2)页面过期的时间设定,用户在设定时间内未进行任何操作,不允许访问系统。

二、文本框公共测试用例

1.     文本框为字符型

必填项非空校验:

1)必填项未输入--程序应提示错误;

2)必填项只输入若干个空格,未输入其它字符--程序应提示错误;

字段唯一性校验:(不是所有字段都作此项校验,视实际项目情况而定)

1)新增时输入重复的字段值--必须提示友好信息;

2)修改时输入重复的字段值--必须提示友好信息;

字段长度校验:

1)输入[最小字符数-1]--程序应提示错误;

2)输入[最小字符数]--OK

3)输入[最小字符数+1]--OK

4)输入[最大字符数-1]--OK

5)输入[最大字符数]--OK

6)输入[最大字符数+1]--程序应提示错误;

字段为特殊字符校验:

1)输入域如对某些字符禁止输入时,限制是否成功,提示信息是否友好;

2)中文、英文、空格,数字,字符,下划线、单引号等所有特殊字符的组合

3)所有特殊字符都必须进行测试(!~@#$^&*()_+{}|:“<>?/.,;‘[]\=-`……()--:《》?、。,;【】、=-• 

字段为特殊代码校验:

1)输入html代码:比如你好;--必须以文本的形式将代码显示出来。

2)输入JavaScript代码:比如;--必须以文本的形式将代码显示出来。

多行文本框输入:

1)是否允许回车换行

2)保存后再显示能够保持输入时的格式

3)仅输入回车换行,检查能否正确保存;若能,查看保存结果。若不能,查看是否有正确提示

4)仅输入空格,检查能否正确保存;若能,查看保存结果。若不能,查看是否有正确提示

2.     文本框为数值型

边界值:

1)输入[最小值-1]--程序应提示错误;

2)输入[最小值]--OK

3)输入[最大值]--OK

4)输入[最大值+1]--程序应提示错误;

位数:

1)输入[限制位数]--OK

2)输入[限制位数+1]--根据实际项目而定,是否自动四舍五入成限制位数,还是提示信息;

3)输入[限制位数-1]--OK

异常值、特殊值:

1)输入非数值型数据:汉字、字母、字符--程序应提示错误;

2)输入负数--根据实际项目而定,如果不允许输入负数,必须提示友好信息;

3)字段禁止直接输入非数值型数据时,使用粘贴拷贝功能尝试输入,并测试能否正常提交保存--只能使用粘贴拷贝方法输入的特殊字符应无法保存,并应给出相应提示

4)全角数字和半角数字的情况--全角数字不能保存,提示友好信息,半角数字正常保存;

5)首位为零的数值:如011--视实际项目情况而定;

3.     文本框为日期型

合法性检查:

1)日输入[0]--程序应提示错误; 

2)日输入[1]--OK

3)日输入[32]--程序应提示错误;

4)月输入[135781012]、日输入[31]--OK

5)月输入[46911]、日输入[30]--OK

6)月输入[46911]、日输入[31]--程序应提示错误;

7)输入非闰年,月输入[2]、日输入[28],比如2009.2.28--OK

8)输入非闰年,月输入[2]、日输入[29],比如2009.2.29--程序应提示错误;

9(闰年)月输入[2]、日输入[29],比如2008.2.29--OK

10(闰年)月输入[2]、日输入[30],比如2008.2.30--程序应提示错误;

12)月输入[1]--OK

13)月输入[12]--OK

14)月输入[13--程序应提示错误;

格式检查:

1)不合法格式:2009-09 2009-09 -200-2-2

2)视具体项目而定是否合法:2009/09/012009.09.01 200909012009-09-01 

异常值、特殊值:

1)输入汉字、字母、字符--程序应提示错误;

4.     文本框为时间型

合法性检查:

1)时输入[24--程序应提示错误; 

2)时输入[00--OK

3)分输入[60--程序应提示错误;

4)分输入[59--OK

5)分输入[00--OK

6)秒输入[60--程序应提示错误;

7)秒输入[59--OK

8)秒输入[00--OK

格式检查:

1)不合法格式:12:30: 123000

2)视具体项目而定是否合法:12:30 1:3:0

异常值、特殊值:

1)输入汉字、字母、字符--程序应提示错误;

2)系统中所涉及时间是否取服务器时间;

三、上传和导出公共测试用例

1.     上传图片

对于上传的文件,假设系统要求上传的文件为jpggif格式图片,大小为<=5M的文件,我们在设计测试用例时,应该从以下几个方面进行考虑:

1)文件类型正确,文件大小合适的校验

例如:上传一种jpggif的格式图片,文件大小为4.9M,结果为上传成功

2)文件类型正确,文件大小合适的校验

例如:上传一种jpggif的格式图片,文件大小为5M,结果为上传成功

3)文件类型正确,文件大小不合适的校验

例如:上传一种jpggif的格式图片,文件大小为5.1M,提示为:上传的附件中大小不能超过5M”

4)文件类型错误,文件大小合适的校验

例如:上传.doc.xlspptbmpjpegpsdtifftgapngswfsvgpcxdxfwmfemfliceps.txt等格式文件,文件大小合适,提示只能上传jpggif格式图片

5)文件类型和文件大小合法,上传一个0kb的图片,提示信息:请重新上传文件,或者是不能上传0kb的图片

6)文件类型和文件大小合法,上传一个正在使用中的图片(即打开该图片,再上传该图片),上传成功

7)文件类型和文件大小合法,手动输入一个存在的图片地址,点击上传,上传成功

8)文件类型和文件大小合法,手动输入一个不存在的图片地址,点击上传,提示:请正确选择要上传的文件

9)文件类型和大小都合法,手动输入一个存在的图片名称,点击上传,一般情况下系统会提示:请正确选择要上传的文件的路径

2.     文件导出

1)验证导出文件名长度,根据具体情况而定

2)验证导出文件为空的情况 

3)验证导出文件名为特殊字符的情况

4)验证导出全部资料的情况,导出的信息是否正确  

5)验证导出部分资料的情况,导出的信息是否正确 

6)验证导出大量数据时的时间是否在合理的时间范围内  

7)验证导出目的磁盘空间已满的情况下,导出是否有友好的处理方式  

8)验证导出目的的文件夹为只读的情况下,导出时是否有友好的的提示信息

3.     文件上传

页面

1)页面美观性、易用性(键盘和鼠标的操作、tab跳转的顺序是否正确)  

2)按钮文字正确性 

3)说明文字是否正确  

4)正确/错误的提示文字是否正确 

5)提示当前位置是否正确,并且和其他页面保持一致格式  

6)必添项的标示是否正确

功能

1)路径是否可以手工输入(手工输入的时候有没有限长)  

2)上传文件超过最大值是在提交前校验还是提交后校验 

3)上传文件格式是否全部支持(图片:gif/jpg/bmp...文档:doc/sxw/xls...压缩包:zip/rar...安装文件:exe/msi) 

4)上传文件是否支持中文名称

5)文件名称的最大值、最小值、特殊字符(包含空格)、使用程序语句是否会对其造成影响、中文名称是否能正常显示

4.     文件下载

功能

1)右键另存为是否可以正确下载文件,并且记录下载次数

工具下载是否正确,并且记录下载次数

2)单击下载是提示下载还是在页面打开

直接打开是否显示正确

对于本机没有安装工具的文件是否能够打开,是否能给出正确的提示

对于直接在页面内打开的内容是否能够显示正常,页面美观性

保存到本地是否能正确显示• 取消下载是否会纪录下载次数

3)下载次数是否被正确记录

四、列表公共测试用例

1.     列表页面显示

1确认页面的默认排序方式,字段+升降续;

2link的列,验证其有效性,即,点击后的跳转是否正确;

3第一列的选择框,全选部分选择需有效;部分选中时,全选按钮应自动取消。

2.     顶部搜索功能

1)逐个测试每个搜索条件的有效性;

2)做2-3个组合条件的查询,验证结果;合计共有N+3个搜索条件的测试。

3)有时间区间的,验证列表项的开始到结束时间选择区间有交叉,则为有效,且包含所选日期的记录;

4)条件中,开始时间不能大于结束时间;

5)搜索条件,在分页显示时,需始终保持有效;

6)点击名为显示全部的按钮,需清除所有条件,并显示所有记录。

7)每一次新的搜索执行,都应该去除分页,显示第一页、并回到进入页面时的默认排序方式。

3.     右侧或底部的按钮

按功能分成多个用例:

1)单选,多选、全选的情况下,点击按钮执行某个功能,如暂停服务、恢复服务的按钮; 

2)跨页选择,在一些选择成员的列表中是应有效的,需进行确认。

4.     列表数据的验证

验证从数据库中得到的列表项中每列数据的正确性,要求覆盖不同情况下的值,比如开通暂停的服务状态;已使用空间大小和总空间大小等数字的正确性。可考虑结合其他用例来描述,但必须覆盖到。

 

5.     列表按标题的排序

1)检查每个列标题,要求点击后能按其进行排序:第一次点击为正序,以后每次点击为升、降续的切换。

2)进入下一页、上一页,以及任意分页显示时,条件需始终保持有效。

6.     分页

12/8每页 10/ 79中的分页数据必须正确;

2第一页、上一页、下一页、最后一页的link在当前上下文有意义时显示,否则隐藏或显示为文本标签;

3)填入某个数字,点击跳转到按钮,到正确的页数;

 

另外请考虑每个文本框输入的有效性,比如日期、域名、跳转到某页的文本框的能接受的值,具体可参考需求文档。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Web测试需要注意点  

2012-01-19 15:09:37|  分类:测试人生 |  标签: |字号大中小 订阅

一、功能测试

测试用例是测试的核心,测试用例的设计是一种思维方式的体现,在用例的设计中,用的比较多的方法是边界值分析法和等价类划分法,下面主要从输入框,搜索功能,添加、修改功能,删除功能,注册、登录功能以及上传图片功能等11个方面进行总结说明。

1、输入框

输入框是测试中最容易出现bug的地方,所以在测试时,一定要多加注意。

核查点

大分类

小分类

检查内容

 

输入框

字符型输入框

字符种类

英文全角字符

英文半角字符

数字

汉字

空或空格

特殊字符“~!@#$%^&*()_+-={}[]|\:;”’<>,./?;”等可能导致系统错误的字符,特别要注意单引号和&符号。

禁止直接输入特殊字符时,使用“粘贴”、“拷贝”功能尝试输入,并测试能否正常提交保存。

长度检查

最小长度-1

最小长度

最大长度

最大长度+1

输入超长字符:比如把整篇word文档copy过去

空格检查

输入的字符间有空格

字符前有空格

字符后有空格

字符前后都有空格

多行文本框输入

允许回车换行

保存后再显示能够保持输入时的格式

仅输入回车换行,检查能否正确保存;若能,查看保存结果。若不能,查看是否有正确提示

安全性检查

输入特殊字符串:null、NULL、 、javascript、、<html>、<td>等</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">输入脚本函数:<script>alter("abc")</script>、document.write("abc")、<b>hello</b></span></p> </td> </tr> <tr> <td> <p><strong><span style="color:rgb(68,68,68);">数值型输入框</span></strong></p> </td> <td> <p><span style="color:rgb(68,68,68);">边界值</span></p> </td> <td> <p><span style="color:rgb(68,68,68);">最小值-1</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">最小值</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">最大值</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">最大值+1</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">位数</span></p> </td> <td> <p><span style="color:rgb(68,68,68);">最小位数+1</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">最小位数</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">最大位数</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">最大位数+1</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">输入超长值</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">异常值、特殊值</span></p> </td> <td> <p><span style="color:rgb(68,68,68);">输入[空白(NULL)]、空格或‘“~!@#$%^&*()_+-={}[]|\:;”’<>,./?;”等可能导致系统错误的字符</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">禁止直接输入特殊字符时,使用“粘贴”、“拷贝”功能尝试输入,并测试能否正常提交保存。</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">word</span><span style="color:rgb(68,68,68);">中的特殊功能,通过剪贴板拷贝到输入框:分页符,分节符,类似公式的上下标等</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">输入负整数、负小数、分数</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">输入字母或汉字</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">带符号的数值:带正号的正数,带负号的负数</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">小数:小数点前零舍去的情况,如.12;多个小数点的情况;0值:0.0,0.,.0</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">首位为零的数值:如01、02</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">科学技术法是否支持:如 1.0E2</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">全角数字和半角数字的情况</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">数字与字母的混合:16进制数值,8进制数值</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">货币型输入项:允许小数点后几位</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">安全性检查同上</span></p> </td> <td> <p><span style="color:rgb(68,68,68);">不能直接输入,就copy</span></p> </td> </tr> <tr> <td> <p><strong><span style="color:rgb(68,68,68);">日期型</span></strong></p> </td> <td> <p><span style="color:rgb(68,68,68);">合法性检查</span></p> </td> <td> <p><span style="color:rgb(68,68,68);">日输入[0日]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">日输入[1日]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">日输入[32日]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">月输入[1、3、5、7、8、10、12月]、日输入[31日]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">月输入[4、6、9、11月]、日输入[30日]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">月输入[4、6、9、11月]、日输入[31日]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">输入非闰年,月输入[2月]、日输入[28日]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">输入非闰年,月输入[2月]、日输入[29日]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">(</span><span style="color:rgb(68,68,68);">闰年)月输入[2月]、日输入[29日]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">(</span><span style="color:rgb(68,68,68);">闰年)月输入[2月]、日输入[30日]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">月输入[0月]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">月输入[1月]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">月输入[12月]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">月输入[13月]</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">异常值、特殊值</span></p> </td> <td> <p><span style="color:rgb(68,68,68);">输入[空白(NULL)]或“~!@#$%^&*()_+-={}[]|\:;”’<>,./?;”等可能导致系统错误的字符</span></p> </td> </tr> <tr> <td> <p><span style="color:rgb(68,68,68);">安全性检查同上</span></p> </td> </tr> </tbody> </table> <p><span style="color:rgb(68,68,68);"> </span></p> <p><span style="color:rgb(68,68,68);"> </span><strong>2<span style="color:rgb(68,68,68);">、搜索功能</span></strong></p> <p><span style="color:rgb(68,68,68);">(1)比较长的名称是否能查到?</span></p> <p><span style="color:rgb(68,68,68);">(2)空格 或空</span></p> <p><span style="color:rgb(68,68,68);">(3)名称中含有特殊字符,如:' $ % & *以及空格等</span></p> <p><span style="color:rgb(68,68,68);">(4)关键词前面或后面有空格</span></p> <p><span style="color:rgb(68,68,68);">(5)如果支持模糊查询,搜索名称中任意一个字符是否能搜索到</span></p> <p><span style="color:rgb(68,68,68);">(6)输入系统中不存在与之匹配的条件</span></p> <p><span style="color:rgb(68,68,68);">(7)两个查询条件是否为2选1,来回选择是否出现页面错误</span></p> <p><span style="color:rgb(68,68,68);">(8)输入脚本语言,如:<script>alter(</span><span style="color:rgb(68,68,68);">“</span><span style="color:rgb(68,68,68);">abc</span><span style="color:rgb(68,68,68);">”</span><span style="color:rgb(68,68,68);">)</script></span><span style="color:rgb(68,68,68);">等</span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><strong>3<span style="color:rgb(68,68,68);">、添加、修改功能</span></strong></p> <p><span style="color:rgb(68,68,68);">(1)是否支持tab键</span></p> <p><span style="color:rgb(68,68,68);">(2)是否支持enter键</span></p> <p><span style="color:rgb(68,68,68);">(3)不符合要求的地方是否有错误提示</span></p> <p><span style="color:rgb(68,68,68);">(4)保存后,是否也插入到数据库中?</span></p> <p><span style="color:rgb(68,68,68);">(5)字段唯一的,是否可以重复添加</span></p> <p><span style="color:rgb(68,68,68);">(6)对编辑页列表中的每个编辑项进行修改,点击保存,是否保存成功?</span></p> <p><span style="color:rgb(68,68,68);">(7)对于必填项,修改为空、空格或其他特殊符号,是否可以编辑成功</span></p> <p><span style="color:rgb(68,68,68);">(8)在输入框中,直接回车</span></p> <p><span style="color:rgb(68,68,68);">(9)是否能够连续添加</span></p> <p><span style="color:rgb(68,68,68);">(10)在编辑的时候,要注意编辑项的长度限制,有时,添加时有长度限制,但编辑时却没有(添加和修改规则是否一致)</span></p> <p><span style="color:rgb(68,68,68);">(11)添加时,字段是唯一的,不允许重复,但有时,编辑时,却可以修改为相同字段(相同字段包括是否区分大小写以及在输入内容的前后输入空格)</span></p> <p><span style="color:rgb(68,68,68);">(12)添加含有特殊符号或空格的内容</span></p> <p><span style="color:rgb(68,68,68);">(13)对于有图片上传功能的编辑框,对于没有上传的图片,查看编辑页面时,是否显示默认图片,如果上传了图片,是否显示为上传图片?</span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><strong>4<span style="color:rgb(68,68,68);">、删除功能</span></strong></p> <p><span style="color:rgb(68,68,68);">(1)输入正确数据前加空格,看是否能正确删除?</span></p> <p><span style="color:rgb(68,68,68);">(2)是否支持enter键</span></p> <p><span style="color:rgb(68,68,68);">(3)是否能连续删除多个产品?当只有一条数据时,能否成功删除?</span></p> <p><span style="color:rgb(68,68,68);">(4)删除一条数据后,能否再添加相同的数据?</span></p> <p><span style="color:rgb(68,68,68);">(5)当提供能一次删除多条信息的功能时,注意,删除的数据是否正确?</span></p> <p><span style="color:rgb(68,68,68);">(6)不选择任何信息,直接点击删除按钮,看有什么错误提示?</span></p> <p><span style="color:rgb(68,68,68);">(7)删除某条信息时,应该有错误提示信息</span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><strong>5<span style="color:rgb(68,68,68);">、注册、登录模块</span></strong></p> <p><span style="color:rgb(68,68,68);">(1)注册成功,但登录失败:注册时,密码设置为一些特殊符号,但登录时,失败</span></p> <p><span style="color:rgb(68,68,68);">(2)注册时,连续点击提交按钮</span></p> <p><span style="color:rgb(68,68,68);">(3)注册成功后,页面应该以登录状态跳转到首页</span></p> <p><span style="color:rgb(68,68,68);">(3)登录时,没区分大小写,注册时,是小写字母,但登录时,用大写字母也能登录进去</span></p> <p><span style="color:rgb(68,68,68);">(4)登录时,当页面刷新或重新输入新数据时,验证码是否也随之更新</span></p> <p><span style="color:rgb(68,68,68);">(5)对密码的修改,当把密码修改为很长,或含有特殊符号时,能够修改成功,但却不能成功登录。</span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><strong>6<span style="color:rgb(68,68,68);">、上传图片测试</span></strong></p> <p><span style="color:rgb(68,68,68);"> </span><span style="color:rgb(68,68,68);">(1)文件类型正确,文件大小合适</span></p> <p><span style="color:rgb(68,68,68);">(2)文件类型正确,文件大小不合适</span></p> <p><span style="color:rgb(68,68,68);">(3)文件类型错误,文件大小合适</span></p> <p><span style="color:rgb(68,68,68);">(4)文件类型和大小都合适,上传一个正在使用中的图片</span></p> <p><span style="color:rgb(68,68,68);">(5)文件类型和大小合适,手动输入一个存在的图片地址来上传</span></p> <p><span style="color:rgb(68,68,68);">(6)文件类型和大小合适,手动输入一个不存在的图片地址上传</span></p> <p><span style="color:rgb(68,68,68);">(7)文件类型和大小都合适,手动输入图片名称来上传</span></p> <p><strong><span style="color:rgb(68,68,68);"> </span></strong></p> <p><strong>7<span style="color:rgb(68,68,68);">、返回键检查</span></strong></p> <p><span style="color:rgb(68,68,68);">(1)一条已经成功提交的记录,返回后再提交,看系统是否做了处理</span></p> <p><span style="color:rgb(68,68,68);">(2)检查多次使用返回键的情况,在有返回键的地方,返回到原来页面重复多次,看是否会出错</span></p> <p><strong>8<span style="color:rgb(68,68,68);">、回车键检查</span></strong></p> <p><span style="color:rgb(68,68,68);">在输入结束后,直接按回车键,看系统处理如何,是否会报错</span></p> <p><strong>9<span style="color:rgb(68,68,68);">、刷新键检查</span></strong></p> <p><span style="color:rgb(68,68,68);">在web系统中,使用浏览器的刷新键,看系统处理如何,是否会报错</span></p> <p><strong>10<span style="color:rgb(68,68,68);">、直接</span>URL<span style="color:rgb(68,68,68);">链接检查</span></strong></p> <p><span style="color:rgb(68,68,68);">在web系统中,直接输入各功能页面的URL地址,看系统如何处理</span></p> <p><strong>11<span style="color:rgb(68,68,68);">、其他</span></strong></p> <p><span style="color:rgb(68,68,68);">(1)在测试时,有与网络有关的步骤必须考虑到断网的情况</span></p> <p><span style="color:rgb(68,68,68);">(2)每个页面都有相应的页面title</span></p> <p><span style="color:rgb(68,68,68);">(3)在测试的时候要尽量考虑在页面出现滚动条时(滚动条上下滚动下),页面显示是否正常</span></p> <p><span style="color:rgb(68,68,68);">(4)URL不区分大小写</span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><strong>12<span style="color:rgb(68,68,68);">、测试中,并发情况的考虑</span></strong></p> <p><span style="color:rgb(68,68,68);">总结了以下两种情况:</span></p> <p><span style="color:rgb(68,68,68);">(1)某个字段是唯一的,当多个用户并发点击产生该字段时,检查系统是怎么处理的</span></p> <p><span style="color:rgb(68,68,68);">(2)对于电子商务网站,当两个或多个用户并发购买量总和大于产品库存量时,能否购买成功</span></p> <p><strong><span style="color:rgb(90,90,180);">二、界面和易用性测试</span></strong></p> <p><span style="color:rgb(68,68,68);">1</span><span style="color:rgb(68,68,68);">、界面测试,主要测试网站的界面是否和设计一致,是否有错别字,页面布局是否合理,格式是否正确,是否有相应的错误提示信息等。</span></p> <p><span style="color:rgb(68,68,68);">2</span><span style="color:rgb(68,68,68);">、易用性测试,主要是考察所开发出的功能是否人性化,是否易用,是否符合大多数用户的使用习惯等。</span></p> <p><span style="color:rgb(68,68,68);">3</span><span style="color:rgb(68,68,68);">、对Tab和Enter键的测试。</span></p> <p><strong><span style="color:rgb(90,90,180);">三、兼容性测试</span></strong></p> <p><span style="color:rgb(68,68,68);">兼容性测试不只是指界面在不同操作系统或浏览器下的兼容,有些功能方面的测试,也要考虑到兼容性,比如涉及到ajax、jquery、javascript等技术的,都要考虑到不同浏览器下的兼容性问题。</span></p> <p><strong><span style="color:rgb(90,90,180);">四、链接测试</span></strong></p> <p><span style="color:rgb(68,68,68);">主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。</span></p> <p><strong><span style="color:rgb(90,90,180);">五、业务流程测试</span></strong></p> <p><span style="color:rgb(68,68,68);">业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。</span></p> <p><strong><span style="color:rgb(90,90,180);">六、安全性测试</span></strong></p> <p><span style="color:rgb(68,68,68);">(1)SQL注入</span></p> <p><span style="color:rgb(68,68,68);">(2)XSS跨网站脚本攻击:程序或数据库没有对一些特殊字符进行过滤或处理,导致用户</span></p> <p><span style="color:rgb(68,68,68);">所输入的一些破坏性的脚本语句能够直接写进数据库中,浏览器会直接执行这些脚本语句,破坏网站的正常显示,或网站用户的信息被盗,构造脚本语句时,要保证脚本的完整性。</span></p> <p><span style="color:rgb(68,68,68);">document.write("abc")</span></p> <p><span style="color:rgb(68,68,68);"><script>alter("abc")</script></span></p> <p><span style="color:rgb(68,68,68);">(3)URL地址后面随便输入一些符号</span></p> <p><span style="color:rgb(68,68,68);">(4)</span><span style="color:rgb(68,68,68);">验证码更新问题</span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><span style="color:rgb(68,68,68);"> </span></p> <p><strong><span style="color:rgb(68,68,68);">web</span><span style="color:rgb(68,68,68);">测试中容易忽略的问题</span></strong></p> <p><span style="color:rgb(68,68,68);">   </span><span style="color:rgb(68,68,68);">很多时候,基于需求的测试和针对</span><span style="color:rgb(68,68,68);">web</span><span style="color:rgb(68,68,68);">特有的浏览器兼容性测试、</span><span style="color:rgb(68,68,68);">cookie</span><span style="color:rgb(68,68,68);">失效的验证,对于测试人员并不陌生。但实际上,与浏览器相关的测试内容远不止这些。</span></p> <p><span style="color:rgb(68,68,68);">    </span><span style="color:rgb(68,68,68);">举一个例子来说,很多时候我们都非常明确页面上的所有入口,并对这些入口设计了大量的用例,而浏览器的地址栏却常常会被我们忽略。实际上,</span><span style="color:rgb(68,68,68);">url</span><span style="color:rgb(68,68,68);">的输入意义远比我们意识中的重要,忽略了</span><span style="color:rgb(68,68,68);">url</span><span style="color:rgb(68,68,68);">的测试,很容易造成安全上的隐患。</span></p> <p><span style="color:rgb(68,68,68);">    </span><span style="color:rgb(68,68,68);">再进一步的说,浏览器的前进、后退、刷新按钮同样是测试人员需要关注的点。前进、后退在用户登录、注销信息的测试中应用最为频繁。而刷新,往往容易被忽视,但其同样是</span><span style="color:rgb(68,68,68);">bug</span><span style="color:rgb(68,68,68);">的</span><span style="color:rgb(68,68,68);">“</span><span style="color:rgb(68,68,68);">温床</span><span style="color:rgb(68,68,68);">”</span><span style="color:rgb(68,68,68);">。在最近的一次测试中,我就遇到过在我删除某条记录系统提示删除成功后,点击</span><span style="color:rgb(68,68,68);">“</span><span style="color:rgb(68,68,68);">刷新</span><span style="color:rgb(68,68,68);">”</span><span style="color:rgb(68,68,68);">按钮,页面提示出错的情况。出现该现象的原因就在于页面试图去取已删除的内容,导致出现异常。其实这个问题应该隐藏了比较久的时间,但是却一直未被发现,足可见我们都忽视了</span><span style="color:rgb(68,68,68);">“</span><span style="color:rgb(68,68,68);">刷新</span><span style="color:rgb(68,68,68);">”</span><span style="color:rgb(68,68,68);">的测试。</span></p> <p><span style="color:rgb(68,68,68);">    </span><span style="color:rgb(68,68,68);">除了上述的内容外,我相信一定还存在很多我们在测试中忽视的内容,而这些点的补充,是我们每一个人的责任!</span></p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><!--[if !supportLists]--><strong>1、</strong><!--[endif]--><strong>相关性检查:</strong></p> <p><strong>增加/删除一些功能,是否对其他项有影响;</strong></p> <p><strong>增加某个数据项后,该数据某字段内容过长,查询显示回事数据列表变形;</strong></p> <p><strong>字符串长度、类型检查。</strong></p> <p><!--[if !supportLists]--><strong>2、</strong><!--[endif]--><strong>标点符号检查:</strong></p> <p><strong>把空格键当成一个字符处理,但查询时空格被屏蔽,查询不到添加的内容;</strong></p> <p><strong>查询时输入特殊字符“_”,程序返回所有记录。</strong></p> <p><!--[if !supportLists]--><strong>3、</strong><!--[endif]--><strong>检查添加与修改是否一致:</strong></p> <p><strong>添加要求必填项,修改也应该是必填项</strong></p> <p><!--[if !supportLists]--><strong>4、</strong><!--[endif]--><strong>脚本错误(IFrame,JS,Ajax)易造成浏览器兼容性问题</strong></p> <p><!--[if !supportLists]--><strong>5、</strong><!--[endif]--><strong>查询列表,如果有重复信息(distinct)去重</strong></p> <p><!--[if !supportLists]--><strong>6、</strong><!--[endif]--><strong>登录信息,cookies缓存保留</strong></p> <p><!--[if !supportLists]--><strong>7、</strong><!--[endif]--><strong>JS格式控制验证处理,注意验证条件,验证未知,触发时间及验证的必要性</strong></p> <p><strong> </strong></p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p>软件测试中常见问题分类说明</p> <p> </p> <p><!--[if !supportLists]--><strong>一、    </strong><!--[endif]--><strong>规范化问题</strong></p> <p>包括软件规范和业务规范两大类,软件规范问题主要指操作过程中显而易见的错误或缺陷,非人性化设计、友好度较差等;业务规范问题主要指使用非标准或非惯例的业务术语、以及概念错位等。</p> <p>㈠ 软件规范问题</p> <p><!--[if !supportLists]-->1、<!--[endif]-->操作指示不明确</p> <p> 提示存在二意性、提示操作项 “忽略”、“取消”、“退出”等含义不明确。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p><!--[if !supportLists]-->2、<!--[endif]-->简单界面规范问题</p> <p>①按钮图片丢失、按钮图片不配套、按钮大小排列不美观;<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>②在引用数据窗口的下拉框中,没有根据实际数据来调整下拉框显示的%的大小和垂直滚动条,导致文本只显示了一部分;<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>③界面中存在色块;<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>④菜单排列顺序有误;<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>⑤窗体最小化以后在屏幕上找不到了,无法恢复原窗体;<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p><!--[if !supportLists]-->3、<!--[endif]-->操作过程缺乏人性化考虑</p> <p>①选项过于烦琐且不必要、设置不合适导致使用者遗漏、常规按钮排列顺序不一致<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>②常用功能不支持键盘操作。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>③单据处理中当由于存在空行时,提示用户输完其余内容,而没有自动删除空行。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p><!--[if !supportLists]-->4、<!--[endif]-->帮助文件规范问题</p> <p>①联机帮助字体、背景风格不统一;<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>②点击“<strong>?</strong>”按钮打开帮助文件,没有直接定位到内容;<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>③内容定位错误;<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>④帮助文件内部链接没有做全;<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>⑤文档内容排版错误;<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>⑥其他帮助错误。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>5、软件风格规范问题</p> <p>①控件的切换顺序有误、DataWindow的切换顺序有误;</p> <p>(视控件使用频繁程度设为<strong><span style="color:#FF0000;">(一般)</span></strong>和<strong><span style="color:#FF0000;">(轻度)</span></strong>)</p> <p>②DataWindow内容的对齐方式不正确(数值右对齐、日期中对齐、文字左对齐);<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>③数值的EditMask(掩膜)设置有误、日期的EditMask(掩膜)设置有误、日期的默认格式非YYYY.MM.DD、默认日期存在1900.00.00现象或其他不合理的值<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>④弹出窗口不在屏幕中间位置、退出系统缺少提示;<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>⑤重大操作(月结、恢复、修复等)缺少提示、重大操作没有自动弹出备份提示;<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>⑥快捷按钮定义不准确、快捷字母或数字重复、工具栏快捷键定义错误<strong><span style="color:#FF0000;">(轻度)</span></strong>,工具栏常用快捷键缺少<strong><span style="color:#FF0000;">(细微)</span></strong>;</p> <p>⑦违反窗口录入标准(一般可录入内容为白底蓝字、不可录入内容为白底黑字或灰底)、主窗口关闭后未关闭下属窗口;<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>⑧进入界面缺少焦点、焦点位置不合理、回车键切换焦点顺序错误、记录或条件选择不方便;<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>⑨窗口标题、版本号、版权标识、系统图片不统一;<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>⑩补丁、紧急放行版未加PN号;<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>⑾存在无明显用途或不必要的消息窗。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>  ㈡业务规范问题</p> <p><!--[if !supportLists]-->1、<!--[endif]-->业务术语规范问题</p> <p>概念偷换、业务名词混用、业务术语出现错别字、生造业务术语、同一功能指向使用不同术语、多个功能指向使用同一术语。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p><!--[if !supportLists]-->2、<!--[endif]-->操作提示用语不规范</p> <p>缺少必要的提示、提示语句描述不规范、语序随意、叙述风格不统一、口语化、对操作的必然后果或可能产生的后果没有提示、提示有误。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>3、用例错误</p> <p>引用业务规范错误、引用政策法律相关数据过时、引用相关公式错误、报表格式不符合业务规范或过时、报表或查询窗口中条目或款项设计不全导致信息失真或不可用。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>4、默认设置不规范</p> <p>数量或金额长度不符合日常应用、默认编码方案不可行或不科学、系统建表后自动插入的数据错误、各种默认的数据或编码体系彼此不统一。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p><!--[if !supportLists]--><strong>二、    </strong><!--[endif]--><strong>常规录入错误</strong></p> <p>         主要指数据录入、修改、保存、删除等常规操作过程中出现的各类弹出式出错信息,数据控制疏漏、数据编辑无效、设置无效等。</p> <p> ㈠ 数据编辑无效</p> <p>        1、由于建表失败导致的无法设置现象。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         2、各种设置完成后立即查询发现设置有不符现象。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>         3、数据编辑保存后,在其他相关功能中查询此数据,不符。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         4、数据经过变动、保存后,在其他功能中查询,变动没有及时体现。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         5、出现如“按!定位”等变量没有替换的错误、定位或搜索不可用。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>㈡ 出现Data Window Error</p> <p>         1、出现主键冲突导致的错误提示。(试图存入已存在的代码,数据库弹出提示未被程序接管。)<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>2、由于字段类型和赋值范围控制疏漏导致的Data. Window Error。(录入界面允许n+m位,字段实际宽度为n位,或由于数值掩膜设置出错导致数据库弹出错误提示未被程序接管。)<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>3、由于建表错误导致数据无法保存产生Data. Window Error。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>4、在同一操作界面中反复进行修改、查询、删除等编辑操作使驻留内存的数据与数据库中的数据不对应导致的Data Window Error。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>5、极限数据录入产生的Data Window Error。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>6、其他操作出现的Data Window Error。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>㈢ 出现非法操作提示(WIN98)或应用程序错误提示(WIN2000)</p> <p>1、报表或查询的条件录入中由于使用%、(、)等特殊符号产生的非法操作提示。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>2、对某一功能、某一组功能的常规操作出现非法操作提示。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>3、对某几个功能的组合操作、或一个功能较复杂的应用出现非法操作提示。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>㈣ .NET错误</p> <p>         包含所有的Microsoft Visual Studio .NET 2003 Error、或表现为“第××行代码错误”的提示。此类提示在程序任何地方都可能出现。(普通操作就出现的<strong><span style="color:#FF0000;">(严重)</span></strong>,复杂操作出现的<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>  ㈤ 残留的编译信息未及时清除</p> <p>         主要是开发员在开发过程中方便观察程序运行状态而留下的一些提示窗口,表现形式往往是弹出一个或几个标注感叹号(<strong>!</strong>)、问号(<strong>?</strong>)的消息框。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>  ㈥ 出现WINDOWS 系统提示</p> <p>         比如:文件删除失败、内存不够、无法执行此项任务、Out of Memory等<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>㈦ 系统停止响应</p> <p>         在没有并发操作的前提下出现程序停止响应状况、或者长时间停顿,需要点击Ctrl+Alt+Delete中止的现象 (海量数据恢复除外)。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>㈧ 非正常的失败或操作错误提示</p> <p>        1、操作过程中出现本不应该有的失败提示,如“数据库已被改乱,请到核算单位重新再建”、“数据保存失败”、“处理失败,请重试”等<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>        2、提示与出错的实际原因牛头不对马嘴,实际是A错误,显示B提示。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p><!--[if !supportLists]-->三、<!--[endif]-->流程错误</p> <p>         主要指程序运行过程中由于需求分析、功能设计中对产品功能缺少深入的考虑、或者在编码过程中的疏漏等原因,产生的逻辑控制错误或失败、数据控制错误等。</p> <p>  ㈠ 逻辑控制错误</p> <p>       1、初始通过时没有自动检测初始化设置的核心内容、或者检测错误。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         2、该禁止的操作流程未被禁止、不该禁止的操作流程被禁止。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>3、对已使用的条款、或存在记录的类别可以作删除操作。(如删除有固定资产的部门、删除已有员工发薪的员工大类等)。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>4、编码缺少必要的分级政策,直接导致后面流程取数及统计工作的正确性。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>5、数据恢复前未强行关闭当前工作窗口。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>6、初始化前事关流程走向的选项在初始化完成后仍旧可以改动。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>7、流程环节设计不合理、不规范。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>8、流程设计缺少重要的数据出口。</p> <p>9、对应可能出现的流程中意外情况,缺少可行的解决办法。(如不支持作废、重开、冲红等)。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>10、设计中对特定的流程及相应的单据缺乏检查、追踪及统计的功能。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>11、单据的处理流程前后因果关联错误。(如修改、审核、删除、作废之间的关系)<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>12、公式设置出现闭环、或几个公式间出现互为因果的现象,而能够设置成功。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>13、公式保存没有必要的合法性检查。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>14、短期使用版未控制<strong><span style="color:#FF0000;">(严重)</span></strong>或控制时间过长<strong><span style="color:#FF0000;">(一般)</span></strong>、正版有时间限制<strong><span style="color:#FF0000;">(严重)</span></strong>。</p> <p>15、软件无法安装或安装失败。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p> ㈡ 数据控制错误</p> <p>         1、取上一环节数据出错。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         2、下一环节取数后反填错误。未将所取的值记录下、未加上已取数的状态标志,出现统计出错、取数无限制、无法继续取剩余值等错误。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         3、下一环单据变动后反填错误。如对于单据删除、作废、修改等变动,上一环节未同步变动。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         4、公式设置出现闭环。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>         5、公式计算出错。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         6、单据录入四舍五入错误。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         7、上下流单据处理中四舍五入错误。(如订单开提货单、提货单开发票等一对一、一对多处理过程。)<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p><!--[if !supportLists]-->四、<!--[endif]-->报表和查询出错</p> <p>         1、报表取数错误。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         2、对报表进行过滤、筛选等操作,出现数据错误。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>3、报表分级汇总错误。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>4、报表分类统计错误。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>5、报表非数据元素显示错误。(如表头、制表日期、相关部门等)<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>6、项目属性修改导致统计错误。(比如业务员的部门转移、部门的调整、固定资产摊销部门的变化等统计条件变更导致计算错误。)<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>7、部分报表可以通过单击字段名排序,在此过程中出现的界面刷新错误、合计汇总错误等。   <strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>8、表与表之间同种指标数据不统一。(由于统计口径不同导致。)<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>9、初始数据未计算到相关报表。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>10、报表数据四舍五入错误。</p> <p>   ①由单据(或其他数据录入界面)汇总计算而来。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>②从其他报表取数或计算而来。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>③报表自身元素计算而来。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         11、对报表某一记录、元素深入查询出错。(比如在总表下查询明细表等,主要针对报表界面中的其他查询按钮)<strong><span style="color:#FF0000;">(严重)</span></strong>       </p> <p><!--[if !supportLists]-->五、<!--[endif]-->打印及打印相关操作错误</p> <p>         在程序中,用到打印功能的相当多,由于许多打印用类库处理,因此错误有较大的相似性,打印相关操作主要涉及打印机设置、打印字体设置、宽度设置、纸张设置。打印包括打印预览、套打、分页打印、满页打印、普通打印等</p> <p>   ㈠ 打印相关操作出错。</p> <p>          1、打印机及打印纸设置有误。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>          2、打印页面参数设置无效。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>          3、打印页面参数保存无效。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>          4、打印格式选择无效。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>          5、套打格式设置无效。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p> </p> <p>           6、打印效果转换输出无效。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>          7、打印标题及表头、表尾设置无效或错误。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p><strong><span style="color:#FF0000;">          </span></strong>8、同样的内容在不同打印机上显示效果不同(指数据正确的前提下)<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>   ㈡ 打印预览和打印问题</p> <p>          通常情况下,打印预览和打印的现象是一致的,如果非特殊指明的,下面的问题包含打印及预览两个方向。(所有打印必须在两种或两种以上打印机上通过测试。)</p> <p>          1、表头消失或错位。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>          2、表格线不全。<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>          3、信息打印表格出边界、打印内容有重叠效果。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>          4、打印标题与报表查看不一致。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>          5、报表打印时其他信息与查看不一致。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>          6、存在焦点时,打印效果异常。(比如选中区域为黑色、焦点不能预览或打印。)<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>          7、打印预览工具条和查看窗口操作后切换有问题。(如停止响应等)<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>          8、查看窗口退出后,打印工具条仍然可以使用。<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>          9、实际打印时跳行、走纸。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>          10、打印预览中能够编辑。<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>          11、页码打印错误。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>          12、打印实际效果与预览有差异。<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>          13、满页打印错误。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>          14、鼠标拖拉报表列头使之调整宽度、或隐藏某列后预览及打印效果出错。<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>15、同样的内容在不同打印机上显示效果不同(指数据正确的前提下)<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>          16、先预览后打印和直接打印数据或内容不同<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p><!--[if !supportLists]-->六、<!--[endif]-->接口及数据转移中的问题</p> <p>         1、各模块之间生成单据错误。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         2、各模块之间可以重复取数、或放弃取数(取数失败)后不能再取<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         3、各模块交叉查询数据出错。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>4、各模块之间传入传出、导入导出、汇入汇出错误。(数据传出与导入效果不同)<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>5、传出到第三方的数据格式不符合要求。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>6、第三方数据导入不能完全接收、或接收错误。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p><!--[if !supportLists]-->8、<!--[endif]-->切换网络服务器过程中产生的错误。<strong><span style="color:#FF0000;">(一般)</span></strong>    </p> <p><!--[if !supportLists]-->9、<!--[endif]-->不同数据库之间的数据查询失败或错误。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p><!--[if !supportLists]-->10、<!--[endif]-->其他网络、数据库之间通讯失败。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p><!--[if !supportLists]-->七、<!--[endif]-->权限及安全问题</p> <p>         1、匿名登录成功。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         2、明码登录。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         3、重大系统操作不强制重新登录。(如恢复数据完成、切换年度、年结完成等)<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>         4、对不可逆的操作缺少安全性提示。(如改动资产月末计提)<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>         5、没有遵循逐级授权的原则。<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>         6、权限设置中存在互为因果的同级项目、存在逻辑错误。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>7、某操作员没有某权限,但依然能够进行该种操作。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>8、只有针对一部分对象的权限,但能够进行全部对象的操作。(如部门权限失效等)<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>9、只有查询权的情况下,可以编辑成功。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p>10、没有某权限,但通过快捷菜单能够绕开。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>11、对权限进行多种组合,出现控制出错的现象。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>12、默认状态下权限设置不合理。<strong><span style="color:#FF0000;">(细微)</span></strong></p> <p>13、数据成批处理没有考虑到与权限设置存在冲突。<strong><span style="color:#FF0000;">(轻度)</span></strong></p> <p>14、缺少必要的权限。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>15、备份出来的数据未经压缩或加密,利用计事本就可以打开文件查阅信息。<strong><span style="color:#FF0000;">(一般)</span></strong></p> <p><!--[if !supportLists]-->八、<!--[endif]-->备份与恢复问题</p> <p>          1、极限宽度的数据备份恢复失败。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>          2、备份恢复数据比较,设置内容不正确。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>          3、备份恢复数据比较,存在记录丢失现象。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>          4、在各个数据库中,数据小数位长度不一。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>          5、数据库中原有数据的,恢复后部分数据未覆盖。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>          6、备份恢复过程中产生其他出错信息。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>          7、集中备份恢复与普通备份恢复结果不同。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p>          8、大数据量备份恢复记录条数丢失。<strong><span style="color:#FF0000;">(严重)</span></strong></p> <p><!--[if !supportLists]-->九、<!--[endif]-->并发问题</p> <p>          并发错误指两人或多人同时对同一流程、同一单据(或相关流程、相关单据)操作所引起的存取错误、系统停止响应等问题。<strong><span style="color:#FF0000;">(视相关单据和流程的重要性和并发操作的可能性划分问题严重程度)</span></strong></p> <p>          1、多人同时录入同类单据,出现单据号重复现象或出错提示。</p> <p>          2、多人同时对同一张单据进行同一流程处理,出现数据控制失败现象或出错提示。</p> <p>          3、多人同时对同一单据作不同操作(如审核、修改、删除、作废等),出现控制失败或出错提示。</p> <p>          4、按上问题,继续查询此单据,出现错误提示。</p> <p>          5、多人同时录入、编辑同一记录,出现出错信息、或数据保存错误。<!--[if gte vml 1]><v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m,l,21600r21600,l21600,xe"> <v:stroke joinstyle="miter"/> <v:path gradientshapeok="t" o:connecttype="rect"/> </v:shapetype><v:shape id="_x0000_s1042" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:275.1pt;margin-top:596.75pt;width:37.65pt; height:19pt;text-indent:0;z-index:251661312; mso-position-horizontal-relative:text;mso-position-vertical-relative:text' stroked="f"> <v:textbox style='mso-next-textbox:#_x0000_s1042'/> </v:shape><![endif]--><!--[if !vml]--></p> <table style="color:rgb(0,0,0);"> <tbody> <tr> <td><!--[endif]--><!--[if !mso]--> <table> <tbody> <tr> <td><!--[endif]--> <div> <p>严重</p> </div> <!--[if !mso]--></td> </tr> </tbody> </table> <!--[endif]--><!--[if !mso & !vml]--> <!--[endif]--><!--[if !vml]--></td> </tr> </tbody> </table> <p> </p> <p>          6、由于并发产生的提示错误。</p> <p>          7、在不同流程(不同单据)的同步处理中,由于操作涉及同一数据(表)导致的并发问题。</p> <p>          8、在不同模块的操作中,由于操作涉及同一数据(表)导致的并发问题。(如销售和库存同时调取存货结存数量)</p> <p> </p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1276483462924091392"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Web网站测试流程和方法)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1881313570810032128.htm" title="与机器学习的邂逅--自适应神经网络结构的深度解析" target="_blank">与机器学习的邂逅--自适应神经网络结构的深度解析</a> <span class="text-muted">想成为高手499</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E4%B8%8E%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">机器学习与人工智能</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>引言随着人工智能的发展,神经网络已成为许多应用领域的重要工具。自适应神经网络(AdaptiveNeuralNetworks,ANN)因其出色的学习能力和灵活性,逐渐成为研究的热点。本文将详细探讨自适应神经网络的基本概念、工作原理、关键技术、C++实现示例及其应用案例,最后展望未来的发展趋势。自适应神经网络的基本概念什么是自适应神经网络?自适应神经网络是一种能够根据输入数据的变化和环境的动态特性自动</div> </li> <li><a href="/article/1881312311709331456.htm" title="Kylin入门教程" target="_blank">Kylin入门教程</a> <span class="text-muted">-龙川-</span> <a class="tag" taget="_blank" href="/search/%E4%BB%8B%E7%BB%8D/1.htm">介绍</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">学习笔记</a><a class="tag" taget="_blank" href="/search/kylin/1.htm">kylin</a> <div>引言ApacheKylin是一个开源的分布式分析引擎,提供Hadoop上的多维分析(OLAP)能力,使得超大规模数据集的实时查询和分析成为可能。它通过预计算数据立方体来加速查询,使得复杂查询可以在亚秒级响应。本文将详细介绍Kylin的基本概念、安装与配置、基本操作及高级功能,帮助你全面掌握这款强大的数据分析工具。第一部分:Kylin简介1.1什么是Kylin?Kylin是由eBay开发并捐赠给Ap</div> </li> <li><a href="/article/1881311807231029248.htm" title="JavaScript的那些不可不知的知识" target="_blank">JavaScript的那些不可不知的知识</a> <span class="text-muted">遇见~未来</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>目录JavaScript基础JavaScript高级JavaScript基础数据类型:JavaScript的数据类型分为基本数据类型和引用数据类型。基本数据类型包含number(数字)、string(字符串)、boolean(布尔值)、null(空值)、undefined(未定义)。而像array(数组)、function(函数)等则属于引用数据类型。在内存存储方面,基本类型是按值存储在栈中,引用</div> </li> <li><a href="/article/1881310798874210304.htm" title="麒麟V10系统上安装Oracle" target="_blank">麒麟V10系统上安装Oracle</a> <span class="text-muted">乙龙</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/ffmpeg/1.htm">ffmpeg</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>以下是在麒麟V10系统上安装Oracle数据库的详细步骤:安装前准备检查系统版本:使用uname-a、cat/etc/os-release等命令检查服务器是麒麟V10系统。配置固定IP和本地yum源:挂载麒麟V10的iso文件到/mnt目录,如mount-oloopKylin-Server-10-SP1-Release-Build20-20210518-x86_64.iso/mnt。备份并修改/e</div> </li> <li><a href="/article/1881310294161027072.htm" title="Spring Boot中的响应与分层解耦架构" target="_blank">Spring Boot中的响应与分层解耦架构</a> <span class="text-muted">陈辰学长</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>SpringBoot中的响应与分层解耦架构在SpringBoot框架中,响应与分层解耦架构是两个核心概念,它们共同促进了应用程序的高效性、可维护性和可扩展性。下面将详细探讨这两个方面,包括SpringBoot的响应机制、分层解耦的三层架构以及它们在实际开发中的应用。一、SpringBoot的响应机制SpringBoot的响应机制主要依赖于其内置的Servlet容器(如Tomcat)和SpringM</div> </li> <li><a href="/article/1881310167316885504.htm" title="MCP(Model Context Protocol)模型上下文协议 进阶篇4 - 发展计划" target="_blank">MCP(Model Context Protocol)模型上下文协议 进阶篇4 - 发展计划</a> <span class="text-muted">AIQL</span> <a class="tag" taget="_blank" href="/search/MCP%28Model/1.htm">MCP(Model</a><a class="tag" taget="_blank" href="/search/Context/1.htm">Context</a><a class="tag" taget="_blank" href="/search/Protocol%29/1.htm">Protocol)</a><a class="tag" taget="_blank" href="/search/MCP/1.htm">MCP</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a><a class="tag" taget="_blank" href="/search/language/1.htm">language</a><a class="tag" taget="_blank" href="/search/model/1.htm">model</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E5%8D%8F%E8%AE%AE/1.htm">开源协议</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>ModelContextProtocol(MCP)正在快速发展。这一章概述了2025年上半年关键优先事项和未来方向的当前思考,尽管这些内容可能会随着项目的进展而发生显著变化。目前MCP的主要内容,除实战篇外(包括理论篇、番外篇和进阶篇)均已进入收尾阶段。在官方未发布重大更新前,预计短期不会新增其他篇章。远程MCP支持(RemoteMCPSupport)我们的首要任务是启用远程MCP连接,允许客户端</div> </li> <li><a href="/article/1881310165072932864.htm" title="自适应神经网络架构:原理解析与代码示例" target="_blank">自适应神经网络架构:原理解析与代码示例</a> <span class="text-muted">chian-ocean</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>个人主页:chian-ocean文章专栏自适应神经网络结构:深入探讨与代码实现1.引言随着深度学习的不断发展,传统神经网络模型在处理复杂任务时的局限性逐渐显现。固定的网络结构和参数对于动态变化的环境和多样化的数据往往难以适应,导致了过拟合或欠拟合的问题。自适应神经网络(AdaptiveNeuralNetworks,ANN)为此提供了一种新的解决方案,它可以根据数据特征和训练情况自动调整网络结构,从</div> </li> <li><a href="/article/1881310166914232320.htm" title="Python剪辑视频小妙招(moivepy库)" target="_blank">Python剪辑视频小妙招(moivepy库)</a> <span class="text-muted">对不起,我辜负了你</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>起因最近一直在b站上投稿喜羊羊与灰太狼的视频,但是苦于需要手动裁剪视频的片头和片尾,裁剪的多了就发现喜羊羊与灰太狼的视频片头几乎都是1分25秒结束,也就是持续85秒,片尾也差不多是持续1分02秒差不多也就是62秒,于是开始思考有没有什么方法可以替代人类进行自动化批量裁剪?思路发展迭代与确定一开始是想使用Premier里面的预设来做的,结果发现Premier里面高版本的导出变成了各种网站的标准,相比</div> </li> <li><a href="/article/1881310159343513600.htm" title="深度解析智能问答系统:如何打造精准、高效的AI对话架构?" target="_blank">深度解析智能问答系统:如何打造精准、高效的AI对话架构?</a> <span class="text-muted">和老莫一起学AI</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a><a class="tag" taget="_blank" href="/search/%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86/1.htm">产品经理</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a> <div>在人工智能的飞速发展中,智能问答系统(QA系统)逐渐成为了企业内部管理、客户服务、搜索引擎等多个领域中的关键技术。今天,我们将深入探讨一个基于大模型、自然语言处理、知识检索的智能问答系统的架构,详细介绍其技术原理、流程以及未来应用前景。一、系统整体概览在这个智能问答系统中,整个流程可以大致划分为两大部分:前端问答生成与后端离线数据处理。前端部分是用户交互的核心,通过用户的输入、关键词提取、检索和问</div> </li> <li><a href="/article/1881308262775713792.htm" title="数据复制一(主从复制详解)" target="_blank">数据复制一(主从复制详解)</a> <span class="text-muted">风清扬-独孤九剑</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%A4%8D%E5%88%B6/1.htm">数据复制</a><a class="tag" taget="_blank" href="/search/%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6/1.htm">主从复制</a> <div>目录一、主从复制二、同步复制和异步复制三、节点失效处理方案四、复制日志的实现五、复制滞后问题读自己的写单调读前缀一致读数据复制就是相同的数据在多台机器上传输,多台机器可以在一个机房也不可以跨区域。通过数据复制有以下好处:降低访问延迟(数据复制到离用户更近的地方)、当机器出现故障时,可以切换到副本机器,从而提高可用性、多台机器可以同时提供服务,从而提高吞吐量。现在计算机技术来说数据复制就几种方法:主</div> </li> <li><a href="/article/1881307884613070848.htm" title="SimpleHelp远程管理软件 任意文件读取漏洞复现(CVE-2024-57727)(附脚本)" target="_blank">SimpleHelp远程管理软件 任意文件读取漏洞复现(CVE-2024-57727)(附脚本)</a> <span class="text-muted">iSee857</span> <a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/1.htm">漏洞复现</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a> <div>免责申明:本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。0x01产品描述:SimpleHelp是一款远程支持和服务交付软件,它允许技术支持团队通过互联网远程访问和控制客户端计算机,以便进行故障排除、维护和提供技术支持。该软件设计用于简化远程协助过程,提高效率,并减少</div> </li> <li><a href="/article/1881307001804353536.htm" title="No module named ‘moviepy.editor‘" target="_blank">No module named ‘moviepy.editor‘</a> <span class="text-muted">weixin_66009678</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>python3.7版本后不支持frommoviepy.editor引用方式,由于是moviepy2.0.0版本修改方法:frommoviepy.editorimportVideoFileClip,clips_array改为frommoviepyimport*</div> </li> <li><a href="/article/1881306369835986944.htm" title="ros2_control 6 自由度机械臂" target="_blank">ros2_control 6 自由度机械臂</a> <span class="text-muted">kuan_li_lyg</span> <a class="tag" taget="_blank" href="/search/ROS/1.htm">ROS</a><a class="tag" taget="_blank" href="/search/%26amp%3B/1.htm">&</a><a class="tag" taget="_blank" href="/search/ROS2/1.htm">ROS2</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA/1.htm">机器人</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/ROS/1.htm">ROS</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E6%A2%B0%E8%87%82/1.htm">机械臂</a><a class="tag" taget="_blank" href="/search/%E6%8E%A7%E5%88%B6%E5%B7%A5%E7%A8%8B/1.htm">控制工程</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>系列文章目录前言ros2_control是一个实时控制框架,专为普通机器人应用而设计。标准的c++接口用于与硬件交互和查询用户定义的控制器命令。这些接口增强了代码的模块化和与机器人无关的设计。具体的应用细节,例如使用什么控制器、机器人有多少个关节以及它们的运动学结构,则通过YAML参数配置文件和通用机器人描述文件(URDF)来指定。最后,通过ROS2启动文件部署ros2_control框架。本教程</div> </li> <li><a href="/article/1881305487434117120.htm" title="同城双活和两地三中心架构设计" target="_blank">同城双活和两地三中心架构设计</a> <span class="text-muted">架构未来</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>一、同城双活同城双活是在同城或相近区域内建立两个机房。同城双机房距离比较近,通信线路质量较好,比较容易实现数据的同步复制,保证高度的数据完整性和数据零丢失。同城两个机房各承担一部分流量,一般入口流量完全随机,内部RPC调用尽量通过就近路由闭环在同机房,相当于两个机房镜像部署了两个独立集群,数据仍然是单点写到主机房数据库,然后实时同步到另外一个机房。下图展示了同城双活简单部署架构:服务调用基本在同机</div> </li> <li><a href="/article/1881304855620939776.htm" title="python多进程编程_深入理解python多进程编程" target="_blank">python多进程编程_深入理解python多进程编程</a> <span class="text-muted">weixin_39620001</span> <a class="tag" taget="_blank" href="/search/python%E5%A4%9A%E8%BF%9B%E7%A8%8B%E7%BC%96%E7%A8%8B/1.htm">python多进程编程</a> <div>1、python多进程编程背景python中的多进程最大的好处就是充分利用多核cpu的资源,不像python中的多线程,受制于GIL的限制,从而只能进行cpu分配,在python的多进程中,适合于所有的场合,基本上能用多线程的,那么基本上就能用多进程。在进行多进程编程的时候,其实和多线程差不多,在多线程的包threading中,存在一个线程类Thread,在其中有三种方法来创建一个线程,启动线程,</div> </li> <li><a href="/article/1881304729263337472.htm" title="python打开一个软件并进行操作_模拟试卷 B" target="_blank">python打开一个软件并进行操作_模拟试卷 B</a> <span class="text-muted">weixin_39551611</span> <div>原标题:模拟试卷B一、单项选择题1.关于算法的描述,以下选项中错误的是算法是指解题方案的准确而完整的描述算法具有可行性、确定性、有穷性的基本特征算法的复杂度主要包括时间复杂度和数据复杂度算法的基本要素包括数据对象的运算和操作及算法的控制结构2.关于数据结构的描述,以下选项中正确的是数据结构指相互有关联的数据元素的集合数据的存储结构是指反映数据元素之间逻辑关系的数据结构数据的逻辑结构有顺序、链接、索</div> </li> <li><a href="/article/1881304602842820608.htm" title="pnpm简介" target="_blank">pnpm简介</a> <span class="text-muted">渔老师</span> <a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>pnpm简介pnpm是什么和npm,yarn一样,pnpm是一个包管理工具。不一样的是,pnpm解决了npm和yarn一直都没有解决的痛点。在许多方面比npm和yarn更优秀。pnpm对比npm/yarn的优点更快速的依赖下载更高效的利用磁盘空间更优秀的依赖管理更快速的依赖下载根据官方提供的数据从图上我们可以看出,pnpm平均比npm和yarn快上2~3倍。这一点在依赖的下载上额外明显。更高效的利</div> </li> <li><a href="/article/1881304476342611968.htm" title="【Elasticsearch 实战应用】" target="_blank">【Elasticsearch 实战应用】</a> <span class="text-muted">wenshao.du</span> <a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a> <div>Elasticsearch实战应用在现代企业技术架构中,Elasticsearch因其出色的性能、可扩展性和易用性,成为了处理大规模数据和构建搜索引擎的首选工具。本文将通过一个实际案例,详细讲解如何在SpringBoot项目中集成Elasticsearch,进行数据索引、搜索、聚合分析等操作。1.Elasticsearch简介Elasticsearch是一个基于ApacheLucene构建的开源分</div> </li> <li><a href="/article/1881304474748776448.htm" title="python之openpyxl模块" target="_blank">python之openpyxl模块</a> <span class="text-muted">weixin_34248849</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/1.htm">数据结构与算法</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95/1.htm">测试</a> <div>一.Python操作EXCEL库的简介1.1Python官方库操作excelPython官方库一般使用xlrd库来读取Excel文件,使用xlwt库来生成Excel文件,使用xlutils库复制和修改Excel文件,这三个库只支持到Excel2003。1.2第三方库openpyxl介绍第三方库openpyxl(可读写excel表),专门处理Excel2007及以上版本产生的xlsx文件,xls和x</div> </li> <li><a href="/article/1881303088720048128.htm" title="深入解析:Postgres 和 MySQL 的核心差异与选择建议" target="_blank">深入解析:Postgres 和 MySQL 的核心差异与选择建议</a> <span class="text-muted">zhu hong yu</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/postgresql/1.htm">postgresql</a> <div>几十年来,关系数据库为无数应用程序提供了支持,它们仍然是许多现代系统的支柱。说到可用于生产的选项,有两种最为广泛使用的数据库,即PostgreSQL和MySQL。两者都提供了可靠的性能、可靠性和社区支持,但它们在处理数据的方式、功能集和配置难易程度方面存在明显差异。了解这些细微差别可以帮助您根据特定需求选择合适的数据库。何时应该使用PostgreSQL或MySQL?下表概括了一些最大的差异:标准P</div> </li> <li><a href="/article/1881302584896057344.htm" title="工作流开发过程" target="_blank">工作流开发过程</a> <span class="text-muted">Dev2010Daily</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/1.htm">软件开发基础知识</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/jbpm/1.htm">jbpm</a><a class="tag" taget="_blank" href="/search/%E5%BC%95%E6%93%8E/1.htm">引擎</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>1、首先要识别出工作流,即找出候选的工作流。2、可视化流程建模,此处将用到的是jBPM(jBPMGraphicalProcessDesignerGPD)editor3、开发运行时的元件4、布署运行时引擎jBPM提供了多种不同的布署场景:(1)引擎与实例同时使用---jBPMConsole(2)用JAVA类实例来实例化引擎5、实例化运行时实例6、监控和审计</div> </li> <li><a href="/article/1881302205823250432.htm" title="Strus2 @JSON(serialize=false),过滤不需要的变量" target="_blank">Strus2 @JSON(serialize=false),过滤不需要的变量</a> <span class="text-muted">sageparadise</span> <a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/s/1.htm">s</a><a class="tag" taget="_blank" href="/search/struts2.0/1.htm">struts2.0</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a> <div>在用struts2的Action加@ParentPackage("json-default")注解orstruts.xml配置文件中Action所在的package继承json-default,Action中方法返回json类型的数据时,在没有任何设定的情况下,改类下的所有getter方法的返回值将被包含在返回给客户端的JSON字符串中。需要剔除不需要包含的属性,在类结构结构中需要在getter方</div> </li> <li><a href="/article/1881301953858826240.htm" title="SOA 术语概述,第 2 部分: 开发流程、模型和资产" target="_blank">SOA 术语概述,第 2 部分: 开发流程、模型和资产</a> <span class="text-muted">rochening</span> <a class="tag" taget="_blank" href="/search/soa/1.htm">soa</a><a class="tag" taget="_blank" href="/search/uml/1.htm">uml</a><a class="tag" taget="_blank" href="/search/ibm/1.htm">ibm</a><a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E5%B9%B3%E5%8F%B0/1.htm">平台</a> <div>文档选项将此页作为电子邮件发送拓展Tomcat应用下载IBM开源J2EE应用服务器WASCE新版本V1.1级别:初级BertrandPortier(bportier@ca.ibm.com),IT架构师,IBM,Intel,Microsoft,HP2007年5月23日了解一些基本SOA术语。本文是本系列的第2部分,BertrandPortier将在其中定义一些术语(包括开发流程、模型和资产)并说明为</div> </li> <li><a href="/article/1881300692837134336.htm" title="python使用多进程multiprocessing" target="_blank">python使用多进程multiprocessing</a> <span class="text-muted">小蜗笔记</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>python使用多进程multiprocessing1多进程解释2进程的演示3进程池方法4pool.map()的解析pool.map()的基本用法返回值语法示例注意事项适用场景5pool.join()详解示例注意事项pool.join()的运行逻辑阻塞特性的影响对计算速度的影响示例总结6apply_async(),apply(),和pool.map()`apply_async()`特性:语法:`a</div> </li> <li><a href="/article/1881300566500503552.htm" title="Nginx 配置文件基础语法解析" target="_blank">Nginx 配置文件基础语法解析</a> <span class="text-muted">计算机毕设定制辅导-无忧学长</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Nginx/1.htm">Nginx</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>一、Nginx简介在当今的Web服务领域,Nginx无疑是一款备受瞩目的明星产品。它是由IgorSysoev开发的一款高性能的HTTP和反向代理服务器,同时也具备IMAP/POP3/SMTP代理服务功能。自2004年首次发布以来,凭借其卓越的性能、出色的稳定性和极高的灵活性,迅速在Web服务器市场中崭露头角。Nginx的高性能体现在多个方面。其采用了事件驱动和异步非阻塞的架构设计,使得它能够高效地</div> </li> <li><a href="/article/1881300439362760704.htm" title="《中型 Vue 项目:挑战与成长》" target="_blank">《中型 Vue 项目:挑战与成长》</a> <span class="text-muted">计算机毕设定制辅导-无忧学长</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Vue/1.htm">Vue</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/flutter/1.htm">flutter</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>一、引言在当今的前端开发领域,Vue作为一款渐进式JavaScript框架,以其强大的功能和灵活性备受开发者青睐。对于中型Vue项目而言,其重要性不言而喻。中型Vue项目通常在功能复杂度和规模上介于小型项目和大型项目之间,既需要应对一定的业务需求挑战,又要考虑开发效率和可维护性。中型Vue项目面临着诸多挑战与机遇。挑战方面,随着项目规模的扩大,代码的复杂性增加,如何进行有效的状态管理、组件化开发以</div> </li> <li><a href="/article/1881300440121929728.htm" title="大型系统中 HTTP 的优化与部署" target="_blank">大型系统中 HTTP 的优化与部署</a> <span class="text-muted">计算机毕设定制辅导-无忧学长</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/HTTP/1.htm">HTTP</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>一、引言在当今数字化时代,大型系统的构建与运行离不开高效的网络通信。HTTP,作为超文本传输协议,在大型系统中扮演着举足轻重的角色,负责客户端与服务器之间的信息传输,是实现各类网络应用的基础。无论是电商平台的商品展示与交易、社交网络的动态分享与互动,还是在线办公系统的文件传输与协作,都依赖HTTP协议来确保数据的准确、快速传递。随着业务的不断拓展和用户量的急剧增长,大型系统面临着高并发请求、海量数</div> </li> <li><a href="/article/1881300057861451776.htm" title="为什么程序员和老板不能直接沟通?" target="_blank">为什么程序员和老板不能直接沟通?</a> <span class="text-muted">街角那只猫</span> <a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>文章目录摘要为什么很多人从程序员到管理者,反而感到特别难?程序员想要和老板沟通需要克服什么小结摘要程序员掌握的都是面向程序的专业知识术语,对很多业务型,销售型的老板来说,他们根本不懂,所以沟通难度就很大。项目经理和产品经理基于原型图和设计图反而更好的老板沟通,老板通过原型图也很容易知道团队在做什么事,甚至可以根据原型直接提出修改建议。为什么很多人从程序员到管理者,反而感到特别难?这个的问题根本在于</div> </li> <li><a href="/article/1881299427663081472.htm" title="npm介绍" target="_blank">npm介绍</a> <span class="text-muted">小玉起起</span> <a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a> <div>npm(NodePackageManager)是Node.js的默认包管理工具,用于管理JavaScript和Node.js项目的依赖关系。它既是一个包管理工具,又是一个在线仓库,开发者可以通过它分享和下载开源的JavaScript库和工具。npm是世界上最大的开源软件注册表,托管着超过一百万个包。主要功能和特点1.包管理npm的核心功能是管理依赖包。它允许开发者方便地安装、更新和删除项目中的依赖</div> </li> <li><a href="/article/1881297532785586176.htm" title="Pinterest联盟营销综合指南" target="_blank">Pinterest联盟营销综合指南</a> <span class="text-muted">纯干苹果派</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E7%89%A9%E8%81%94%E7%BD%91/1.htm">物联网</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/ip/1.htm">ip</a> <div>Pinterest不仅是社交媒体平台,还是一个优质的视觉搜索引擎,独特的交互方式和平台生态使得Pinterest依然很受欢迎,因此它也成为最适合进行联盟营销的平台之一。一、为什么要使用Pinterest联盟营销1.活跃用户多Pinterest活跃用户数超过5亿,庞大的用户基础在一定程度上意味着更高的购买潜力。2.用户质量高根据PAConsulting和Pinterest的数据,奢侈品牌最关注的消费</div> </li> <li><a href="/article/121.htm" title="jquery实现的jsonp掉java后台" target="_blank">jquery实现的jsonp掉java后台</a> <span class="text-muted">知了ing</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a> <div> 什么是JSONP? 先说说JSONP是怎么产生的: 其实网上关于JSONP的讲解有很多,但却千篇一律,而且云里雾里,对于很多刚接触的人来讲理解起来有些困难,小可不才,试着用自己的方式来阐释一下这个问题,看看是否有帮助。 1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准; 2、</div> </li> <li><a href="/article/248.htm" title="Struts2学习笔记" target="_blank">Struts2学习笔记</a> <span class="text-muted">caoyong</span> <a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a> <div>SSH : Spring + Struts2 + Hibernate 三层架构(表示层,业务逻辑层,数据访问层) MVC模式 (Model View Controller) 分层原则:单向依赖,接口耦合 1、Struts2  =  Struts  + Webwork 2、搭建struts2开发环境    a>、到www.apac</div> </li> <li><a href="/article/375.htm" title="SpringMVC学习之后台往前台传值方法" target="_blank">SpringMVC学习之后台往前台传值方法</a> <span class="text-muted">满城风雨近重阳</span> <a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a> <div>springMVC控制器往前台传值的方法有以下几种: 1.ModelAndView    通过往ModelAndView中存放viewName:目标地址和attribute参数来实现传参:      ModelAndView mv=new ModelAndView();  mv.setViewName="success</div> </li> <li><a href="/article/502.htm" title="WebService存在的必要性?" target="_blank">WebService存在的必要性?</a> <span class="text-muted">一炮送你回车库</span> <a class="tag" taget="_blank" href="/search/webservice/1.htm">webservice</a> <div>做Java的经常在选择Webservice框架上徘徊很久,Axis  Xfire Axis2 CXF ,他们只有一个功能,发布HTTP服务然后用XML做数据传输。 是的,他们就做了两个功能,发布一个http服务让客户端或者浏览器连接,接收xml参数并发送xml结果。 当在不同的平台间传输数据时,就需要一个都能解析的数据格式。 但是为什么要使用xml呢?不能使json或者其他通用数据</div> </li> <li><a href="/article/629.htm" title="js年份下拉框" target="_blank">js年份下拉框</a> <span class="text-muted">3213213333332132</span> <a class="tag" taget="_blank" href="/search/java+web+ee/1.htm">java web ee</a> <div> <div id="divValue">test...</div>测试 //年份 <select id="year"></select> <script type="text/javascript"> window.onload = </div> </li> <li><a href="/article/756.htm" title="简单链式调用的实现技术" target="_blank">简单链式调用的实现技术</a> <span class="text-muted">归来朝歌</span> <a class="tag" taget="_blank" href="/search/%E6%96%B9%E6%B3%95%E8%B0%83%E7%94%A8/1.htm">方法调用</a><a class="tag" taget="_blank" href="/search/%E9%93%BE%E5%BC%8F%E5%8F%8D%E5%BA%94/1.htm">链式反应</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3/1.htm">编程思想</a> <div>在编程中,我们可以经常遇到这样一种场景:一个实例不断调用它自身的方法,像一条链条一样进行调用 这样的调用你可能在Ajax中,在页面中添加标签: $("<p>").append($("<span>").text(list[i].name)).appendTo("#result");   也可能在HQ</div> </li> <li><a href="/article/883.htm" title="JAVA调用.net 发布的webservice 接口" target="_blank">JAVA调用.net 发布的webservice 接口</a> <span class="text-muted">darkranger</span> <a class="tag" taget="_blank" href="/search/webservice/1.htm">webservice</a> <div> /** * @Title: callInvoke * @Description: TODO(调用接口公共方法) * @param @param url 地址 * @param @param method 方法 * @param @param pama 参数 * @param @return * @param @throws BusinessException </div> </li> <li><a href="/article/1010.htm" title="Javascript模糊查找 | 第一章 循环不能不重视。" target="_blank">Javascript模糊查找 | 第一章 循环不能不重视。</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/Way/1.htm">Way</a> <div> 最近受我的朋友委托用js+HTML做一个像手册一样的程序,里面要有可展开的大纲,模糊查找等功能。我这个人说实在的懒,本来是不愿意的,但想起了父亲以前教我要给朋友搞好关系,再加上这也可以巩固自己的js技术,于是就开始开发这个程序,没想到却出了点小问题,我做的查找只能绝对查找。具体的js代码如下: function search(){ var arr=new Array("my</div> </li> <li><a href="/article/1137.htm" title="狼和羊,该怎么抉择" target="_blank">狼和羊,该怎么抉择</a> <span class="text-muted">atongyeye</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a> <div>狼和羊,该怎么抉择 在做一个链家的小项目,只有我和另外一个同事两个人负责,各负责一部分接口,我的接口写完,并全部测联调试通过。所以工作就剩下一下细枝末节的,工作就轻松很多。每天会帮另一个同事测试一些功能点,协助他完成一些业务型不强的工作。 今天早上到公司没多久,领导就在QQ上给我发信息,让我多协助同事测试,让我积极主动些,有点责任心等等,我听了这话,心里面立马凉半截,首先一个领导轻易说</div> </li> <li><a href="/article/1264.htm" title="读取android系统的联系人拨号" target="_blank">读取android系统的联系人拨号</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/sqlite%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">sqlite数据库</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AE%B9%E6%8F%90%E4%BE%9B%E8%80%85/1.htm">内容提供者</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9C%8D%E5%8A%A1%E7%9A%84%E4%BD%BF%E7%94%A8/1.htm">系统服务的使用</a> <div>       联系人的姓名和号码是保存在不同的表中,不要一下子把号码查询来,我开始就是把姓名和电话同时查询出来的,导致系统非常的慢   关键代码:     1, 使用javabean操作存储读取到的数据 package com.example.bean; /** * * @author Admini</div> </li> <li><a href="/article/1391.htm" title="ORACLE自定义异常" target="_blank">ORACLE自定义异常</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BC%82%E5%B8%B8/1.htm">自定义异常</a> <div>实例: CREATE OR REPLACE PROCEDURE test_Exception ( ParameterA IN varchar2, ParameterB IN varchar2, ErrorCode OUT varchar2 --返回值,错误编码 ) AS /*以下是一些变量的定义*/ V1 NUMBER; V2 nvarc</div> </li> <li><a href="/article/1518.htm" title="查看端号使用情况" target="_blank">查看端号使用情况</a> <span class="text-muted">征客丶</span> <a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a> <div>一、查看端口 在windows命令行窗口下执行: >netstat -aon|findstr "8080" 显示结果: TCP     127.0.0.1:80         0.0.0.0:0    &</div> </li> <li><a href="/article/1645.htm" title="【Spark二十】运行Spark Streaming的NetworkWordCount实例" target="_blank">【Spark二十】运行Spark Streaming的NetworkWordCount实例</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/wordcount/1.htm">wordcount</a> <div>Spark Streaming简介   NetworkWordCount代码   /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with </div> </li> <li><a href="/article/1772.htm" title="Struts2 与 SpringMVC的比较" target="_blank">Struts2 与 SpringMVC的比较</a> <span class="text-muted">BlueSkator</span> <a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a><a class="tag" taget="_blank" href="/search/spring+mvc/1.htm">spring mvc</a> <div>1. 机制:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同。 2. 性能:spring会稍微比struts快。spring mvc是基于方法的设计,而sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制数据一样。spring</div> </li> <li><a href="/article/1899.htm" title="Hibernate在更新时,是可以不用session的update方法的(转帖)" target="_blank">Hibernate在更新时,是可以不用session的update方法的(转帖)</a> <span class="text-muted">BreakingBad</span> <a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/update/1.htm">update</a> <div>地址:http://blog.csdn.net/plpblue/article/details/9304459 public void synDevNameWithItil() {Session session = null;Transaction tr = null;try{session = HibernateUtil.getSession();tr = session.beginTran</div> </li> <li><a href="/article/2026.htm" title="读《研磨设计模式》-代码笔记-观察者模式" target="_blank">读《研磨设计模式》-代码笔记-观察者模式</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ import java.util.ArrayList; import java.util.List; import java.util.Observable; import java.util.Observer; /** * “观</div> </li> <li><a href="/article/2153.htm" title="重置MySQL密码" target="_blank">重置MySQL密码</a> <span class="text-muted">chenhbc</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E9%87%8D%E7%BD%AE%E5%AF%86%E7%A0%81/1.htm">重置密码</a><a class="tag" taget="_blank" href="/search/%E5%BF%98%E8%AE%B0%E5%AF%86%E7%A0%81/1.htm">忘记密码</a> <div>如果你也像我这么健忘,把MySQL的密码搞忘记了,经过下面几个步骤就可以重置了(以Windows为例,Linux/Unix类似): 1、关闭MySQL服务 2、打开CMD,进入MySQL安装目录的bin目录下,以跳过权限检查的方式启动MySQL mysqld --skip-grant-tables  3、新开一个CMD窗口,进入MySQL mysql -uroot  </div> </li> <li><a href="/article/2280.htm" title="再谈系统论,控制论和信息论" target="_blank">再谈系统论,控制论和信息论</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E7%89%A9/1.htm">生物</a><a class="tag" taget="_blank" href="/search/%E8%83%BD%E6%BA%90/1.htm">能源</a><a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%BA%94%E7%94%A8/1.htm">企业应用</a><a class="tag" taget="_blank" href="/search/%E9%A2%86%E5%9F%9F%E6%A8%A1%E5%9E%8B/1.htm">领域模型</a> <div>                            再谈系统论,控制论和信息论     偶然看</div> </li> <li><a href="/article/2407.htm" title="oracle moving window size与 AWR retention period关系" target="_blank">oracle moving window size与 AWR retention period关系</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>转自: http://tomszrp.itpub.net/post/11835/494147 晚上在做11gR1的一个awrrpt报告时,顺便想调整一下AWR snapshot的保留时间,结果遇到了ORA-13541这样的错误.下面是这个问题的发生和解决过程. SQL> select * from v$version; BANNER -------------------</div> </li> <li><a href="/article/2534.htm" title="Python版B树" target="_blank">Python版B树</a> <span class="text-muted">dieslrae</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>话说以前的树都用java写的,最近发现python有点生疏了,于是用python写了个B树实现,B树在索引领域用得还是蛮多了,如果没记错mysql的默认索引好像就是B树... 首先是数据实体对象,很简单,只存放key,value class Entity(object): '''数据实体''' def __init__(self,key,value)</div> </li> <li><a href="/article/2661.htm" title="C语言冒泡排序" target="_blank">C语言冒泡排序</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>代码示例: # include <stdio.h> //冒泡排序 void sort(int * a, int len) { int i, j, t; for (i=0; i<len-1; i++) { for (j=0; j<len-1-i; j++) { if (a[j] > a[j+1]) // >表示升序 </div> </li> <li><a href="/article/2788.htm" title="自定义导航栏样式" target="_blank">自定义导航栏样式</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%AE%9A%E4%B9%89/1.htm">自定义</a> <div>-(void)setupAppAppearance { [[UILabel appearance] setFont:[UIFont fontWithName:@"FZLTHK—GBK1-0" size:20]]; [UIButton appearance].titleLabel.font =[UIFont fontWithName:@"FZLTH</div> </li> <li><a href="/article/2915.htm" title="11.性能优化-优化-JVM参数总结" target="_blank">11.性能优化-优化-JVM参数总结</a> <span class="text-muted">frank1234</span> <a class="tag" taget="_blank" href="/search/jvm%E5%8F%82%E6%95%B0/1.htm">jvm参数</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a> <div>1.堆 -Xms --初始堆大小 -Xmx --最大堆大小 -Xmn --新生代大小 -Xss --线程栈大小 -XX:PermSize  --永久代初始大小 -XX:MaxPermSize  --永久代最大值 -XX:SurvivorRatio --新生代和suvivor比例,默认为8 -XX:TargetSurvivorRatio --survivor可使用</div> </li> <li><a href="/article/3042.htm" title="nginx日志分割 for linux" target="_blank">nginx日志分割 for linux</a> <span class="text-muted">HarborChung</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a> <div>nginx日志分割 for linux 默认情况下,nginx是不分割访问日志的,久而久之,网站的日志文件将会越来越大,占用空间不说,如果有问题要查看网站的日志的话,庞大的文件也将很难打开,于是便有了下面的脚本   使用方法,先将以下脚本保存为 cutlog.sh,放在/root 目录下,然后给予此脚本执行的权限   复制代码代码如下: chmo</div> </li> <li><a href="/article/3169.htm" title="Spring4新特性——泛型限定式依赖注入" target="_blank">Spring4新特性——泛型限定式依赖注入</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/spring4/1.htm">spring4</a><a class="tag" taget="_blank" href="/search/%E6%B3%9B%E5%9E%8B%E5%BC%8F%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5/1.htm">泛型式依赖注入</a> <div>Spring4新特性——泛型限定式依赖注入 Spring4新特性——核心容器的其他改进 Spring4新特性——Web开发的增强 Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC  Spring4新特性——Groovy Bean定义DSL Spring4新特性——更好的Java泛型操作API  Spring4新</div> </li> <li><a href="/article/3296.htm" title="centOS安装GCC和G++" target="_blank">centOS安装GCC和G++</a> <span class="text-muted">liuxihope</span> <a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/gcc/1.htm">gcc</a> <div>Centos支持yum安装,安装软件一般格式为yum install .......,注意安装时要先成为root用户。 按照这个思路,我想安装过程如下: 安装gcc:yum install gcc 安装g++: yum install g++ 实际操作过程发现,只能有gcc安装成功,而g++安装失败,提示g++ command not found。上网查了一下,正确安装应该</div> </li> <li><a href="/article/3423.htm" title="第13章 Ajax进阶(上)" target="_blank">第13章 Ajax进阶(上)</a> <span class="text-muted">onestopweb</span> <a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a> <div>index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/</div> </li> <li><a href="/article/3550.htm" title="How to determine BusinessObjects service pack and fix pack" target="_blank">How to determine BusinessObjects service pack and fix pack</a> <span class="text-muted">blueoxygen</span> <a class="tag" taget="_blank" href="/search/BO/1.htm">BO</a> <div>http://bukhantsov.org/2011/08/how-to-determine-businessobjects-service-pack-and-fix-pack/   The table below is helpful. Reference   BOE XI 3.x 12.0.0. y BOE XI 3.0 12.0. x. y BO</div> </li> <li><a href="/article/3677.htm" title="Oracle里的自增字段设置" target="_blank">Oracle里的自增字段设置</a> <span class="text-muted">tomcat_oracle</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div> 大家都知道吧,这很坑,尤其是用惯了mysql里的自增字段设置,结果oracle里面没有的。oh,no   我用的是12c版本的,它有一个新特性,可以这样设置自增序列,在创建表是,把id设置为自增序列 create table t ( id       number generated by default as identity (start with 1 increment b</div> </li> <li><a href="/article/3804.htm" title="Spring Security(01)——初体验" target="_blank">Spring Security(01)——初体验</a> <span class="text-muted">yang_winnie</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/Security/1.htm">Security</a> <div>Spring Security(01)——初体验     博客分类: spring Security Spring Security入门安全认证        首先我们为Spring Security专门建立一个Spring的配置文件,该文件就专门用来作为Spring Security的配置</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>