日历
| |||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
| 1 | 2 | 3 | 4 | ||||||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | |||
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | |||
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | |||
| 26 | 27 | 28 | 29 | 30 | 31 | ||||
搜索标题
友情链接
统计信息
- 访问量: 779
- 日志数: 11
- 建立时间: 2007-07-17
- 更新时间: 2007-10-16
我的最新日志
-
我又回来了
2007-10-16
我的心离开了很长时间,又回到了这里,
希望自己能明白自己,一步步的坚持走下去。
-
软件测试工具大全<转>
2007-8-09
压力测试工具集
工具 相关网址 LoadRunner http://www.mercuryinteractive.com/products/loadrunner/ SilkPerformer http://www.segue.com/products/load-stress-performance-testing/index.asp QALoad http://www.compuware.com/products/qacenter/qaload.htm WebLoad OpenSTA 开源 Jmeter 开源
自动测试工具集
工具 相关网址 WinRunner http://www.mercuryinteractive.com/products/winrunner/ SilkTest http://www.segue.com/products/functional-regressional-testing/silktest.asp QARun http://www.compuware.com/products/qacenter/qarun.htm SAFS http://safsdev.sourceforge.net/Default.htm Bug追踪系统
工具 相关网址 JIRA http://www.atlassian.com/software/jira/ Bugzilla http://www.bugzilla.org TestDirector http://www.mercuryinteractive.com/products/testdirector/ GNATS http://www.gnu.org/software/gnats/ TestTrackPro http://www.seapine.com/ttpro.html -
向大家推荐一本书
2007-8-07
周末去了一趟中关村图书大厦,想看看有没有关于测试方面的新书,因为这段时间看的都是翻译过来的书,外国的测试技术的确先进于我们太多,但是我个人觉得外国人的表达习惯和中国人是大大不同,明明几句话就能讲清楚的,绕来绕去还是那个意思,呵呵,不过内容还是很精典的。
图书大厦关于测试的书,不是很多,可能呈给大家都是最近新出版的书,时间仓促,我翻翻,有一本觉得挺适合尤其像我这样的初学者《软件测试实战-web msn》。
-
主流测试工具介绍WinRunner
2007-7-30
主流测试工具介绍WinRunner:强大的企业级自动化测试工具
Mercury Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。
企业级应用可能包括Web应用系统,ERP系统,CRM系统等等。这些系统在发布之前,升级之后都要经过测试,确保所有功能都能正常运行,没有任何错误。如何有效地测试不断升级更新且不同环境的应用系统,是每个公司都会面临的问题。
如果时间或资源有限,这个问题会更加棘手。人工测试的工作量太大,还要额外的时间来培训新的测试人员等等。为了确保那些复杂的企业级应用在不同环境下都能正常可靠地运行,你需要一个能简单操作的测试工具来自动完成应用程序的功能性测试。
轻松创建测试
用WinRuuner创建一个测试,只需点击鼠标和键盘,完成一个标准的业务操作流程,WinRunner自动记录你的操作并生成所需的脚本代码。这样,即使计算机技术知识有限的业务用户轻松创建完整的测试。你还可以直接修改测试脚本以满足各种复杂测试的需求。WinRunner提供这两种测试创建方式,满足测试团队中业务用户和专业技术人员的不同需求。
插入检查点
在记录一个测试的过程中,可以插入检查点,检查在某个时刻/状态下,应用程序是否运行正常。在插入检查点后,WinRunner会收集一套数据指标,在测试运行时对其一一验证。WinRunner提供几种不同类型的检查点,包括文本的、GUI、位图和数据库。例如,用一个位图检查点,你可以检查公司的图标是否出现于指定位置。
检验数据
除了创建并运行测试,WinRunner还能验证数据库的数值,从而确保业务交易的准确性。例如,在创建测试时,可以设定哪些数据库表和记录需要检测;在测试运行时,测试程序就会自动核对数据库内的实际数值和预期的数值。WinRunner自动显示检测结果,在有更新/删除/插入的记录上突出显示以引起注意。
增强测试
为了彻底全面地测试一个应用程序,需要使用不同类型的数据来测试。WinRunner的数据驱动向导( Data Driver Wizard)可以让你简单地点击几下鼠标,就可以把一个业务流程测试转化为数据驱动测试,从而反映多个用户各自独特且真实的行为。
以一个订单输入的流程为例,你可能希望把订单号或客户名称作为可变栏,用多套数据进行测试。使用Data Driver Wizard,你可以选择订单号或客户名称用数据表格文件中的哪个栏目的数据替换。你可以把订单号或客户名称输入数据表格文件,或从其它表格和数据库中导入。数据驱动测试不仅节省了时间和资源,又提高了应用的测试覆盖率。
WinRunner还可以通过Function Generator增加测试的功能。使用Function Generator可以从目录列表中选择一个功能增加到你的测试中以提高测试能力。例如,你可以选择”calendar”,然后从日历功能的下属目录中选择,如Calendar_select_date(),然后你可以直观地输入参数,把这个功能插入到你的测试中。
针对相当数量的企业应用里非标准对象,WinRunner提供了Virtual Object Wizard来识别以前未知的对象。使用Virtual Object Wizard,你可以选择未知对象的类型,设定标识和命名。在录制使用该对象的测试时,WinRunner会自动对应它的名字,从而提高测试脚本的可读性和测试质量。
运行测试
创建好测试脚本,并插入检查点和必要的添加功能后,你就可以开始运行测试。运行测试时,WinRunner会自动操作应用程序,就象一个真实的用户根据业务流程执行着每一步的操作。测试运行过程中,如有网络消息窗口出现或其它意外事件出现,WinRunner也会根据预先的设定排除这些干扰。
分析结果
测试运行结束后,你需要分析测试结果。WinRunner通过交互式的报告工具来提供详尽的、易读的报告。报告中会列出测试中发现的错误内容、位置、检查点和其它重要事件,帮助你对测试结果进行分析。这些测试结果还可以通过Mercury Interactive的测试管理工具TestDirector来查阅。
维护测试
随着时间的推移,开发人员会对应用程序做进一步的修改,并需要增加另外的测试。使用WinRunner,你不必对程序的每一次改动都重新创建你的测试。WinRunner可以创建在整个应用程序生命周期内都可以重复使用的测试,从而大大地节省时间和资源,充分利用你的测试投资。
每次记录测试时,WinRunner会自动创建一个GUI Map文件以保存应用对象。这些对象分层次组织,既可以总览所有的对象,也可以查询某个对象的详细信息。一般而言,对应用程序的任何改动都会影响到成百上千个测试。通过修改一个GUI Map文件而非无数个测试,WinRunner可以方便地实现测试重用。
帮助你的应用程序为无线应用作准备
随着无线设备种类和数量的增加,你的应用程序测试计划需要同时满足传统的基于浏览器的用户和无线浏览设备,如移动电话、传呼机和个人数字助理(PDA)。
无线应用协议是一种公开的、全球性的网络协议,用来支持标准数据格式化和无线设备信号的传输。
使用WinRunner,测试人员可以利用微型浏览模拟器来记录业务流程操作,然后回放和检查这些业务流程功能的正确性。 -
WinRunner是什么
2007-7-30
增强测试的功能和灵活性而不用任何编程:Function Generator 提供了一种快速且不会出错的方式用于设计测试和增强脚本,而不需要任何编程知识。测试人员可能只针对 GUI 对象,Mercury WinRunner?将对其进行检查,确定其类,推荐要使用的相应功能。
使用多个验证类型确保功能正常:Mercury WinRunner 为文本、GUI、位图、URL 链接和数据库提供了检查点,使测试人员可用来对比预期结果和实际结果,以及用大量 GUI 对象及其功能来确定潜在的问题。
验证后台数据库中的数据完整性:内置数据库验证功能确定数据库中存储的值,确保事务处理的准确性,以及更新、删除和添加的记录的数据完整性。
快速查看、存储和验证测试对象的属性:Mercury WinRunner 的 GUI Spy 自动确定、记录和显示标准 GUI 对象、ActiveX 控件和 Java 对象与方法的属性。这将确保脚本识别用户界面中的每个对象,并且可以测试这些对象。
维护测试和生成可重用脚本:GUI 图提供一个集中式的对象库,使测试人员可验证和修改任何测试对象。这些更改然后自动传送给所有相应脚本,从而不必在每次修改应用程序时生成新脚本。
以单个应用程序测试多种环境:Mercury WinRunner 支持多达 30 种环境,包括 Web、Java 和 Visual Basic 等。此外,还为一流的 ERP/CRM 应用程序(如 SAP、Siebel 和 PeopleSoft)大量其它程序提供针对性解决方案。
简化测试脚本的创建:Mercury WinRunner 的 DataDriver 向导大大简化了准备测试数据和脚本的过程。这样可以优化 QA 资源的利用,从而推动测试的深入进行。
自动确定数据的不一致性:Mercury WinRunner 为文本、GUI、位图、URL 和数据库使用多种验证,检查和对比预期结果和实际结果。将应用程序发布为产品时,这将确保功能的稳定性和业务交易的执行。
通过浏览器验证应用程序:Mercury WinRunner 让您可以在 Internet Explorer、Netscape 和 AOL 中使用相同的测试来验证应用程序。这样既节省测试时间,又减少了必须开发和维护的脚本数量。
自动恢复崩溃的已测试应用程序:测试运行过程中的意外事件、错误和应用程序崩溃可能破坏测试过程和歪曲测试结果。使用 Mercury WinRunner 的恢复管理器可以进行无人值守恢复,并提供一个引导,用于指导确定恢复方案的过程。
充分利用其它测试产品中的投入:Mercury WinRunner 完全集成了其它测试解决方案,包括用于负荷测试的 Mercury LoadRunner?和用于全局测试管理的 Mercury TestDirector。而且,组织可以结合 Mercury QuickTest Professional 重用 Mercury WinRunner 测试脚本。
与 Mercury Business Process Testing 完全集成:由于 Mercury WinRunner 8.2 与 Mercury Business Process Testing 兼容,您可以创建业务流程组件,并将现有的 Mercury WinRunner 脚本转化为组件。有了 Mercury Business Process Testing,主题专家和自动化工程师就可以相互协作,提高效率。 -
软件测试的14种类型(二)<转贴>
2007-7-30
8. 配置测试
又叫兼容性测试。配置测试核实测试对象在不同的软件和硬件配置中的运行情况。在大多数生产环境中,客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。客户机工作站可能会安装不同的软件例如,应用程序、驱动程序等而且在任何时候,都可能运行许多不同的软件组合,从而占用不同的资源。(如浏览器版本,操作系统版本等)
下面列出主要配置测试
8.1 浏览器兼容性
1) 测试软件在不同产商的浏览器下是否能够正确显示与运行;
2) 比如测试IE,Natscape浏览器下是否可以运行这套软件?8.2 操作系统兼容性
1) 测试软件在不同操作系统下是否能够正确显示与运行;
2) 比如测试WINDOWS98,WINDOWS 2000,WINDOWS XP,LINU, UNIX下是否可以运行这套软件?8.3 硬件兼容性
1) 测试与硬件密切相关的软件产品与其他硬件产品的兼容性,比如该软件是少在并口设备中的,测试同时使用其他并口设备,系统是否可以正确使用.
2) 比如在INTER,舒龙CPU芯片下系统是否能够正常运行?
3) 这样的测试必须建立测试实验室,在各种环境下进行测试。9. 安装测试
安装测试有两个目的。第一个目的是确保该软件在正常情况和异常情况的不同条件下: 例如,进行首次安装、升级、完整的或自定义的安装_都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。这通常是指运行大量为功能测试制定的测试。
安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。
10. 多语种测试
又称本地化测试,是指为各个地方开发产品的测试,如英文版,中文版等等,包括程序是否能够正常运行,界面是否符合当地习俗,快捷键是否正常起作用等等,特别测试在A语言环境下运行B语言软件(比如在英文win98下试图运行中文版的程序),出现现象是否正常。
本地化测试还要考虑:
1) 当语言从A翻译到B,字符长度变化是否影响页面效果。比如中文软件中有个按键叫“看广告”,翻译到英文版本中为“View advertisement”可能影响页面的美观程度
2) 要考虑同一单词在各个国家的不同意思,比如football在英文中为足球,而美国人使用中可能理解为美式橄榄球。
3) 要考虑各个国家的民族习惯,比如龙个美国中被理解邪恶的象征,但翻译到中国,中国人认为为吉祥的象征。11. 文字测试
文字测试测试软件中是否拼写正确,是否易懂,不存在二义性,没有语法错误;文字与内容是否有出入等等,包括图片文字。
比如:“比如,请输入正确的证件号码!”何谓正确的证件号码,证件可以为身份证,驾驶证,也可为军官证,如果改为“请输入正确的身份证号码!”用户就比较容易理解了。12. 分辨率测试
测试在不同分辨率下,界面的美观程度,分为800*600,1024*768,1152*864,1280*768,1280*1024,1200*1600大小字体下测试。一个好的软件要有一个极佳的分辨率,而在其他分辨率下也都能可以运行。
13. 发布测试
主要在产品发布前对一些附带产品,比如说明书,广告稿等进行测试
13.1 说明书测试
主要为语言检查,功能检查,图片检查
语言检查:检查说明书语言是否正确,用词是否易于理解;
功能检查:功能是否描述完全,或者描述了并没有的功能等;
图片检查::检查图片是否正确13.2 宣传材料测试
主要测试产品中的附带的宣传材料中的语言,描述功能,图片13.3 帮助文件测试
帮助文件是否正确,易懂,是否人性化。最好能够提供检索功能。13.4 广告用语
产品出公司前的广告材料文字,功能,图片,人性化的检查14 文档审核测试
文档审核测试目前越来越引起人们的重视,软件质量不是检查出来的,而是融进软件开发中来。前置软件测试发越来越受到重视。请看一个资料:
文档审核测试主要包括需求文档测试,设计文档测试,为前置软件测试测试中的一部分。14.1 需求文档测试
主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现;14.2 设计文档测试
测试设计是否符合全部需求以及设计是否合理。总结
据美国软件质量安全中心2000年对美国一百家知名的软件厂商统计,得出这样一个结论:软件缺陷在开发前期发现比在开发后期发现资金,人力上节约90%;软件缺陷在推向市场前发现比在推出后发现资金,人力上节约90%。所以说软件的缺陷应该尽早发现。不是所有的软件都要进行任何类型的软件测试的,可以根据产品的具体情况进行组装测试不同的类型。参考文献
《Rational统一过程模型》
《软件测试》 -
软件测试的14种类型(一)<转贴>
2007-7-30
软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。本文主要描述软件测试的类型。
1. 数据和数据库完整性测试
数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。
数据库完整性原即:
主码完整性:主码不能为空;
外码完整性:外码必须等于对应的主码或者为空。
数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统(DBMS),还需要进行深入的研究,以确定可以支1持测试的工具和技术。
比如,有两张表:部门和员工。部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。如果某个员工所属部门的编号为##,但是##在部门编号中确找不到,这就违反外码完整性原则。
员工类型如下定义:0:职工,1:职员,2:实习生。但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。
2. 白盒测试白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。白盒测试分为动态白盒测试和静态白盒测试
2.1 静态白盒测试
利用眼睛,浏览代码,凭借经验,找出代码中的错误或者代码中不符合书写规范的地方。比如,代码规范中规定,函数必须为动宾结构。而黑盒测试发现一个函数定义如下:Function NameGet(){
….
}这是属于不符合开发规范的错误。
有这样一段代码:
if (i<0) & (i>="0)
…这段代码交集为整个数轴,IF语句没有必要
I="0;
while(I>100){
J="J+100;
T="J*PI;
}在循环体内没有I的增加,bug产生。
2.2 动态白盒测试
利用开发工具中的调式工具进行测试。比如一段代码有4个分支,输入4组不同的测试数据使4组分支都可以走通而且结果必须正确。
看一段代码if(I<0){
P1
}else{
P2
}在调试中输入I="-1,P1程序段通过,P2程序段未通过,属于动态黑盒测试的缺陷
3. 功能测试
功能测试指测试软件各个功能模块是否正确,逻辑是否正确。
对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。此类测试基于黑盒技术,该技术通过图形用户界面(GUI) 与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。
比如一个对电子商务系统,前台用户浏览商品-放入购物车-进入结账台,后台处理订单,配货,付款,发货,这一系列流程必须正确无误的走通,不能存在任何的错误。
4. UI测试UI测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等
用户界面(UI) 测试用于核实用户与软件之间的交互。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI 测试还可确保UI 中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操作性测试。UI测试比较主观,与测试人员的喜好有关
比如:页面基调颜色刺眼;用户登入页面比较难于找到,文字中出现错别字,页面图片范围太广等都属于UI测试中的缺陷,但是这些缺陷都不太严重。5. 性能测试
性能测试主要测试软件测试的性能,包括负载测试,强度测试,数据库容量测试,基准测试以及基准测试
5.1负载测试
负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
比如,在B/S结构中用户并发量测试就是属于负载测试的用户,可以使用webload工具,模拟上百人客户同时访问网站,看系统响应时间,处理速度如何?5.2 强度测试
强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求的软硬件水平要求。
实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。
比如:一个系统在内存366M下可以正常运行,但是降低到258M下不可以运行,告诉内存不足,这个系统对内存的要求就是366M。5.3 数据库容量测试
数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。
数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。
比如,在电子商务系统中,通过insert customer 往user表中插入10 000数据,看其是否可以正常显示顾客信息列表页面,如果要求达到最多可以处理100 000个客户,但是顾客信息列表页面不能够在规定的时间内显示出来,就需要调整程序中的SQL查询语句;如果在规定的时间内显示出来,可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。5.4 基准测试
基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。
如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你可以测试你这套系统,看看哪些地方比用友财务系统好,哪些地方差?以便改进自己的系统,也可为产品广告提供数据。5.5 竞争测试
软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。比如:一台机器上即安装您的财务系统,又安装用友财务系统。当CPU占有率下降后,看看是否能够强过用友财务系统,而是自己的系统能够正常运行6. 安全性和访问控制测试
安全性和访问控制测试侧重于安全性的两个关键方面:
1) 应用程序级别的安全性,包括对数据或业务功能的访问
2) 系统级别的安全性,包括对系统的登录或远程访问。6.1 应用程序级别的安全性
可确保:在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。例如,可能会允许所有人输入数据,创建新账户,但只有管理员才能删除这些数据或账户。如果具有数据级别的安全性,测试就可确保“用户类型一”能够看到所有客户消息(包括财务数据),而“用户二”只能看见同一客户的统计数据。
比如B/S系统,不通过登入页面,直接输入URL,看其是否能够进入系统?6.2 系统级别的安全性
可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。
比如输入管理员账户,检查其密码是否容易猜取,或者可以从数据库中获得?7. 故障转移和恢复测试
故障转移和恢复测试指当主机软硬件发生灾难时候,备份机器是否能够正常启动,使系统是否可以正常运行,这对于电信,银行等领域的软件是十分重要的。
故障转移和恢复测试可确保测试对象能成功完成故障转移,并能从导致意外数据损失或数据完整性破坏的各种硬件、软件或网络故障中恢复。
故障转移测试可确保:对于必须持续运行的系统,一旦发生故障,备用系统就将不失时机地“顶替”发生故障的系统,以避免丢失任何数据或事务。
恢复测试是一种对抗性的测试过程。在这种测试中,将把应用程序或系统置于极端的条件下(或者是模拟的极端条件下),以产生故障(例如设备输入/输出(I/O) 故障或无效的数据库指针和关健字)。然后调用恢复进程并监测和检查应用程序和系统,核实应用程序或系统和数据已得到了正确的恢复。一定要注意定时备份,比如电信系统,突然主机程序发生死机,备份机器是否能够启动,使系统能够正常运行,从而不影响用户打电话? -
软件测试的14种类型(一)<转贴>
2007-7-30
软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。本文主要描述软件测试的类型。
1. 数据和数据库完整性测试
数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。
数据库完整性原即:
主码完整性:主码不能为空;
外码完整性:外码必须等于对应的主码或者为空。
数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统(DBMS),还需要进行深入的研究,以确定可以支1持测试的工具和技术。
比如,有两张表:部门和员工。部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。如果某个员工所属部门的编号为##,但是##在部门编号中确找不到,这就违反外码完整性原则。
员工类型如下定义:0:职工,1:职员,2:实习生。但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。
2. 白盒测试白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。白盒测试分为动态白盒测试和静态白盒测试
2.1 静态白盒测试
利用眼睛,浏览代码,凭借经验,找出代码中的错误或者代码中不符合书写规范的地方。比如,代码规范中规定,函数必须为动宾结构。而黑盒测试发现一个函数定义如下:Function NameGet(){
….
}这是属于不符合开发规范的错误。
有这样一段代码:
if (i<0) & (i>="0)
…这段代码交集为整个数轴,IF语句没有必要
I="0;
while(I>100){
J="J+100;
T="J*PI;
}在循环体内没有I的增加,bug产生。
2.2 动态白盒测试
利用开发工具中的调式工具进行测试。比如一段代码有4个分支,输入4组不同的测试数据使4组分支都可以走通而且结果必须正确。
看一段代码if(I<0){
P1
}else{
P2
}在调试中输入I="-1,P1程序段通过,P2程序段未通过,属于动态黑盒测试的缺陷
3. 功能测试
功能测试指测试软件各个功能模块是否正确,逻辑是否正确。
对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。此类测试基于黑盒技术,该技术通过图形用户界面(GUI) 与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。
比如一个对电子商务系统,前台用户浏览商品-放入购物车-进入结账台,后台处理订单,配货,付款,发货,这一系列流程必须正确无误的走通,不能存在任何的错误。
4. UI测试UI测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等
用户界面(UI) 测试用于核实用户与软件之间的交互。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI 测试还可确保UI 中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操作性测试。UI测试比较主观,与测试人员的喜好有关
比如:页面基调颜色刺眼;用户登入页面比较难于找到,文字中出现错别字,页面图片范围太广等都属于UI测试中的缺陷,但是这些缺陷都不太严重。5. 性能测试
性能测试主要测试软件测试的性能,包括负载测试,强度测试,数据库容量测试,基准测试以及基准测试
5.1负载测试
负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
比如,在B/S结构中用户并发量测试就是属于负载测试的用户,可以使用webload工具,模拟上百人客户同时访问网站,看系统响应时间,处理速度如何?5.2 强度测试
强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求的软硬件水平要求。
实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。
比如:一个系统在内存366M下可以正常运行,但是降低到258M下不可以运行,告诉内存不足,这个系统对内存的要求就是366M。5.3 数据库容量测试
数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。
数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。
比如,在电子商务系统中,通过insert customer 往user表中插入10 000数据,看其是否可以正常显示顾客信息列表页面,如果要求达到最多可以处理100 000个客户,但是顾客信息列表页面不能够在规定的时间内显示出来,就需要调整程序中的SQL查询语句;如果在规定的时间内显示出来,可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。5.4 基准测试
基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。
如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你可以测试你这套系统,看看哪些地方比用友财务系统好,哪些地方差?以便改进自己的系统,也可为产品广告提供数据。5.5 竞争测试
软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。比如:一台机器上即安装您的财务系统,又安装用友财务系统。当CPU占有率下降后,看看是否能够强过用友财务系统,而是自己的系统能够正常运行6. 安全性和访问控制测试
安全性和访问控制测试侧重于安全性的两个关键方面:
1) 应用程序级别的安全性,包括对数据或业务功能的访问
2) 系统级别的安全性,包括对系统的登录或远程访问。6.1 应用程序级别的安全性
可确保:在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。例如,可能会允许所有人输入数据,创建新账户,但只有管理员才能删除这些数据或账户。如果具有数据级别的安全性,测试就可确保“用户类型一”能够看到所有客户消息(包括财务数据),而“用户二”只能看见同一客户的统计数据。
比如B/S系统,不通过登入页面,直接输入URL,看其是否能够进入系统?6.2 系统级别的安全性
可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。
比如输入管理员账户,检查其密码是否容易猜取,或者可以从数据库中获得?7. 故障转移和恢复测试
故障转移和恢复测试指当主机软硬件发生灾难时候,备份机器是否能够正常启动,使系统是否可以正常运行,这对于电信,银行等领域的软件是十分重要的。
故障转移和恢复测试可确保测试对象能成功完成故障转移,并能从导致意外数据损失或数据完整性破坏的各种硬件、软件或网络故障中恢复。
故障转移测试可确保:对于必须持续运行的系统,一旦发生故障,备用系统就将不失时机地“顶替”发生故障的系统,以避免丢失任何数据或事务。
恢复测试是一种对抗性的测试过程。在这种测试中,将把应用程序或系统置于极端的条件下(或者是模拟的极端条件下),以产生故障(例如设备输入/输出(I/O) 故障或无效的数据库指针和关健字)。然后调用恢复进程并监测和检查应用程序和系统,核实应用程序或系统和数据已得到了正确的恢复。一定要注意定时备份,比如电信系统,突然主机程序发生死机,备份机器是否能够启动,使系统能够正常运行,从而不影响用户打电话? -
龙泉寺法华会
2007-7-29
昨天一大早起来,就听到外面小雨淅沥沥的下个不停,但是并没有影响计划的龙泉寺之行,准备好要捐赠的衣服,带上背包,我们就出发了。
先坐车到颐和园,然后坐去凤凰岭的直达车346,在346上看到了很多同路人,一个个看起来都十分的和善,有两个年纪很大的阿姨,用小车拉着三大包鼓鼓囊囊的衣服,从凤凰岭景区门口到龙泉寺的路上坡度很陡,于是走过去帮忙,拉着这三大包衣服,走了一小截,就开始气喘嘘嘘的,开始佩服两位老人。
先把带来的衣服放到指定的捐赠点,然后进寺庙烧香,拜佛,写牌儿,都带着一份虔诚的心。本来计划这次去可以皈依,因为这次捐衣活动,皈依的仪式推迟到了周三,周三还得上班,所以随缘吧,
中午在寺里吃的斋饭,简单的饭菜却比自己平时做的可口的多。
下午听了法师诵经和讲解经文的意义,心情安静了许多,里面有一个故事给我印象最深,讲的是一个富人与他的儿子失散了多年,后来找到了儿子,但是儿子的生活却是潦倒不堪,于是他没有与他立即相认,而是请儿子做他家的下人,干最低等的工作,几年中慢慢提拔他,最终在这个富人临去世的时候,儿子已经升任管家,富人告诉儿子他们是父子这个事实,把千万家业传给了儿子,其实这个时候儿子已经具备了继承家业的条件。
把这个故事回归到现实,它提醒了我们,有的时候我们很浮躁,在一个普通的位置上,却向往着其他人的高薪高职,但是恰恰忽略了自己是不是有那个条件来担当那个位置,赢取那份薪水?
如果你觉得已经具备那个条件,就放手一搏,如果你还没有,就要一步一步的提升自己,好好享受这其中的过程。
谨以此文与博友共勉。
-
软件测试学习体会(一)
2007-7-27
经过了一段时间的慎重考虑,终于确定了自己以后从事软件测试这个发展方向。
那么就要开始着手资料收集了,了解我应该掌握哪些技能才能找到一份测试方面的工作,这是首要的,在实践的过程中,才能更好的把理论融汇贯通。
首先说一下我现在的基本情况,以便一步一步了解自己在软件测试的进步过程。
我05年计算机专业毕业以后,工作中唯一与IT粘上边儿的就是公司网站维护,主要的工作就是网站内容更新,涉及到技术的东西很少,偶尔会修改一下网站代码,所以对于代码我只有一个大概的印象了。
51testing的论坛里有很多新手入门所需的资料、书籍,我下载了一些电子书。也买了一本入门书籍《软件测试》,书上介绍了很多软件测试的基础知识,我浏览了一遍,大概了解了软件测试是怎么一回事,也算是有点头绪了。但是一些网友(可能是测试主管)的文章里提到了,现在软件测试行业现状良莠不齐,一些软件测试人员基础知识不扎实,动手能力太差等。所以打算再认真学习一遍,把基础知识打牢固,然后再开始找工作,也算是为了胜算大一些吧。
今天就写到这里吧,说来惭愧,学理科的人,笔杆子不太好,理科知识也没有学扎实,相信现在还不晚,因为我还年轻。
希望和大家多多交流学习。
