发布新日志

  • 软件测试中的网站测试技术要领

    annayin 发布于 2007-03-07 15:08:39Digest 1

    基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。

      本文从功能、性能、可用性、客户端兼容性、安全性等方面讨论了基于Web的系统测试方法。

      随着Internet和Intranet/Extranet的快速增长,Web已经对商业、工业、银行、财政、教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的信息和数据库系统正在被移植到互联网上,电子商务迅速增长,早已超过了国界。范围广泛的、复杂的分布式应用正在Web环境中出现。Web的流行和无所不在,是因为它能提供支持所有类型内容连接的信息发布,容易为最终用户存取。

      Yogesh Deshpande和Steve Hansen在1998年就提出了Web工程的概念。Web工程作为一门新兴的学科,提倡使用一个过程和系统的方法来开发高质量的基于Web的系统。它"使用合理的、科学的工程和管理原则,用严密的和系统的方法来开发、发布和维护基于Web的系统"。目前,对于web工程的研究主要是在国外开展的,国内还刚刚起步。

      在基于Web的系统开发中,如果缺乏严格的过程,我们在开发、发布、实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大。而且,随着基于Web的系统变得越来越复杂,一个项目的失败将可能导致很多问题。当这种情况发生时,我们对Web和Internet的信心可能会无法挽救地动摇,从而引起Web危机。并且,Web危机可能会比软件开发人员所面对的软件危机更加严重、更加广泛。

      在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,Internet和Web媒体的不可预见性使测试基于Web的系统变得困难。因此,我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。

      一般软件的发布周期以月或以年计算,而Web应用的发布周期以天计算甚至以小时计算。Web测试人员必须处理更短的发布周期,测试人员和测试管理人员面临着从测试传统的C/S结构和框架环境到测试快速改变的Web应用系统的转变。

      网站测试流程、要求及测试报告

      一个网站基本完工后,需要通过下面三步测试才可以交活。

      一、 制作者测试,包括美工测试页面、程序员测试功能。在做完后第一时间内有制作者本人进行测试。

      a) 页面 包括首页、二级页面、三级页面的页面在各种常用分辨率下有无错位;图片上有没有错别字;各连接是否是死连接;各栏目图片与内容是否对应等

      b) 功能 达到客户要求;数据库连接正确;各个动态生成连接正确;传递参数格式、内容正确;试填测试内容没有报错;页面显示正确

      二、 全面测试 根据交工标准和客户要求,由专人进行全面测试

      也是包括页面和程序两方面,而且要结合起来测,保证填充足够的内容后不会导致页面变形。另外要检查是否有错别字,文字内容是否有常识错误。

      三、 发布测试 网站发布到主服务器之后的测试,主要是防止环境不同导致的错误

    软件缺陷的原则

    •   软件缺陷区别于软件bug,它是在测试过程中出现的对系统有影响的,但是在设计中没有的或者对修改后的bug测试和开发人员有不同意见等
    •   软件未达到产品说明书标明的功能。
    •   软件出现了产品说明书指明不会出现的错误。
    •   软件功能超出产品说明书指明范围。
    •   软件未达到产品说明书虽未指出但应达到的目标。
    •   软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。

      测试的主要方面:

      一、功能测试

      对于网站的测试而言,每一个独立的功能模块需要单独的测试用例的设计导出,主要依据为《需求规格说明书》及《详细设计说明书》,对于应用程序模块需要设计者提供基本路径测试法的测试用例。

      1、链接测试

      链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面:

      1)测试所有链接是否按指示的那样确实链接到了该链接的页面;

      2)测试所链接的页面是否存在;

      3)保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。

      链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。

      Xenu------主要测试链接的正确性的工具

      可惜的是对于动态生成的页面的测试会出现一些错误。

      2、表单测试

      当用户给Web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。

      要测试这些程序,需要验证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。

      B/S结构实现的功能可能主要的就在这里,提交数据,处理数据等如果有固定的操作流程可以考虑自动化测试工具的录制功能,编写可重复使用的脚本代码,可以在测试、回归测试时运行以便减轻测试人员工作量。

      我们对UM子系统中各个功能模块中的各项功能进行逐一的测试,主要测试方法为:边界值测试、等价类测试,以及异常类测试。测试中要保证每种类型都有2个以上的典型数值的输入,以确保测试输入的全面性。

      3、Cookies测试

      Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。

      如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作而且对这些信息已经加密。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。

      4、设计语言测试

      Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Java、Javascrīpt、 ActiveX、VBscrīpt或Perl等也要进行验证。

      5、数据库测试

      在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。

      在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。

    二、性能测试

      网站的性能测试对于网站的运行而言异常重要,但是目前对于网站的性能测试做的不够,我们在进行系统设计时也没有一个很好的基准可以参考,因而建立网站的性能测试的一整套的测试方案将是至关重要的。

      网站的性能测试主要从三个方面进行:连接速度测试、负荷测试(Load)和压力测试(Stress),

      连接速度测试指的是打开网页的响应速度测试。负荷测试指的是进行一些边界数据的测试,压力测试更像是恶意测试,压力测试倾向应该是致使整个系统崩溃。

      1、连接速度测试

      用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。

      另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。

      2、负载测试

      负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?

      3、压力测试

      负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。

      进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。

      压力测试的区域包括表单、登陆和其他信息传输页面等。

      采用的测试工具

      性能测试可以采用相应的工具进行自动化测试,我们目前采用如下工具

      ab -----Apache 的测试工具

      OpenSTA—开发系统测试架构

    三、接口测试

      在很多情况下,web 站点不是孤立。Web 站点可能会与外部服务器通讯,请求数据、

      验证数据或提交订单。

      1、 服务器接口

      第一个需要测试的接口是浏览器与服务器的接口。测试人员提交事务,然后查看服务器

      记录,并验证在浏览器上看到的正好是服务器上发生的。测试人员还可以查询数据库,确认事务数据已正确保存。

      2、 外部接口

      有些 web 系统有外部接口。例如,网上商店可能要实时验证信用卡数据以减少欺诈行

      为的发生。测试的时候,要使用 web 接口发送一些事务数据,分别对有效信用卡、无效信用卡和被盗信用卡进行验证。如果商店只使用 Visa 卡和 Mastercard 卡, 可以尝试使用 Discover 卡的数据。(简单的客户端脚本能够在提交事务之前对代码进行识别,例如 3 表示 American Express,4 表示 Visa,5 表示 Mastercard,6 代表Discover。)通常,测试人员需要确认软件能够处理外部服务器返回的所有可能的消息。

      3、错误处理

      最容易被测试人员忽略的地方是接口错误处理。通常我们试图确认系统能够处理所有错

      误,但却无法预期系统所有可能的错误。尝试在处理过程中中断事务,看看会发生什么情况?

      订单是否完成?尝试中断用户到服务器的网络连接。尝试中断 web 服务器到信用卡验证服

      务器的连接。在这些情况下,系统能否正确处理这些错误?是否已对信用卡进行收费?如果

      用户自己中断事务处理,在订单已保存而用户没有返回网站确认的时候,需要由客户代表致

      电用户进行订单确认。

    四、可用性测试

      可用性/易用性方面目前我们只能采用手工测试的方法进行评判,而且缺乏一个很好的评判基准进行,此一方面需要大家共同讨论。

      1、导航测试

      导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助?

      在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉Web应用系统的结构,因此,Web应用系统导航帮助要尽可能地准确。

      导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。

      Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。

      2、图形测试

      在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:

      (1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。

      (2)验证所有页面字体的风格是否一致。

      (3)背景颜色应该与字体颜色和前景颜色相搭配。

      (4)图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。

      3、内容测试

      内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。

      信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsoft Word的"拼音与语法检查"功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中的所谓"相关文章列表"。

      4、整体界面测试

      整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?

      对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。

      对所有的可用性测试来说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。

    五、兼容性测试

      需要验证应用程序可以在用户使用的机器上运行。如果您用户是全球范围的,需要测试各种操作系统、浏览器、视频设置和 modem 速度。最后,还要尝试各种设置的组合。

      1、平台测试

      市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。

      因此,在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。

      2、浏览器测试

      浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、Javascrīpt、 ActiveX、 plug-ins或不同的HTML规格有不同的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,Javascrīpt是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。

      测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。

      采用测试工具

      通过白盒测试或者黑盒测试导出的测试用例,采用相应的工具进行测试,可以采用OpenSTA进行测试,此测试工具可以采用不同的浏览器进行测试。

      3.视频测试

      页面版式在 640x400、600x800 或 1024x768 的分辨率模式下是否显示正常? 字体是否太小以至于无法浏览? 或者是太大? 文本和图片是否对齐?

      4.Modem/连接速率测试

      是否有这种情况,用户使用 28.8 modem下载一个页面需要 10 分钟,但测试人员在测

      试的时候使用的是 T1 专线? 用户在下载文章或演示的时候,可能会等待比较长的时间,

      但却不会耐心等待首页的出现。最后,需要确认图片不会太大。

      5、打印机测试

      用户可能会将网页打印下来。因此网页在设计的时候要考虑到打印问题,注意节约纸张和油墨。有不少用户喜欢阅读而不是盯着屏幕,因此需要验证网页打印是否正常。有时在屏幕上显示的图片和文本的对齐方式可能与打印出来的东西不一样。测试人员至少需要验证订单确认页面打印是正常的。

      6、组合测试

      最后需要进行组合测试。600x800 的分辨率在 MAC 机上可能不错,但是在 IBM 兼容

      机上却很难看。在 IBM 机器上使用 Netscape 能正常显示,但却无法使用 Lynx 来浏览。

      如果是内部使用的 web 站点,测试可能会轻松一些。如果公司指定使用某个类型的浏览器,

      那么只需在该浏览器上进行测试。如果所有的人都使用 T1 专线,可能不需要测试下载施加。

      (但需要注意的是,可能会有员工从家里拨号进入系统) 有些内部应用程序,开发部门可能

      在系统需求中声明不支持某些系统而只支持一些那些已设置的系统。但是,理想的情况是,

      系统能在所有机器上运行,这样就不会限制将来的发展和变动。

    六、安全测试

      Web应用系统的安全性测试区域主要有:

      1、 目录设置

      Web 安全的第一步就是正确设置目录。每个目录下应该有 index.html 或 main.html 页

      面,这样就不会显示该目录下的所有内容。如果没有执行这条规则。那么选中一幅图片,单击鼠标右键,找到该图片所在的路径"…com/objects/images"。然后在浏览器地址栏中手工输入该路径,发现该站点所有图片的列表。这可能没什么关系。但是进入下一级目录 "…com/objects" ,点击 jackpot。在该目录下有很多资料,其中有些都是已过期页面。如果该公司每个月都要更改产品价格信息,并且保存过期页面。那么只要翻看了一下这些记录,就可以估计他们的边际利润以及他们为了争取一个合同还有多大的降价空间。如果某个客户在谈判之前查看了这些信息,他们在谈判桌上肯定处于上风。

      2.登录

      现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。

      3.Session

      Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。

      4.日志文件

      为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。

      5.加密

      当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。

      6.安全漏洞

      服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。

      目前网络安全问题日益重要,特别对于有交互信息的网站及进行电子商务活动的网站尤其重要。目前我们的测试没有涵盖网站的安全性的测试,我们拟定采用工具来测定,

      工具如下

      SAINT------- Security Administrator’s Integrated Network Tool

      此工具能够测出网站系统的相应的安全问题,并且能够给出安全漏洞的解决方案,不过是一些较为常见的漏洞解决方案。

    七、代码合法性测试

      代码合法性测试主要包括2个部分:程序代码合法性检查与显示代码合法性检查。

      1、程序代码合法性检查

      程序代码合法性检查主要标准为《intergrp小组编程规范》,目前采用由SCM管理员进行规范的检查,未来期望能够有相应的工具进行测试。

      2、显示代码合法性检查

      显示代码的合法性检查,主要分为Html、Javascrīpt、Css代码检查,目前采用

      HTML代码检查------采用CSE HTML Validator进行测试

      Javascrīpt、Css也可以在网上下载相应的测试工具

      八、 文档测试

      l、产品说明书属性检查清单

      1)完整.是否有遗漏和丢失,完全吗? 单独使用是否包含全部内容

      2)准确.既定解决方案正确吗? 目标明确吗? 有没有错误?

      3)精确、不含糊、清晰.描述是否一清二楚? 还是自说自话?容易看懂和理解吗?

      4)一致.产品功能能描述是否自相矛盾,与其他功能有没有冲突

      5)贴切.描述功能的陈述是否必要?有没有多余信息? 功能是否原来的客户要求?

      6)合理.在特定的预算和进度下,以现有人力,物力和资源能否实现?

      7)代码无关.是否坚持定义产品,而不是定义其所信赖的软件设计,架构和代码

      8)可测试性.特性能否测试? 测试员建立验证操作的测试程序是否提供足够的信息?

      2、 产品说明书用语检查清单

      1)说明。 对问题的描述通常表现为粉饰没有仔细考虑的功能----可归结于前文所述的属性.从产品说明书上找出这样的用语,仔细审视它们在文中是怎样使用的.产品说明书可能会为其掩饰和开脱,也可能含糊其词----无论是哪一种情况都可视为软件缺陷.

      2)总是,每一种,所有,没有,从不.如果看到此类绝对或肯定的,切实认定的叙述,软件测试员就可以着手设计针锋相对的案例.

      3)当然,因此,明显,显然,必然.这些话意图诱使接受假定情况.不要中了圈套.

      4)某些,有时,常常,通常,惯常,经常,大多,几乎.这些话太过模糊."有时"发生作用的功能无法测试.

      5)等等,诸如此类,依此类推.以这样的词结束的功能清单无法测试.功能清单要绝对或者解释明确,以免让人迷惑,不知如何推论.

      6)良好,迅速,廉价,高效,小,稳定.这些是不确定的说法,不可测试.如果在产品说明书中出现,就必须进一步指明含义.

      7)已处理,已拒绝,已忽略,已消除.这些廉洁可能会隐藏大量需要说明的功能.

      8)如果...那么...(没有否则).找出有"如果...那么..."而缺少配套的"否则"结构的陈述.想一想"如果"没有发生会怎样.

      相关的测试工具

      OpenSTA

      主要做性能测试的负荷及压力测试,使用比较方便,可以编写测试脚本,也可以先行自动生成测试脚本,而后对于应用测试脚本进行测试。

      SAINT

      网站安全性测试,能够对于指定网站进行安全性测试,并可以提供安全问题的解决方案。

      CSE HTML Validator

      一个有用的对于HTML代码进行合法性检查的工具

      Ab(Apache Bench)

      Apache自带的对于性能测试方面的工具,功能不是很多,但是非常实用。

      Crash-me

      Mysql自带的测试数据库性能的工具,能够测试多种数据库的性能。

  • 网站测试技术简介

    lavender2004 发布于 2007-01-11 16:00:01

    1 概述
       在一个软件项目开发中,系统测试是保证整体项目质量的重要一环,本文将就网站的测试技术及相应的自动测试工具做一个简要的介绍。主要就如下几个方面进行探讨:
    功能测试
    性能测试
    安全性测试
    稳定性测试
    浏览器兼容性测试
    可用性/易用性测试
    链接测试
    代码合法性测试

    2 测试内容
    2.1 功能测试
       在实际工作中,功能在每一个系统中的具有其不确定性,而我们不可能采用穷举的方法进行测试,因而导致了功能测试较为困难,我们依据80/20原则(即80%的错误存在于系统的20%的部分)对于测试用例的设计采用如下两种方法
    2.1.1 白盒测试
       白盒测试即使用程序设计的控制结构导出测试用例。基于目前的现状我们采用基本路径测试方法进行白盒测试,此种方法简单高效。基本路径测试方法的简单说明如下:
    ¨ 首先通过系统设计的流程图导出数据流图
    ¨ 根据数据流图计算其环形复杂性
    V(G)=E-N+2
    或 V(G)=P+1
    V(G):环形负责性
    E :流图中边的数量
    N :流图中节点的数量
    P :流图中判定节点的数量
    ¨ 我们设定V(G)条路径
    ¨ 我们设计V(G)条路径的模拟数据
    ¨ 根据数据进行相应的测试
    2.1.2 黑盒测试
       黑盒测试即派生出执行程序所有功能需求的输入条件,从而导出测试用例,进行测试的方法,黑盒测试用于辅助白盒测试。
       我们采用等价划分的方法进行测试,即为将程序的输入域划分为数据类,以便导出测试用例。一般情况下输入条件为:一个特定的数值、一个数值域、一组相关值或者一个布尔条件。
    2.1.3 网站功能测试
       对于网站的测试而言,每一个独立的功能模块需要单独的测试用例的设计导出,主要依据为《需求分析》,对于应用程序模块需要设计者提供基本路径测试法的测试用例
       具有测试用例后可以采用OpenSTA(Open System Testing Architecture)进行自动化测试
    2.2 性能测试
       网站的性能测试对于网站的运行而言异常重要,但是目前对于网站的性能测试做的不够,我们在进行系统设计时也没有一个很好的基准可以参考,因而建立网站的性能测试的一整套的测试方案将是至关重要的。
       网站的性能测试主要从两个方面进行:负荷测试(Load)和压力测试(Stress),负荷测试指的是进行一些边界数据的测试,压力测试更像是恶意测试,压力测试倾向应该是致使整个系统崩溃。
       性能测试可以采用相应的工具进行自动化测试,我们目前采用如下工具
    ab -----Apache 的测试工具
    OpenSTA—开发系统测试架构

    2.3 安全性测试
       目前网络安全问题日益重要,特别对于有交互信息的网站及进行电子商务活动的网站尤其重要。目前我们的测试没有涵盖网站的安全性的测试,我们拟定采用工具来测定,工具如下
       SAINT------- Security Administrator's Integrated Network Tool
       此工具能够测出网站系统的相应的安全问题,并且能够给出安全漏洞的解决方案,不过是一些较为常见的漏洞解决方案。
    2.4 稳定性测试
       网站的稳定性测试是指网站的运行中整个系统是否运行正常,目前没有更好的测试方案,主要采用将测试服务器长时间运转进行测试。
    2.5 浏览器兼容性测试
       通过白盒测试或者黑盒测试导出的测试用例,采用相应的工具进行测试,可以采用OpenSTA进行测试,此测试工具可以采用不同的浏览器进行测试。
    2.6 可用性/易用性测试
       可用性/易用性方面目前我们只能采用手工测试的方法进行评判,而且缺乏一个很好的评判基准进行,此一方面需要大家共同讨论。
    2.7 链接测试
       超级链接对于网站用户而言意味着能不能流畅的使用整个网站提供的服务,因而链接将作为一个独立的项目进行测试。目前我们已经有了一个测试工具
    Xenu------主要测试链接的正确性的工具
    可惜的是对于动态生成的页面的测试会出现一些错误。
    2.8 代码合法性测试
       代码合法性测试主要包括2个部分:程序代码合法性检查与显示代码合法性检查
    ¨ 程序代码合法性检查
       程序代码合法性检查主要标准为《intergrp小组编程规范》,目前采用由SCM管理员进行规范的检查,未来期望能够有相应的工具进行测试。
    ¨ 显示代码合法性检查
       显示代码的合法性检查,主要分为Html、Javascrīpt、Css代码检查,目前采用
       HTML代码检查------采用CSE HTML Validator进行测试
       Javascrīpt、Css也可以在网上下载相应的测试工具。
    3 测试工具
    OpenSTA
       主要做性能测试的负荷及压力测试,使用比较方便,可以编写测试脚本,也可以先行自动生成测试脚本,而后对于应用测试脚本进行测试。
    SAINT
       网站安全性测试,能够对于指定网站进行安全性测试,并可以提供安全问题的解决方案。
    CSE HTML Validator
       一个有用的对于HTML代码进行合法性检查的工具
    Ab(Apache Bench)
       Apache自带的对于性能测试方面的工具,功能不是很多,但是非常实用。
    Crash-me
       Mysql自带的测试数据库性能的工具,能够测试多种数据库的性能。

    4 后记
       此文只是对于网站的测试方面做了一个简单的介绍,提供的工具比较少,但是可以保证能够使用(当然都是可以从网上免费得到的),另外还有很多测试工具是需要Money的,大家有兴趣可以试用,对于上述提到的测试工具我也只是做了一个初步的调研,详细的功能说明请察看相关的说明文档。
       对于网站的测试中比较重要的还有一个部分就是对于数据库的测试,由于对于数据库性能测试较好的工具需要一些Money因而我们采用Mysql的Crash-me,但是同时也存在一个问题就是对于不同的数据库的测试采用第三方的工具较好。因而大家可以对于其他数据库性能测试的工具进行研究。
  • 一个网页通用的测试用例(借鉴他人的保存,加注释)

    green_star 发布于 2014-09-30 10:15:14

    具体需求: 有一个登陆页面, (假如上面有2个textbox, 一个提交按钮。 请针对这个页面设计30个以上的test case.)
      此题的考察目的: 面试者是否熟悉各种测试方法,是否有丰富的Web测试经验, 是否了解Web开发,以及设计Test case的能力
      这个题目还是相当有难度的, 一般的人很难把这个题目回答好。
      首先,你要了解用户的需求,比如这个登录界面应该是弹出窗口式的,还是直接在网页里面。对用户名的长度,和密码的强度(就是是不是必须多少位,大小写,特殊字符混搭)等。还有比如用户对界面的美观是不是有特殊的要求?(即是否要进行UI测试)。剩下的就是设计用例了 ,等价类,边界值等等。
      请你记住一点,任何测试,不管测什么都是从了解需求开始的。
      功能测试(Function test)
      0. 什么都不输入,点击提交按钮,看提示信息。(非空检查)
      1.输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。(正常输入)
      2.输入错误的用户名或者密码, 验证登录会失败,并且提示相应的错误信息。(错误校验)
      3.登录成功后能否能否跳转到正确的页面(低)
      4.用户名和密码,如果太短或者太长,应该怎么处理(安全性,密码太短时是否有提示)
      5.用户名和密码,中有特殊字符(比如空格),和其他非英文的情况(是否做了过滤)
      6.记住用户名的功能
      7.登陆失败后,不能记录密码的功能
      8.用户名和密码前后有空格的处理
      9.密码是否加密显示(星号圆点等)
      10.牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用
      11.登录页面中的注册、忘记密码,登出用另一帐号登陆等链接是否正确
      12.输入密码的时候,大写键盘开启的时候要有提示信息。
      界面测试(UI Test)
      1.布局是否合理,2个testbox 和一个按钮是否对齐
      2.testbox和按钮的长度,高度是否复合要求
      3. 界面的设计风格是否与UI的设计风格统一
      4. 界面中的文字简洁易懂,没有错别字。
      性能测试(performance test)
      1.打开登录页面,需要几秒
      2.输入正确的用户名和密码后,登录成功跳转到新页面,不超过5秒
      安全性测试(Security test)
      1.登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)
      2.用户名和密码是否通过加密的方式,发送给Web服务器
      3.用户名和密码的验证,应该是用服务器端验证, 而不能单单是在客户端用javascript验证
      4.用户名和密码的输入框,应该屏蔽SQL 注入攻击
      5.用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击)
      6.错误登陆的次数限制(防止暴力破解)
      7. 考虑是否支持多用户在同一机器上登录;
      8. 考虑一用户在多台机器上登录
      可用性测试(Usability Test)
      1. 是否可以全用键盘操作,是否有快捷键
      2. 输入用户名,密码后按回车,是否可以登陆
      3. 输入框能否可以以Tab键切换
      兼容性测试(Compatibility Test)
      1.主流的浏览器下能否显示正常已经功能正常(IE,6,7,8,9, Firefox, Chrome, Safari,等)
      2.不同的平台是否能正常工作,比如Windows, Mac
      3.移动设备上是否正常工作,比如Iphone, Andriod
      4.不同的分辨率
      本地化测试 (Localization test)
      1. 不同语言环境下,页面的显示是否正确。
      软件辅助性测试 (Accessibility test)
      软件辅助功能测试是指测试软件是否向残疾用户提供足够的辅助功能
      1. 高对比度下能否显示正常 (视力不好的人使用)
  • 企业面试经常问到的问题

    sunxy5291 发布于 2014-04-25 17:41:39

    1、请你自我介绍一下自己好吗?
    回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”,企业喜欢有礼貌的求职者。
    2、你觉得你个性上最大的优点是什么?
    回答提示:沉着冷静、条理清楚、立场坚定、顽强向上、乐于助人和关心他人、适应能力和幽默感、乐观和友爱。我在北大青鸟经过一到两年的培训及项目实战,加上实习工作,使我适合这份工作。
    3、说说你最大的缺点?
    回答提示:这个问题企业问的概率很大,通常不希望听到直接回答的缺点是什么等,如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低,企业肯定不会录用你。绝对不要自作聪明地回答“我最大的缺点是过于追求完美”,有的人以为这样回答会显得自己比较出色,但事实上,他已经岌岌可危了。企业喜欢求职者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,突出优点的部分,企业喜欢聪明的求职者。
    4、你对薪资的要求?
    回答提示:如果你对薪酬的要求太低,那显然贬低自己的能力;如果你对薪酬的要求太高,那又会显得你分量过重,公司受用不起。一些雇主通常都事先对求聘的职位定下开支预算,因而他们第一次提出的价钱往往是他们所能给予的最高价钱,他们问你只不过想证实一下这笔钱是否足以引起你对该工作的兴趣。
    回答样本一:我对工资没有硬性要求,我相信贵公司在处理我的问题上会友善合理。我注重的是找对工作机会,所以只要条件公平,我则不会计较太多。
    回答样本二:我受过系统的软件编程的训练,不需要进行大量的培训,而且我本人也对编程特别感兴趣。因此,我希望公司能根据我的情况和市场标准的水平,给我合理的薪水。
    回答样本三:如果你必须自己说出具体数目,请不要说一个宽泛的范围,那样你将只能得到最低限度的数字。最好给出一个具体的数字,这样表明你已经对当今的人才市场作了调查,知道像自己这样学历的雇员有什么样的价值。
    5、你对加班的看法?
    回答提示:实际上好多公司问这个问题,并不证明一定要加班,只是想测试你是否愿意为公司奉献。
    回答样本:如果工作需要我会义不容辞加班,我现在单身,没有任何家庭负担,可以全身心的投入工作。但同时我也会提高工作效率,减少不必要的加班。
    6、如果通过这次面试我们录用了你,但工作一段时间却发现你根本不适合这个职位,你怎么办?
    回答提示:一段时间发现工作不适合我,有两种情况:①如果你确实热爱这个职业,那你就要不断学习,虚心向领导和同事学习业务知识和处事经验,了解这个职业的精神内涵和职业要求,力争减少差距;②你觉得这个职业可有可无,那还是趁早换个职业,去发现适合你的,你热爱的职业,那样你的发展前途也会大点,对单位和个人都有好处。
    7、谈谈你对跳槽的看法?
    回答提示:①正常的“跳槽”能促进人才合理流动,应该支持。②频繁的跳槽对单位和个人双方都不利,应该反对。
    8、工作中难以和同事、上司相处,你该怎么办?
    回答提示:①我会服从领导的指挥,配合同事的工作。②我会从自身找原因,仔细分析是不是自己工作做得不好让领导不满意,同事看不惯。还要看看是不是为人处世方面做得不好,如果是这样的话我会努力改正。③如果我找不到原因,我会找机会跟他们沟通,请他们指出我的不足,有问题就及时改正。④作为优秀的员工,应该时刻以大局为重,即使在一段时间内,领导和同事对我不理解,我也会做好本职工作,虚心向他们学习,我相信,他们会看见我在努力,总有一天会对我微笑的。
    9、你对于我们公司了解多少?
    回答提示:在去公司面试前上网查一下该公司主营业务。如回答:贵公司有意改变策略,加强与国外大厂的OEM合作,自有品牌的部分则透过海外经销商。
    10、最能概括你自己的三个词是什么?
    回答提示:我经常用的三个词是:适应能力强,有责任心和做事有始终,结合具体例子向主考官解释,
    11、你的业余爱好是什么?
    回答提示:找一些富于团体合作精神的,这里有一个真实的故事:有人被否决掉,因为他的爱好是深海潜水。主考官说:因为这是一项单人活动,我不敢肯定他能否适应团体工作。
    12、作为被面试者给我打一下分?
    回答提示:试着列出四个优点和一个非常非常非常小的缺点(可以抱怨一下设施,没有明确责任人的缺点是不会有人介意的)。
    13、你为什么要离开原来的公司?
    回答提示:①回答这个问题时一定要小心,就算在前一个工作受到再大的委屈,对公司有多少的怨言,都千万不要表现出来,尤其要避免对公司本身主管的批评,避免面试官的负面情绪及印象。建议此时最好的回答方式是将问题归咎在自己身上,例如觉得工作没有学习发展的空间,自己想在面试工作的相关产业中多加学习,或是前一份工作与自己的生涯规划不合等等,回答的答案最好是积极正面的。②我希望能获得一份更好的工作,如果机会来临,我会抓住。我觉得目前的工作,已经达到顶峰,即没有升迁机会。
    14、你欣赏哪种性格的人?
    回答提示:诚实、不死板而且容易相处的人、有“实际行动”的人。
    15、你通常如何对待别人的批评?
    回答提示:①沈默是金,不必说什么,否则情况更糟,不过我会接受建设性的批评。②我会等大家冷静下来再讨论。
    16、怎样对待自己的失败?
    回答提示:我们大家生来都不是十全十美的,我相信我有第二个机会改正我的错误。
    17、你为什么愿意到我们公司来工作?
    回答提示:对于这个问题,你要格外小心,如果你已经对该单位作了研究,你可以回答一些详细的原因,像“公司本身的高技术开发环境很吸引我。”、“我同公司出生在同样的时代,我希望能够进入一家与我共同成长的公司。”、“你们公司一直都稳定发展,在近几年来在市场上很有竞争力。”、“我认为贵公司能够给我提供一个与众不同的发展道路。”这都显示出你已经做了一些调查,也说明你对自己的未来有了较为具体的远景规划。
    18、对这项工作,你有哪些可预见的困难?
    回答提示:①不宜直接说出具体的困难,否则可能令对方怀疑应聘者不行。②可以尝试迂回战术,说出应聘者对困难所持有的态度——工作中出现一些困难是正常的,也是难免的,但是只要有坚忍不拔的毅力、良好的合作精神以及事前周密而充分的准备,任何困难都是可以克服。
    19、如果录用了你,你将怎样开展工作?
    回答提示: ①如果应聘者对于应聘的职位缺乏足够的了解,最好不要直接说出自己开展工作的具体办法。②可以尝试采用迂回战术来回答,如“首先听取领导的指示和要求,然后就有关情况进行了解和熟悉,接下来制定一份近期的工作计划并报领导批准,最后根据计划开展工作。”。
    分析:这个问题的主要目的也是了解应聘者的工作能力和计划性、条理性,而且重点想要知道细节。如果向思路中所讲的迂回战术,面试官会认为回避问题,如果引导了几次仍然是回避的话,此人绝对不会录用了。
    20、你希望与什么样的上级共事?
    回答提示:①通过应聘者对上级的“希望”可以判断出应聘者对自我要求的意识,这既上一个陷阱,又是一次机会。②最好回避对上级具体的希望,多谈对自己的要求。③如“做为刚步入社会的新人,我应该多要求自己尽快熟悉环境、适应环境,而不应该对环境提出什么要求,只要能发挥我的专长就可以了。
    分析:这个问题比较好的回答是,希望我的上级能够在工作中对我多指导,对我工作中的错误能够立即指出。总之,从上级指导这个方面谈,不会有大的纰漏。
    21、与上级意见不一时,你将怎么办?
    回答提示:①一般可以这样回答“我会给上级以必要的解释和提醒,在这种情况下,我会服从上级的意见。”②如果面试你的是总经理,而你所应聘的职位另有一位经理,且这位经理当时不在场,可以这样回答:“对于非原则性问题,我会服从上级的意见,对于涉及公司利益的重大问题,我希望能向更高层领导反映。”
    分析:这个问题的标准答案是思路①,如果用②的回答,必死无疑。你没有摸清楚改公司的内部情况,先想打小报告,这样的人没有人敢要。
    22、为什么选择我们公司?
    回答提示:曾经在报章杂志看过关于贵公司的报道,与自己所追求的理念有志一同。而贵公司在业界的成绩也是有目共睹的,而且对员工的教育训练、升迁等也都很有制度。
    分析:去面试前先做功课,了解一下该公司的背景,让对方觉得你真的很有心想得到这份工作,而不只是探探路。
    23、谈谈如何适应办公室工作的新环境?
    回答提示①办公室里每个人有各自的岗位与职责,不得擅离岗位。②根据领导指示和工作安排,制定工作计划,提前预备,并按计划完成。③多请示并及时汇报,遇到不明白的要虚心请教。④抓间隙时间,多学习,努力提高自己的政治素质和业务水平。
    24、除了本公司外,还应聘了哪些公司?
    回答提示:很奇怪,这是相当多公司会问的问题,其用意是要概略知道应徵者的求职志向,所以这并非绝对是负面答案,就算不便说出公司名称,也应回答“销售同种产品的公司”,如果应聘的其他公司是不同业界,容易让人产生无法信任的感觉。
    25、你还有什么问题要问吗?
    回答提示:企业的这个问题看上去可有可无,其实很关键,企业不喜欢说“没问题”的人,因为其很注重员工的个性和创新能力。企业不喜欢求职者问个人福利之类的问题,如果有人这样问:贵公司对新入公司的员工有没有什么培训项目,我可以参加吗?或者说贵公司的晋升机制是什么样的?企业将很欢迎,因为体现出你对学习的热情和对公司的忠诚度以及你的上进心。
    26、如果你被录用,何时可以到职?
    回答提示:大多数企业会关心就职时间,最好是回答“如果被录用的话,到职日可按公司规定上班”,但如果还未辞去上一个工作、上班时间又太近,似乎有些强人所难,因为交接至少要一个月的时间,应进一步说明原因,录取公司应该会通融的。
  • loadrunner录制脚本,自动关闭的多种原因

    stevenlee 发布于 2014-05-02 19:11:29


    loadrunne我也用得比较少,碰到的问题也很少。下面的资料都从来网上整理而来的,所以难免有一些错漏之处,还请大家见谅!

    1、录制的时候,杀毒软件、防火墙等最好关闭!

    2、看看是不是Loadrunner为浏览器设置了代理了,曾遇到类似的情况,正录制着lr窗口就关闭了,而且浏览器显示找不到该页面,看了一下浏览器,被LR给设置代理了

    3、查看一下IE的 工具->Internet选项 -> 连接 -> 局域网设置 ->为LAN使用代理服务器 是否被选中了,如果被选择的话把他勾掉。这样可能就好了,不过如果你的网页必须使用代理才能打开的话就不属于这种情况了

    4、然后看一下LoadRunner的Runtime-setting里面的设置:
    RunTime-Setting -> Internet Protocol -> Proxy - > 选择obain the proxy settings from the default browser

    5、LZ的IE 是什么版本?如果是IE7的话。可能会出现 这个问题

    6、tools->recording options->internet protocol 之前设置了URL-based script
    改成html-based script后,自动关闭的问题没有发生

  • 转 史上最全的小强视频全集(最新)

    piaolingxue423 发布于 2011-12-05 13:37:35

    小强作品-《零基学习软件测试》之 软件测试知识扫盲篇

    第一讲 软件测试基础知识
    http://www.boobooke.com/v/bbk1514
    第二讲 测试用例设计
    http://www.boobooke.com/v/bbk1527
    第三讲 测试用例设计误区
    http://www.boobooke.com/v/bbk1576
    第四讲 bug知识
    http://www.boobooke.com/v/bbk1528
    第五讲 软件质量基础知识
    http://www.boobooke.com/v/bbk1518/
    第六讲 软件质量管理杂谈
    http://www.boobooke.com/v/bbk1600
    第七讲 how to build framework
    http://www.boobooke.com/v/bbk2097
    第八讲 初识RUP
    http://www.boobooke.com/v/bbk1601
    用例设计之场景法
    http://www.boobooke.com/v/bbk3055
    软件测试中的认识误区
    http://www.boobooke.com/v/bbk2995

    小强作品—《零基础学习软件测试》之 菜鸟测试就业宝典

    1 视频概述
    http://www.boobooke.com/v/bbk2140
    2 软件测试行业的现状和未来
    http://www.boobooke.com/v/bbk2141
    3 测试工程师的基本要求
    http://www.boobooke.com/v/bbk2142
    4 招聘信息渠道
    http://www.boobooke.com/v/bbk2143
    5 找工作
    http://www.boobooke.com/v/bbk2164
    6 如何制作简历
    http://www.boobooke.com/v/bbk2165
    7 巩固软件测试基本知识点
    http://www.boobooke.com/v/bbk2166
    8 常见面试笔试题
    http://www.boobooke.com/v/bbk2167

    小强作品:《TestLink走“码”观花》

    下面的网址是在线的一个demo,可以体验一下
    http://testlink.org/demo/index.php

    小强作品:Testlink走“码”观花 - 1
    在线观看: http://www.boobooke.com/v/bbk3431
    小强作品:Testlink走“码”观花 - 2
    在线观看: http://www.boobooke.com/v/bbk3432
    小强作品:Testlink走“码”观花 - 3
    在线观看: http://www.boobooke.com/v/bbk3433
    小强作品:Testlink走“码”观花 - 4
    在线观看: http://www.boobooke.com/v/bbk3434
    小强作品:Testlink走“码”观花 - 5
    http://www.boobooke.com/v/bbk3512

    小强作品:《零基础学习软件测试》之 白盒测试导学

    第1讲 白盒测试测试扫盲
    http://www.boobooke.com/v/bbk3190
    第2讲 BoundsChecker快速入门
    http://www.boobooke.com/v/bbk3191
    第3讲 C++Test快速入门
    http://www.boobooke.com/v/bbk3192


    小强作品:《零基础学习软件测试》之 测试知识及工具杂谈

    Web测试工具Xenu快速入门 - 1
    http://www.boobooke.com/v/bbk2169
    Web测试工具Xenu快速入门 - 2
    http://www.boobooke.com/v/bbk2200
    两款常用的web测试小工具
    http://www.boobooke.com/v/bbk2235
    国际化和本地化测试杂谈
    http://www.boobooke.com/v/bbk2412
    常用软件和工具杂谈
    http://www.boobooke.com/v/bbk2974

    小强作品:《零基础学习软件测试》之 LoadRunner从入门到精通

    性能测试常见用语
    http://www.boobooke.com/v/bbk1577
    1 lr目录分析
    http://www.boobooke.com/v/bbk1574
    2.1 lr界面分析
    http://www.boobooke.com/v/bbk1735
    2.2 lr界面分析
    http://www.boobooke.com/v/bbk1736
    2.3 lr界面分析
    http://www.boobooke.com/v/bbk1737
    3 lr常用术语
    http://www.boobooke.com/v/bbk1620
    4 hp web tours 分析
    http://www.boobooke.com/v/bbk1762
    5 lr录制测试脚本
    http://www.boobooke.com/v/bbk1763
    6 lr回放测试脚本
    http://www.boobooke.com/v/bbk1764
    7 HTML和URL比较
    http://www.boobooke.com/v/bbk1771
    8 lr自动关联
    http://www.boobooke.com/v/bbk1778
    9 lr测试脚本的增强方法
    http://www.boobooke.com/v/bbk1772
    10 run time settings
    http://www.boobooke.com/v/bbk1782
    11 lr脚本编写实践过程
    http://www.boobooke.com/v/bbk1781
    12 错误处理
    http://www.boobooke.com/v/bbk1776
    13 脚本调试
    http://www.boobooke.com/v/bbk1777
    14 java虚拟用户
    http://www.boobooke.com/v/bbk1901
    15 调用dll
    http://www.boobooke.com/v/bbk1900
    16 lr录制sql脚本
    http://www.boobooke.com/v/bbk1526
    17 创建负载测试场景
    http://www.boobooke.com/v/bbk2145
    18 面向目标的场景
    http://www.boobooke.com/v/bbk2168
    19 分析场景
    http://www.boobooke.com/v/bbk2144
    20 lr手动关联
    http://www.boobooke.com/v/bbk2161
    21 配置端口映射
    http://www.boobooke.com/v/bbk2163
    22 性能分析基础知识
    http://www.boobooke.com/v/bbk2162
    23 Load Runner 8.0 Student Workbook介绍
    http://www.boobooke.com/v/bbk2991
    24 性能测试与调优概览
    http://www.boobooke.com/v/bbk3511
    25 Loadrunner再谈
    http://www.boobooke.com/v/bbk3510
    26 LR使用指南-第一部分基础知识完结篇
    http://www.boobooke.com/v/bbk2201

    小强作品:《软件测试最佳实践远程培训》之 Discuz全程实战

    软件测试最佳实战远程培训之LR全程实战-环境介绍
    http://www.boobooke.com/v/bbk2295
    软件测试最佳实战远程培训之LR全程实战-TestLink介绍
    http://www.boobooke.com/v/bbk2328
    软件测试最佳实战远程培训之LR全程实战-BugFree介绍
    http://www.boobooke.com/v/bbk2413
    软件测试最佳实战远程培训之LR全程实战-立项书和计划书
    http://www.boobooke.com/v/bbk2466
    软件测试最佳实战远程培训之LR全程实战-Discuz 7测试点
    http://www.boobooke.com/v/bbk2620
    软件测试最佳实战远程培训之LR全程实战-注册流程的录制 - 1
    http://www.boobooke.com/v/bbk2617
    软件测试最佳实战远程培训之LR全程实战-注册流程的录制 - 2
    http://www.boobooke.com/v/bbk2618
    软件测试最佳实战远程培训之LR全程实战-注册脚本的增强
    http://www.boobooke.com/v/bbk2734
    软件测试最佳实战远程培训之LR全程实战-登录分析
    http://www.boobooke.com/v/bbk3593
    软件测试最佳实战远程培训之LR全程实战-登陆-1
    http://www.boobooke.com/v/bbk2992
    软件测试最佳实战远程培训之LR全程实战-登录-2
    http://www.boobooke.com/v/bbk3594
    软件测试最佳实战远程培训之LR全程实战-发帖-1
    http://www.boobooke.com/v/bbk3595
    软件测试最佳实战远程培训之LR全程实战-发帖-2
    http://www.boobooke.com/v/bbk3632
    软件测试最佳实战远程培训之LR全程实战-发帖场景设计
    http://www.boobooke.com/v/bbk3633
    软件测试最佳实战远程培训之LR全程实战-总结
    http://www.boobooke.com/v/bbk3634

    小强作品:《软件测试最佳实战远程培训》之LR编程实践

    软件测试最佳实战远程培训之LR编程实践-结构体
    在线观看: http://www.boobooke.com/v/bbk2993
    软件测试最佳实战远程培训之LR编程实践-参数化
    在线观看: http://www.boobooke.com/v/bbk3430
    软件测试最佳实战远程培训之LR编程实践-return 0的私密
    在线观看: http://www.boobooke.com/v/bbk3429
    软件测试最佳实战远程培训之LR编程实践-函数妙用-1
    http://www.boobooke.com/v/bbk3584
    软件测试最佳实战远程培训之LR编程实践-自定义监控程序
    http://www.boobooke.com/v/bbk3585

    小强作品:《零基础学习软件测试》之 QTP从入门到精通

    1 qtp目录分析
    http://www.boobooke.com/v/bbk1590
    2 qtp界面分析
    http://www.boobooke.com/v/bbk1594
    3 qtp示例程序分析
    http://www.boobooke.com/v/bbk1598
    4 qtp学习指南
    http://www.boobooke.com/v/bbk1515
    5 qtp基本操作录制与回放
    http://www.boobooke.com/v/bbk1591
    6 qtp的三种录制方式
    http://www.boobooke.com/v/bbk1516
    7 增强help步骤
    http://www.boobooke.com/v/bbk1592
    8 checkpoint
    http://www.boobooke.com/v/bbk1595
    9 参数化
    http://www.boobooke.com/v/bbk1599
    10 Tools下的工具介绍
    http://www.boobooke.com/v/bbk1589
    11 qtp插件分析
    http://www.boobooke.com/v/bbk1689
    12 qtp测试用例设计考题
    http://www.boobooke.com/v/bbk1575
    13 vbs
    http://www.boobooke.com/v/bbk1621
    14 recovery Scenarios
    http://www.boobooke.com/v/bbk1692
    15 虚拟对象
    http://www.boobooke.com/v/bbk1695
    16 专家视图测试脚本开发
    http://www.boobooke.com/v/bbk1690
    17 qtp描述性编程
    http://www.boobooke.com/v/bbk1691
    18 qtp测试脚本编写规范
    http://www.boobooke.com/v/bbk1693
    19 如何建立自动化测试框架
    http://www.boobooke.com/v/bbk2097
    20 QTP之焦点
    http://www.boobooke.com/v/bbk2146
    21 手工测试 PK 自动化测试
    http://www.boobooke.com/v/bbk2148
    22 QTP之Excel操作
    http://www.boobooke.com/v/bbk2835
    23 QTP之描述性编程实例
    http://www.boobooke.com/v/bbk2836
    24 QTP之DLL
    http://www.boobooke.com/v/bbk2834
    25 QTP使用指南第一部分基础知识讲解完结篇
    http://www.boobooke.com/v/bbk2147

    小强作品:《LAMP快速入门培训》

    LAMP系列之安装篇
    http://www.boobooke.com/v/bbk2262
    LAMP系列之Apache文件分析
    http://www.boobooke.com/v/bbk2264
    LAMP系列之MySQL权限系统简介
    http://www.boobooke.com/v/bbk2263
    LAMP系列之初识PHP
    http://www.boobooke.com/v/bbk2269
    LAMP系列之PHP语言结构
    http://www.boobooke.com/v/bbk2274
    LAMP系列之PHP表单
    http://www.boobooke.com/v/bbk2275
    LAMP系列之PHP文件和目录
    http://www.boobooke.com/v/bbk2325
    LAMP系列之PHP的Cookie和Session
    http://www.boobooke.com/v/bbk2326
    LAMP系列之PHP的图像
    http://www.boobooke.com/v/bbk2330
    LAMP系列之数据库基础知识精要
    http://www.boobooke.com/v/bbk2331
    LAMP系列之SQL基本命
    http://www.boobooke.com/v/bbk2338
    LAMP系列之事务和存储过程
    http://www.boobooke.com/v/bbk2339
    LAMP系列之规划数据库
    http://www.boobooke.com/v/bbk2374
    LAMP系列之PHP和MySQL交互
    http://www.boobooke.com/v/bbk2373
    LAMP实战系列之Web 程序本地化研究
    http://www.boobooke.com/v/bbk2495
    LAMP全程实战之在线商店项目实战1
    http://www.boobooke.com/v/bbk2476
    LAMP系列之在线商店项目实战2
    http://www.boobooke.com/v/bbk2481
    LAMP实战系列之在线商店项目实战之访问权限
    http://www.boobooke.com/v/bbk2490
    LAMP系列之完结篇
    http://www.boobooke.com/v/bbk2567

    小强作品:人文视频汇总

    IT人士健康指南
    http://www.boobooke.com/v/bbk2745
    《论语》读书札记
    http://www.boobooke.com/v/bbk2628

    小强作品:Google搜索技巧

  • 常见软件测试面试题

    gch4648228 发布于 2012-06-12 16:57:17

    问题一:为什么要在一个团队中开展软件测试工作
    任何软件在开发过程中都会留下缺陷,带有缺陷的软件产品如果提交出去,可能会给公司带来不可估量的损失,我们必须在客户之前发现尽可能多的问题,从而保障客户满意。而发现问题的这个过程称之为测试。

    问题二:简述你在以前的工作中做过哪些事情,比较熟悉什么。
          此问题每个人都不一样。我自己的答案如下。
    我主要的工作是系统测试自动化测试,也曾少量涉及性能测试。在系统测试中,主要是对BOSS系统的业务逻辑功能,以及软交换系统的Class 5特性进行测试。性能测试中,主要是进行的压力测试,在各个不同数量请求的情况下,获取系统响应时间以及系统资源消耗情况。自动化测试主要是通过自己写脚本以及一些第三方工具的结合来测试软交换的特性测试。

    问题三:你所了解的的软件测试类型都有哪些,简单介绍一下。
    1.
    基本功能验证。主要是对发布的版本进行一些最主要功能的测试。英文常见叫法是Smoking Test, Basic Verification Test或者Sanity Check
    2.
    功能测试。主要是依据需求或者需求分析文档,对所发布的版本进行测试,看看是否满足需求,是否出现了不必要的功能。
    3.
    单元测试。是开发人员进行的测试之一,一般是开发人员对很小的模块,比如函数进行测试,一般来说,开发人员还需要开发相应的测试桩来进行此类测试。
    4.
    集成测试。在大型的开发过程中,软件是模块化进行开发的,将不同的模块揉合在一起的话,需要进行的测试就是集成测试。
    5.
    系统测试。当软件提交给测试组后,是对整个系统的所有功能进行测试,一般来说,功能测试是系统测试的一个部分。
    6.
    压力测试。主要是在很大性能的情况下,这个性能已经接近了系统的极限,看看系统运转的情况。
    7.
    负载测试。主要是用各种不同的性能去检测系统,采集各个数据在这些性能情况下的数据。
    8.
    黑盒测试。指系统对你来说是完全不透明的,只给你留下了输入和最终输出,这个是功能测试的方法之一。
    9.
    灰盒测试。指在了解部分系统内部工作机制的情况下,对于系统进行的覆盖性测试。
    10.
    白盒测试。主要是在单元测试和集成测试的情况下,开发人员已知代码,对这一段的代码进行全路径的覆盖测试。
    11.
    界面测试。主要是看用户界面的友好性和易用性,是否有文字或者排版错误,是否有输入限制等等。
    12.
    回归测试。一般是系统发现BUG,开发人员修改后,和BUG直接相关以及可能相关的功能进行的测试。
    13.
    安装和卸载的测试。
    14.
    恢复测试。主要是一个系统在发生了灾难的情况下,从错误中是否容易恢复。
    15.
    兼容性测试。一个系统在不同的语言,操作系统下的系统测试。
    16.
    安全测试。系统在遇到攻击或者类似情况下的表现。
    17.
    Alpha
    测试。系统在给最终用户前,测试人员在实验室中模拟最终用户的测试。
    18.
    Beta
    测试。由部分最终用户通过使用来进行的测试。
    19.
    比较测试。和其他具有相同或者类似功能的系统进行对比的测试。
    20.
    验收测试。一般是最终用户在接受产品前,依据自己所提出的要求进行的测试,很多情况下,验收测试可能委托第三方机构完成。

    问题四:测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?
    软件测试计划是指导测试过程的纲领性文件。
    包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
    测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。

    问题五:你认为做好测试计划工作的关键是什么?
    1.
    明确测试的目标,增强测试计划的实用性
    编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确
    2.
    坚持“5W”规则,明确内容与过程
    5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。
    3.
    采用评审和更新机制,保证测试计划满足实际需求
    测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。
    4.
    分别创建测试计划与测试详细规格、测试用例
    应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。

    问题六:常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。

    1.         等价类划分

    划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.

    2.         边界值分析法

      边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.

      使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.

    3.         错误推测法

      基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.

      错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.

    4.         因果图方法

    前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

    5.         正交表分析法

    有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。

    6.         场景分析方法

    指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。


    问题七:您认为做好测试用例设计工作的关键是什么?

    白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果

    黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题


    问题八:详细的描述一个测试活动完整的过程。

    1.         项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后SQA进入项目,开始进行统计和跟踪

    2.         开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。

    3.         测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。

    4.         测试用例完成后,测试和开发需要进行评审。

    5.         测试人员搭建环境

    6.         开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现BUG后提交给BugZilla。

    7.         开发提交第二个版本,包括Bug Fix以及增加了部分功能,测试人员进行测试。

    8.         重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。

    9.         如果有客户反馈的问题,需要测试人员协助重现以及回归测试。


    问题九:以往是否曾经从事过性能测试工作?请尽可能的详细描述您以往的性能测试工作的完整过程。

           曾经做过一套网管系统的性能测试,主要测试该软件在同时管理大量终端的情况下,在响应时间,CPU/磁盘/内存等参数是否满足要求。

           也曾经做过软交换系统的呼叫性能测试,主要是测试软交换系统在有大量呼叫的情况下,响应时间,呼叫成功率,CPU/磁盘/内存等参数是否满足设计要求。


    问题十:您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。

           测试网管系统中,使用的Mimic来模拟终端,能够大量的节省成本。

           测试软交换系统的时候,使用的Prolab来模拟终端并发送呼叫软交换,他完成了同时数百人才能完成的摘机拨号工作,主要工作原理是产生一些符合要求的IP包并发送给软交换系统,同时对软交换系统的回应进行处理,决定下一步动作。


    问题十一:您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?

    主要是保障在大量用户的情况下,服务能正常使用。


    问题十二:在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?

    1.         在传统的BugZilla中,BUG描述应该包括以下的信息

    2.         和BUG产生对应的软件版本

    3.         开发的接口人员

    4.         BUG的优先级

    5.         BUG的严重程度

    6.         BUG可能属于的模块,如果不能确认,可以用开发人员来判断

    7.         BUG标题,需要清晰的描述现象

    8.         BUG描述,需要尽量给出重新Bug的步骤

    9.         BUG附件中能给出相关的日志和截图。

           高质量的BUG记录就是指很容易理解的BUG记录,所以,对于描述的要求高,能提供的信息多且准确,很好的帮助开发人员定位。

    问题十二:BUG管理工具的跟踪过程

           用BugZilla为例子      

    测试人员发现了BUG,提交到Bugzilla中,状态为new,BUG的接受者为开发接口人员

    开发接口将BUG分配给相关的模块的开发人员,状态修改为已分配

    开发人员和测试确认BUG,如果是本人的BUG,则设置为接收;如果是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;如果认为不是问题,则需要大家讨论并确认后,拒绝这个BUG,然后测试人员关闭此问题。

    如果开发人员接受了BUG,并修改好以后,将BUG状态修改为已修复,并告知测试在哪个版本中可以测试。

    测试人员在新版本中测试,如果发现问题依然存在,则拒绝修改;如果已经修复,则关闭BUG。


    问题十二:您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?

           尽量能有面对面的沟通,如果做不到,那么尽量能直接通过电话沟通,如果只能通过Email等非及时沟通工具的话,强调必须对特性的理解深刻以及能表达清楚。

           一是真诚,二是团队精神,三是在专业上有共同语言,当然也可以通过直接指出一些小问题,而不是进入BUG Tracking System来增加对方的好感。


    问题十三:在您以往的测试工作中,最让您感到不满意或者不堪回首的事情是什么?您是如何来对待这些事情的?

           某次性能测试覆盖不足,造成系统崩溃。


    问题十四:你对测试最大的兴趣在哪里?为什么?

    最大的兴趣就是测试有难度,有挑战性!做测试越久越能感觉到做好测试有多难。曾经在无忧测试网上看到一篇文章,是关于如何做好一名测试工程师。一共罗列了11,12点,有部分是和人的性格有关,有部分需要后天的努力。但除了性格有关的1,2点我没有把握,其他点我都很有信心做好它。

    刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着做测试需要很多技能才能做的好,虽然入门容易,但做好很难,比开发更难,虽然当时我很想做开发(学校专业课我基本上不缺席,因为我喜欢我的专业),但看到测试比开发更难更有挑战性,想做好测试的意志就更坚定了。

    我觉得做测试整个过程中有2点让我觉得很有难度(对我来说,有难度的东西我就非常感兴趣),第一是测试用例的设计,因为测试的精华就在测试用例的设计上了,要在版本出来之前,把用例写好,用什么测试方法写?(也就是测试计划或测试策略),如果你刚测试一个新任务时,你得花一定的时间去消化业务需求和技术基础,业务需求很好理解(多和产品经理和开发人员沟通就能达到目的),而技术基础可就没那么简单了,这需要你自觉的学习能力,比如说网站吧,最基本的技术知识你要知道网站内部是怎么运作的的,后台是怎么响应用户请求的?测试环境如何搭建?这些都需要最早的学好。至少在开始测试之前能做好基本的准备,可能会遇到什么难题?需求细节是不是没有确定好?这些问题都能在设计用例的时候发现。

    第二是发现BUG的时候了,这应该是测试人员最基本的任务了,一般按测试用例开始测试就能发现大部分的bug,还有一部分bug需要测试的过程中更了解所测版本的情况获得更多信息,补充测试用例,测试出bug。还有如何发现bug?这就需要在测试用例有效的情况下,通过细心和耐心去发现bug了,每个用例都有可能发现bug,每个地方都有可能出错,所以测试过程中思维要清晰(测试过程数据流及结果都得看仔细了,bug都在里面发现的)。如何描述bug也很有讲究,bug在什么情况下会产生,如果条件变化一点点,就不会有这个bug,以哪些最少的操作步骤就能重现这个bug,这个bug产生的规律是什么?如果你够厉害的话,可以帮开发人员初步定位问题。


    问题十五:你的测试职业发展目标是什么?

    测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年累积测试经验,按如何做好测试工程师的11,12点要求自己,不断的更新自己改正自己,做好测试任务。


    问题十六:你自认为测试的优势在哪里?

    有韧性

    有能力面对挑战

    有信心做好每一件事情

    有比较好的教育背景

    从以前的经理处都得到了很好的评价表明我做的很好


    问题十七:当开发人员说不是BUG时,你如何应付?

    如果确实是自己理解错误,则承认错误,没什么大不了

    如果是需求不明,请项目经理补充清楚

    如果双方理解不一致,且都不能互相说服,则请项目经理判断。


    问题十八:你为什么想离开目前的职务?


    问题十九:你对我们公司了解有多少?


    问题二十:你找工作时,最重要的考虑因素为何?

    工作的性质和内容是否能让我发挥所长,并不断成长。


    问题二十一:为什么我们应该录取你?

    您可以由我过去的工作表现所呈现的客观数据,明显地看出我全力以赴的工作态度。


    问题二十二:请谈谈你个人的最大特色。

    我的坚持度很高,事情没有做到一个令人满意的结果,绝不罢手。


    问题二十三:一个测试工程师应具备那些素质和技能?


    问题二十四:集成测试通常都有那些策略?

           自上而下,自下而上,平面集成


    问题二十五:测试结束的标准是什么?

           从微观上来说,在测试计划中定义,比如系统在一定性能下平稳运行72小时,目前Bug Tracking System中,本版本中没有一般严重的BUG,普通BUG的数量在3以下,BUG修复率90%以上等等参数,然后由开发经理,测试经理,项目经理共同签字认同版本Release。

           如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。


    问题二十六:软件验收测试除了alpha,beta测试以外,还有哪一种?

    第三方验收测试


    问题二十七:为什么选择测试这行?

    最开始么,公司安排的,然后么,干一行爱一行,发现测试中间还是有很多东西需要学习的,再就是测试中有很多东西值得改进和研究。


    问题二十六:为什么值得他们公司雇用?

          用自己的经验和其他同事一起发现更多的问题,同时不同行业的观点可以互相借鉴。


    问题二十七:如果我雇用你,你能给部门带来什么贡献?

          分享我的测试经验和测试技能,提高测试部门技术水平



  • 软件测试工具LoadRunner常见问题

    gch4648228 发布于 2012-06-26 16:32:28

       1.LoadRunner录制脚本时为什么不弹出IE浏览器?
      当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。

      启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题

      提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。因此建议运行LoadRunner得主机上保持一个干净的测试环境。

      2.录制Web脚本时,生成的脚本中存在乱码该如何解决?

      录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Support charset”,然后选择中支持UTF-8。再次录制,就不会出现中文乱码问题了。

      3.HTML-based script与URL-based script的脚本有什么区别?

      使用“HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。

      通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-based script”模式进行录制。

      4.为什么脚本中添加了检查方法Web-find,但是脚本回放时却没有执行?

      由于检查点功能会耗费一定的资源,因此LoadRunner默认关闭了对文本及图像的检查。要想开启检查功能,必须修改运行时的配置Run-time Setting。

      进入“Run-time Setting”对话框,依次进入“Internet Protocol→Preferences”,勾选Checks下的“Enable Image and text check”选项即可。

      检查执行结果时推荐使用web_reg_find方法。

      5.运行时的Pacing设置主要影响什么?

      Pacing主要用来设置重复迭代脚本的间隔时间。共有三种方法:上次迭代结束后立刻开始、上次迭代结束后等待固定时间、按固定或随机的时间间隔开始执行新的迭代。

      根据实际需要设置迭代即可。通常,没有时间间隔会产生更大的压力。

      6.运行时设置Log标签中,如果没有勾选“Enable logging”,则手工消息可以发送吗?

      Enable logging选项仅影响自动日志记录和通过lr_log_message发送的消息。即使没有勾选,虚拟用户脚本中如果使用lr_message、lr_output_message、lr_error_message,仍然会记录其发出的消息。

      7.LoadRunner 8.0版本的VuGen在录制Web Services协议的脚本时一切正常,而回放时报出错误提示“Error:server returned an incorrectly formatted SOAP response”。这时说明原因引起的?

      造成这种情况的主要原因是LoadRunner 8.0的VuGen在录制Web Service协议的脚本时存在一个缺陷:如果服务器的操作系统是中文的,VuGen会自动将WSDL文件的头改为,因此会有上面的错误提示。

      解决方法:把“LR80WebservicesFPI_setup.exe”和“lrunner_web_sevices_path_1.exe”两个补丁打上即可解决。
     8.VuGen支持Netscape的客户证书吗?

      不支持。目前的VuGen 8.0版本中仅支持Internet Explorer的客户端证书。录制脚本时可以先从Netscape中导出所需的证书,然后将其导入到Internet Explorer中,并确保以相同的顺序导出和导入这些证书。而且,在每台将要录制或运行需要证书的Web Vuser脚本的计算机上都要重复执行前面的过程。

      9.VuGen会修改录制浏览器中的代理服务器设置吗?

      会修改。在开始录制基于浏览器的Web Vuser脚本时,VuGen首先会启动指定的浏览器。然后,VuGen会指示浏览器访问VuGen代理服务器。为此,VuGen会修改录制浏览器上的代理服务器设置。默认情况下,VuGen会立即将代理服务器设置更改为Localhost:7777。录制之后,VuGen会将原始代理服务器设置还原到该录制浏览器中。因此,在VuGen进行录制的过程中,不可以更改代理服务器设置,否则将无法正常进行。

      10.在LoadRunner脚本如何输出当前系统时间?

      LoadRunner提供了char *ctime(const time_t *time)函数,调用参数为一个Long型的整数指针,用于存放返回时间的数值表示。

      调用语句与返回值如下示例:

      typedef long time_t;

      Action()

      {

      time_t t;

      lr_message(“Time in seconds since 1/1/70: %ld ”,time(&t));

      lr_message(“System time and date: %s”,ctime(&t));

      }

      输出结果为:

      Time in seconds since 1/1/70: 1185329968

      System time and date:Wed Jul 25 10:19:28 2007

      11.一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数大于1时,如果进行回放则只能成功迭代一次。为什么从第二次迭代开始发生错误?

      这种现象多是由于在“Run-time Setting”的“Browse Emulation”的设置中,勾选了“Simulate a new user on each iteration”及其下面的选项“Clear cache on each iteration”这两个选项的含义是每次迭代时模拟一个新的用户及每次迭代时清除缓存。

      由于脚本迭代时,init和end只能执行一次,如果每次迭代都模拟一个新的用户并清除缓存,

    则用户登录信息将一并清除,因此迭代时可能会发生错误。

      12.虚拟客户脚本“Run-time Setting”中的线程和进程运行方式的区别?

      如果选择“Run Vuser as a process”,则场景运行时会为每一个虚拟用户创建一个进程;选择“Run Vuser as a thread”则将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,这种方式的运行效率更高,能造成更大的压力,时默认选项。

      另外,如果启用了IP欺骗功能,则先在Controller中选中Tools菜单下的“Expert Mode”,然后将Tools菜单下的“Options>General”标签页中的IP地址分配方式也设置为与Vuser运行方式一致,同为线程或进程方式。

      13.在Controller中运行Web相关测试场景时,经常会有很多超时错误提示,如何处理这类问题?

      这主要有脚本的默认超时设置引起。当回放Web脚本时,有时候由于服务器响应时间较长,会产生超时的错误。这时需要修改脚本的运行时配置。

      进入“Run-time Setting”对话框后,依次进入“Internet Protocol→Preference”。然后点击“Options…”按钮,进入高级设置对话框,可以修改各类超时设置的默认值。

      14.为什么Windows系统中的CPU、内存等资源仍然充足,但是模拟的用户数量却上不去?

      在Windows计算机的标准设置下,操作系统的默认限制只能使用几百个Vuser,这个限制与CPU或内存无关,主要是操作系统本身规定了默认的最大线程数所导致。要想突破Windows这个限制,须修改Windows注册表。以Windows XP Professional为例。

      (1)打开注册表后,进入注册表项HKEY_LOCAL_MACHINE中的下列关键字:SystemCurrentControlSetControlSession ManagerSubSystems。

      (2)找到Windows关键字,Windows关键字如下所示:

      %SystemRoot%system32csrss.exe bjectDirectory=Windows

      SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1

      ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2

      ProfileControl=Off MaxRequestThreads=16

      SharedSection=1024,3072,512关键字的格式为xxxx,yyyy,zzz。其中,xxxx定义了系统范围堆的最大值(以KB为单位),yyyy定义每个桌面堆得大小。

      (3)将yyyy的设置从3072更改为8192(即8MB),增加SharedSection参数值。

      通过对注册表的更改,系统将允许运行更多的线程,

    因而可以在计算机上运行更多的Vuser。这意味着能够模拟的最大并发用户数量将不受Windows操作系统的限制,而只受硬件和内部可伸缩性限制的约束。


  • LR7.8、LR8.0、LR8.1、LR9.1、LR9.5、LR11下载地址&《LR9.1实战》

    gch4648228 发布于 2012-06-28 15:15:58

  • 数据库中表与视图的联系与区别

    gch4648228 发布于 2012-06-29 10:57:57

    联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系.

    区别:1、视图是已经编译好的sql语句,而表不是.
     
    2、视图没有实际的物理记录,而表有。
     
    3、表是内容,视图是窗口 .

    4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改.

    5、表是内模式,视图是外模式 .

    6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
     
    7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。

    8、视图的建立和删除只影响视图本身,不影响对应的基本表。
  • 数据库中主键与索引的区别

    gch4648228 发布于 2012-06-29 10:56:41

    区别:

    1:主键是为了标识数据库记录唯一性,不允许记录重复,且键值不能为空,主键也是一个特殊索引.

    2:数据表中只允许有一个主键,但是可以有多个索引.

    3.使用主键数据库会自动创建主索引,也可以在非主键上创建索引,方便查询效率.

    4:索引可以提高查询速度,它就相当于字典的目录,可以通过它很快查询到想要的结果,而不需要进行全表扫描.

    5:主键索引外索引的值可以为空.

    6:主键也可以由多个字段组成,组成复合主键,同时主键肯定也是唯一索引.

    7:唯一索引则表示该索引值唯一,可以由一个或几个字段组成,一个表可以有多个唯一索引.
     
  • QTP8.2、QTP9.0、QTP9.2、QTP9.5、QTP10、QTP11下载地址和《QTP自动化测试实践》

    gch4648228 发布于 2012-06-28 15:19:22

  • 学习性能测试需要掌握的知识面【转】

    li_feibo 发布于 2012-06-25 13:02:28

    摘要:随着Internet的普及与迅速发展,企业业务量的迅速加大,数据大集中成为一种趋势,IT系统承载的负荷越来越重,系统性能的好坏严重的影响了企业对外提供的服务质量。从而对IT系统的性能进行测试和调优引起企业的重视,进而性能测试工程师成为IT市场的”香悖悖”,并且性能测试有着极高的技术挑战。于是吸引了大量的测试爱好者来学这方面的技术,而一谈到性能测试很多人便会想到鼎鼎大名的LoadRunner这款优秀的性能测试工具,然而到这里问题就产生了?

      关建字:LoadRunner 性能测试 网络基础编程语言数据库操作系统

      LoadRuner与性能测试的关系:LoadRunner初学者的误点:把LoadRunner神化了。很多初学LoadRunner的朋友认为掌握了使用LoadRunner这款性能测试工具,就能够做性能测试了。常在网上看到好多人在学习怎么去使用这款优秀的性能测试工具,本来学习怎么去使用LoadRunner这个工具没有错,却把LoadRunner神化了,”天真的”以为它什么都能做,以为学会了LoadRunner的使用就能做性能测试了。尽管用了大量的时间学会了如何使用LoadRunner录制脚本,如何进行关联,如何进行参数化,如何设置集合点等等?可到头来,性能测试还是不会做。为什么?对于产生的性能报告不知道怎么去分析?不知道如何利用得到的分析报告分析出系统存在的瓶颈?不知道如何进行性能调优?像这些事光会使用LoadRunner是做不到的?说白了LoadRunner只是我们做性能测试的一个工具,它并不是万能的,是死的,具体怎么做还得依靠人去操作与分析。会使用LoadRunner的人,并不一定会做性能测试,会做性能测试的人并不一定都会使用 LoadRunner。LoadRunner只是一个性能测试工具而已。我们应该意识到,测试工具只是性能测试中的一部分,仅是为达到性能测试目的而采用的一种手段

      性能测试与系统性能的关系:高性能,高安全的系统,不是测试出来的,而是构架,设计,编写出来的。当然在这里我并不否认性能测试的重要性,甚至可以说没有经过性能测试的系统,一定不会是优秀的系统,软件是人开发出来的,而人总是会出错的,所谓智者千虑,必有一失……要想做好性能测试,在软件系统需求,设计,编写代码的这些阶段就应该进行性能测试,而不仅仅是系统测试这个阶段才去做性能测试,性能测试应该贯穿于整个软件开发周期中。

      对初学LoadRunner朋友的建意:常看到网上一些网友发贴子问,怎么对性能测试产生的结果进行分析?测试系统时怎么去选择合适的协议?对于发这些贴子的人我想请问你?你能够详细的说下HTTP协议吗?TCP建立连接和释放连接的过程是怎样进行的?什么是协议?协议是用来做什么的?在OSI参考模型中各层的作用?数据库中产生并发的冲突的原因?不要太依赖于LoadRunner工具本身的学习,而去忽略计算机其它基础知识的学习,我们更应该去掌握一门编程语言,良好的网络基础知识,计算机原理与操作系统知识,数据库知识。这些是我们去学习怎么去使用LoadRunner前提与基础。。

      1、为什么要掌握一门编程语言

      其一,大家在使用LoadRunner时常会遇到一些不能录制脚本的情况发生,或者需要录制一些复杂的脚本,这时候我们就必须手动的开发脚本。其二 LoadRunner虽然强大,易于使用,可是它却属于商业软件,价格昂贵,并且代码不开源,我们无法了解LoadRunner具体的实现细节,甚至我们会怀疑LoadRunner收集的性能数据准确吗?它有是如何实现的等等,而这些我们通过LoadRunner的帮助文档无法得知。性能测试工具并不只有 LoadRunner,做性能测试还有许多优秀的性能测试工具可以选择,像JMeter,Curl- Loader等等这些非常优秀的开源工具,在全能上虽然并不上LoadRunner,但在某些方面却比LoadRunner还要强大。例如Curl- Loader这个工具,它虽然支持的协议不多,但是对于http协议它最高能产生10万的并发用户,这是LoadRunner远远所不及的。并且这些工具代码是公开的,我们能够从这些代码中去分析具体实现的细节,并且还可以自已编写代码,增强软件的功能,这也是成为性能测试高手的一条途径。LoadRunner好比我们的Windows操作系统,易于使用,功能强大,代码封闭,论全能比Linux要强大。我们的开源性能测试工具好比Linux操作系统代码开源,不易于使用,但很多方面比我们的Windows要强大。也许这个时候有人会问对于初学者学哪门语言最好最有前途C,C++,VB,JAVA,C#?其实每一种语言能够生存下来,自有其生存的道理,每一种语言都有自已优势和缺点,并且编程语言具有相通信,学好了一门,再去学另外的编程语言,非常快就能上手。对于初学者我建意学习C语言,理由有很多,例如很多优秀的开源性能测试工具就是用C语言开发的…。当然不管选择什么编程语言,或者数据库,或者操作系统,我们不要去想学哪门最好,学哪方面最有前途。我们更应该结合自身的情况,选择最合适的,而不是选择最好的。

      2、为什么要掌握计算机原理和操作系统知识

      论坛上常会看到这些问题?LoadRunner中线程与进程的关系?在什么时候用到它们,怎么区别用线程还是进程呢?LoadRunner录制产生了乱码怎么解决?怎么去发现内存泄漏?对那些发贴问这些问题的朋友,我依然想请问你你知道进程和线程的概念吗?知道进程有几种状态吗?知道进程间的通信是怎么进行的吗?死锁,进程与线程的区别这些概念你明白吗?如果你连内存的概念,内存的作用,内存泄露的概念都搞不清楚,你怎么去发现内存泄露?如果这些你都不知道,自然就不知道怎么去做性能测试分析?一些网友录制脚本常常会产生一些莫名奇妙的错误?还震震有词的说这是LoadRunner的原因。其实要说到底要解决这些问题就必需得有良好的计算机原理和操作系统知识。弄清了进程和线程的区别,你自然就明白了使用进程资源使用高,但安全性要强于线程,线程资源利用率少,使用线程能在一个负载生成器上运行更多的Vuser,但可能存在安全问题。LoadRunner录制产生了乱码怎么解决?为什么会产生乱码,你知道什么是字符集吗?什么是编码吗?字符串在我们内存中有是如何存放的?ASCII编码,ANSI编码,UNICODE编码它们的区别是什么?这些都是操作系统的基础基础。掌握好了这些你自然明白LoadRunner中产生乱码的原因。当然计算机原理和操作系统的基础知识还有很多得掌握的知识。像操作系统的体系架构、操作系统的重要基础概念,内存管理、存储/文件系统、驱动/硬件的管理。要做好性能测试计算机原理和操作系统知识必不可少。

    3、为什么要有良好的网络基础

      经常在51testing论坛中看到很多人发贴子。像LoadRuner中为什么要进行关联?LoadRunner测试系统时如何选择协议?LoadRunner中的如何进行IP欺骗?等等。这些问题随便一搜就能发现大量的贴子,其实说到底这些问题和LoadRunner的关系并不是很大,要去解决这些问题并不在于你对LoadRunner这个工具使用是否熟练,而在于我们网络基础知识是否扎实。例如第一个问题LoadRunner中为什么要进行关联?相信很多朋友都知道HTTP协议知道它是超文本传输协议,但是对于一些新手往往不能够详细的说出HTTP具体的内容,像HTTP工作的原理,HTTP协议为什么要使用基于TCP的协议而不使用UDP的协议,HTTP工作在OSI参考模型的哪一层?在HTTP协议上数据是怎么传输的等等。而只有当我们明白了这一切,自然而然就会明白为什么要使用关联,到最后你会发现这些问题其实根LoadRunner关系并不是很大。HTTP协议本质上是无状态的;对页面的每个请求都将被视为新请求,而且默认情况下,来自一个请求的信息对下一个请求不可用。在传统的Web编程中,这通常意味着在每一次往返行程中,与该页及该页上的控件相关联的所有信息都会丢失。例如,如果用户将信息输入到文本框,该信息将在从浏览器或客户端设备到服务器的往返行程中丢失,为了使用浏览网页,页与页是相互联系不去丢失这些信息,于是了就从现了Cookie,Session,查询字符串等等保持状态的技术。什么是Cookie?什么是Session?Cookie 和Session 有是怎么工作的?当我们明白了这些,很多的问题就自然而然的明白了,像这些都是基础的知识和LoadRunner关系大吗?不大。

      Cookie 是一些少量的数据,这些数据存储在客户端文件系统的文本文件中,或者存储在客户端浏览器会话的内存中。Cookie 包含特定于站点的信息(像用户名密码以及我们在网站一些个性化的设置等等),这些信息是随页输出一起由服务器发送到客户端的。如果浏览器使用的是 cookie,那么所有的数据都保存在浏览器端,比如我们登录以后,服务器设置了cookie用户名,那么当你再次请求服务器的时候,浏览器会将用户名一块发送给服务器,这些变量有一定的特殊标记。服务器会解释为cookie变量,所以只要不关闭浏览器,那么cookie变量一直是有效的,所以能够保证长时间不掉线。。如果设置了的有效时间,那么它会将 cookie保存在客户端的硬盘上,下次再访问该网站的时候浏览器先检查有没有 cookie,如果有的话,就读取该 cookie,然后发送给服务器。这些是Cookie的工作过程,常看到论坛上一些朋友发贴子问使用LoadRunner时录制到了一些Cookie的信息,它是用来做什么的,看起来很烦可不可以把它删除掉?明白了这些细节的知识,你自然能明白那个Cookie的信息能不能删除掉。如果web服务器端使用的是session,那么所有的数据都保存在服务器上,客户端每次请求服务器的时候会发送当前会话的SessionId,服务器根据当前 SessionId唯一地标识在服务器上包含会话数据的浏览器,以确定用户是否登录或具有某种权限。不同的用户发送请求Web服务器会随机发送一个唯一的 SessionID。而我们使用LoadRunner录制时它会把我们SessionID写死,所以导致出错。这时候就得使用关联了,这样不仅明白了 LoadRunner怎样使用关联,而且还明白了为什么要使用关联?对于LoadRunner测试系统时如何选择协议?这个问题也是网络论讨的比较多的问题。要解决这个问题同样得依靠我们的扎实的网络基础,而不是对LoadRunner使用的熟练程度,首先我们得了解LoadRunner录制时的工作原理了,LoadRunner的录制和QTP不一样,它不关心你的对象识别什么的,不关心你的什么界面之类的,不关心你使用什么语言编写的,LoadRunner有一个Agent进程,来专门监控客户端和服务器之间的通信,然后用自己的函数进行录制。LoadRunner录制的时候关心的是通信包,是客户端和服务器之间的数据包。说到这里,大家就比较清楚了,为什么有的时候不能录制呢?因为,协议不认识,导致LoadRunner截获的数据包不能解析,所以录制下来是空的。所以我们得熟悉什么是协议, 熟悉OSI参考模型,OSI参考模型中各层的作用,TCP协议栈各层的作用,熟悉TCP,UDP,ICMP等等协议。当我们明白了这些网络的基础知识后我们自然会明白应该如何去选择协议。另外关于LoadRunner中的如何进行IP欺骗?要解决这个问题同样得有良好的网络基础知识。其实当我们理解了IP 地址的格式,IP地址的分类,子网掩码的概念,以及知道怎么去进行非标准子网的划分方法 ,掌握了这些原理的东西,那么具体怎么在LoadRunner中如何进行IP欺骗,就非常简单了。 当然网络基础知识并不只是上面的而已,还包括路由器,交换机,加密技术等等这些基础的网络知识,这些远远比我们去学习怎么去使用LoadRunner更重要。

      4、为什么要掌握数据库知识

      数据库的重要性我想是不言而喻的,性能测试产生的一个非常大的原因是因为数据大集中的趋势,测试从某种意义来讲就是对数据测试,而我们企业的核心数据是放在数据库中的。现在大型的WEB应用程序,都采用多层结构,像典型三层,用户界面层,数据逻辑层,数据层。而数据层,而数据层对我们整个WEB应用程序的性能是非常大的,对数据库的基础知识不懂,我们怎么去进行性能测试分析?怎么知道确定性能产生的瓶颈是否是数据库的原因,如何对系统进行调优?例如数据库模型设计不合理,一条坏的SQL语句就能影响到整个WEB应用程序的性能,所以熟悉SQL语句,建表,索引,存储过程,事务,触发器,并发等这些基础知识是必需得掌握的。

      路漫漫其修远兮,吾将上下而求索:性能测试难点不在于Loadrunner工具本身,难在对整个系统的全局把握,而对全局的把握你就必需得有丰富的知识面。 并不是学好了LoadRunner的使用就能做性能测试 。目前,国内性能测试领域正处于起步阶段,要做好性能测试还需学习更多的知识,技术性和非技术。性能测试这条路充满着挑战,也充满着机遇。但正如鲁迅先生所说这世上本来没有路,走的人多了,也就成了路。最后祝愿喜爱性能测试的爱好这条道路上能够不鸣则已,一鸣惊人,不飞则已,一飞冲天。


  • 容易出错的测试点(功能测试)

    zhuhuan2157914 发布于 2012-07-03 16:13:59

    这里只总结容易出错的测试点。至于基本的就不一一总结啦!
    异常处理:

    1.新增操作,返回上一个页面。
    一般新增成功后。点击返回按钮或者返回键是需要做异常处理的。
    上一步骤是新增页面,一般会做操作让上个页面失效。所以新增成功后返回上个页面如果不做处理一定会报错。
    一般此异常处理会返回到新增页面但是不包含上一步骤新增的数据。
    2.不同平台测试时同一浏览器操作容易冲突。
    一般测试阶段开发给测试不同平台的版都是用的同一个域名localhost所以容易出现一些莫名其妙的错误。测试人员遇到这种问题重现一般需要花费很多时间,找到规律后又会被告知其实这不算什么错误。所以测试人员在测试时一定要问清楚。免得做无用功。那真的很抓狂啊!
    3.正在操作或者提交时当机。
    数据是否保存那是需要处理的。没处理那就很容易出现bug了。
    4.首次登录时密码强制修改
    这里是个小界面。很容易忽视一些处理。比如enter键和table键以及返回键的操作。还有就是如果没有做任何修改,就是密码没有修改成功,按返回键离开这个修改密码页面,再次用旧密码登录时,必须要做异常处理。进入修改密码页面,而不能让其直接进入主界面。否则就没必要做什么首次登录强制修改密码了。

    需求:
    1.需求分析不够完善,遗留部分需求。如:
    (1)列表按照什么排序
    (2)数据小数点保留位数
    (3)参数的范围。一般数据类型都会有范围的,但是开发人员有时候会忽略掉控制输入数据或者参数的长度导致输入非法数据。
    (4) 提示信息不够详细和完善。导致用户操作不方便。如提示“输入错误超过限额”这种提示对于用户来说是没什么用的。到底限额是什么呢?大于什么、小于什么,限额是什么范围都不知道。那到底要我输入什么才正确呢?这的确有争议。所以提示一定要准确,内容完整且简短。
    2.需求中关联的业务和流程。互操作。
    一般公司比较在乎的也就是这个了。所以开发和测试人员都会非常重视。但是最容易出错的也是这里啦。原因当然不言而喻喏!比较重点的地方当然会比较难嘛。而且没做好就相当于整体报废。这个不重视怎么行呢?

    操作:
    1.enter 键,table键和返回键以及ctrl+v等快捷键相关操作。
    开发人员很多时候会在某个步骤某个地方遗漏这些处理。
    2.修改和新增某一参数时限制条件应该一致。
    比如用户密码,如果你只是单单在注册时限制其长度,而在修改时不限制,那登录时长度为1的账户也是可以登录的。这样做的后果可想而知有多不安全。而且当开发人员意识到这个错误时那个长度为1的账户就再也修改不了密码了。

    页面:
    1.ctrl+鼠标移动键 让页面按照比例缩放。窗口最小化的页面展现.
    一般大型网站都会做操作。但是有些网站或者公司觉得没必要做太麻烦。这里我也不知道为什么麻烦。反正我们公司最后的处理是一定程度是正常即可。可以在重要地方做操作就行了。其实这样也就可以了。
    2.页面美观,布局
    这里其实蛮有争议的。到底什么样算美观?什么样最好?恐怕很难测试人员说了算。所以要与开发和需求分析人员沟通然后提出自己的建议。当然只是建议。开发没有时间或者无法实现我们也不能强求不是。毕竟这不是什么会影响到客户需求或者无法运行。但是一般还是要做到整体风格一致的
    3.页面参数-初始数据
    不要小看这个。一般都是不会出错的。可是也是最容易出错的。数据繁多,难保开发人员在初始化数据时多点啥少点啥或者错点啥。

    检查点: (转载)
    编写测试用例的时候往往把输入数据、操作步骤、输出、结果、以及一些过程信息等都包含很全,但是往往忽略掉对执行该测试的检查点,这些检查点往往是测试用例设计和编写的人的经验或对被测对象的深入的理解基础上,很多检查内容参加我写的测试检查点的文章。

    因此我建议在描述操作步骤的时候还要把检查点列上去,如下:

    VP即时Verifacation Point: 

    VP1(重点检查点):每个列表列出的人员、机构信息是正确的,没有重复、不缺少用户

    VP2: 组合这两部分的接收者,比如:用户user1在机构1 user2属于本公司人员
        选择user1、无群组: user1能收到刚才发布的文件,user2没有
        选择user1、本公司人员:user1、user2都能接收到刚才发布的文件
        选择user3、本公司人员:user1不能接收到,user2能收到
    VP3:坚持非空域,标题、时间必须为非空等
    VP4:附件,测试各种格式,如doc、gif、xls、ppt、pdf格式的文件,文件大小分别为100k、1M、5M、10M
    VP5:添加图片,浏览gif、tif、jpg、bmp格式的图片,查看现实上传是否正确。
    VP6:检查文件状态,如暂存文件显示 “审核中“,发布文件显示”已审核“。


    不断总结中,求捷径你懂得!

  • 界面测试--------很实用哦(整合)

    zhuhuan2157914 发布于 2012-07-05 10:11:37


    界面测试用例的设计方法
    一般界面测试容易引起争议,在评审前就考虑到这些让开发意识到这些界面设计的必要性,可以在测试时避免很多“扯皮”。团队效率更高
     1,窗体
     测试窗体的方法:
     a,窗体大小,大小要合适,控件布局合理;
     b,移动窗体.快速或慢速移动窗体,背景及窗体本身刷新必须正确;
     c,缩放窗体,窗体上的控件应随窗体的大小变化而变化;
     d,显示分辨率.必须在不同的分辨率的情况下测试程序的显示是否正常;
     进行测试时还要注意状态栏是否显示正确;工具栏的图标执行操作是否有效,是否与菜单懒中图标显示一致;错误信息内容是否正确,无错别字,且明确等等;

    2,控件
     测试方法:
     a,窗体或控件的字体和大小要一致;
     b,注意全角,半角混合
     c,无中英文混合.

    菜单

    进行测试时要注意
     a,选择菜单是否可以正常工作,并与实际执行内容一致;
     b,是否有错别字:
     c,快捷键是否重复;
     d,热键是否重复;
     e,快捷键与热键操作是否有效
     f,是否存在中英文混合
     g,菜单要与语境相关,如,不同权限的用户登陆一个应用程序,不同级别的用户可以看到不同级别的菜单并使用不同级别的功能;
     h,鼠标右键快捷菜单

    特殊属性
     1,安装界面应有公司介绍或产品介绍,有公司的图标
     2,主界面及大多数界面最好有公司图标
     3,选择"帮助"->"关于"命令,应看见相关版权和产品信息

    验证界面显示内容的完整性:

    a)       报表显示时应考虑数据显示宽度的自适应或自动换行。

    b)       所有有数据展现的界面(如统计、查询、编辑录入、打印预览、打印等),必须使测试数据的记录数超过一屏/一页,以验证满屏/页时其窗体是否有横向、纵向滚动条或换页打印,界面显示是否正常;

    2.应验证界面显示内容的一致性:

    a)       如有多个系统展现同一数据源时,应保证其一致性

    3.应验证界面显示内容的准确性:

    a)       对于报表中的所有字段值都应该有明确的定义,对于无意义的字段值,不应该显示空,应显示“--”或“/”,表示该字段值无意义。

    4.应验证界面显示内容的友好性:

    a)       对统计的数据应按用户习惯进行分类、排序。

    b)       某些重要信息在输入、修改、删除时应有“确认”提示信息

    c)       界面内容更新后系统应提供刷新功能。

    d)       用户在退出系统后重新登陆时应考虑是否需要自动返回到上次退出系统时的界面;

    5.应验证界面提示信息的指导性:

    a)       多个业务功能组成的一个业务流程,如果各个功能之间的执行顺序有一定的制约条件应通过界面提示用户

    b)       用户提示信息应具有一定的指导性,在应用程序正在进行关键业务的处理时,应考虑在前台界面提示用户应用程序正在进行的处理,以及相应的处理过程,在处理结束后再提示用户处理完毕

    c)       在某些数据输入界面,如果要求输入的数据符合某项规则,应在输入界面提供相应的规则描述;当输入数据不符合规则时应提示用户是否继续。

    d)       对任何配置信息修改后,都应该在用户退出该界面时提示用户保存(如果用户没有主动保存的情况下);

    6.应验证界面显示内容的合理性:

    a)       在对某些查询功能进行测试时,应考虑查询条件的设置的合理性以及查询结果的互补性。如某些后台处理时间不应该作为查询条件。

    b)       界面测试时,应考虑某一界面上按钮先后使用的顺序问题,以免用户对此产生迷惑。例如只能在查询成功后显示执行按钮

    c)       界面测试时,应验证窗口与窗口之间、字段与字段之间的浏览顺序是否正确;

    7.界面测试时,应考虑用户使用的方便性:

    a)       在某些对数据进行处理的操作界面,应考虑用户可能对数据进行处理的频繁程度和工作,考虑是否可以进行批量操作

    8.界面测试时,应考虑界面显示及处理的正确性:

    a)       界面测试时应验证所有窗体中的对象状态是否正常,是否符合相关的业务规则需要。

    b)       应验证各种对象访问方法(Tab健、鼠标移动和快捷键)是否可正常使用,并且在一个激活界面中快捷键无重复;

    c)       界面测试不光要考虑合理的键盘输入,还应考虑是否可以通过鼠标拷贝粘贴输入。

    d)       对于统计查询功能的查询结果应验证其是否只能通过界面上的查询或刷新按键人工触发,应避免其他形式的触发。

    e)       对界面上的任何对象进行拖拉,然后进行查询、打印,应保证查询打印结果不变;

    9.界面测试时,应考虑数据显示的规范性:

    a)       确保数据精度显示的统一:如单价0元,应显示为0.00元;

    b)       确保时间及日期显示格式的统一;

    c)       确保相同含义属性/字段名的统一

          d)        对所有可能产生的提示信息界面内容和位置进行验证,确保所有的提示信息界面应居中
  • 软件测试人员面试预习【整理版】

    li_feibo 发布于 2012-07-01 15:26:45

      1.你为什么选择软件测试行业

      因为对软件测试领域有浓厚的兴趣,而且该行业也与本人大学的专业对口,有着比较扎实的专业的基础。

      2.根据你以前的工作经验描述一下软件开发、测试过程,由那些角色负责,你做什么?

      有技术总监、开发经理、程序员和测试员。主要负责做黑盒测试,兼容性测试和自动化测试等。

      3.结合你以前的学习和工作经验,你认为如何做好测试。

      根据我以前的工作经验,我认为做好测试首先要有良好的测试技能,掌握测试理论知识。其次要认真细致,有良好的沟通能力,因为在测试工作中,经常要和开发人员进行实时有效的沟通。

      4.你觉得测试最重要的是什么?

      尽可能的找出软件的错误,提高软件的可靠性。

      5.怎样看待加班问题

      合理的加班也是一件比较正常的事情。但是我还是觉得如果能够合理的安排工作时间的话,不会有太多时候会加班的。

      6.如果一个很有个性的程序员认为自己的BUG不是BUG,怎么解决?

      首先我要确定我所提的在我认为是不是bug,如果我认为是的话我会在他面前重现这个bug,并且和他沟通为什么是bug,或者我会找到我的直系领导和他沟通确认这是个bug。

      7.为什么在团队中要有测试

      因为软件有错误,如果没有专业的测试人员很难发现软件的一些错误。

      8.在上一家公司自己最大的收获是什么?

      积累了一定的测试经验的同时,也提高了软件测试的技能,掌握了如何把测试的理论知识结合到实际的工作中,并且让我掌握了xx自动化测试工具。

      9.你对未来的规划

      毕业的1年多熟悉职场,工作中慢慢地积累经验,2-5年使自己的测试技能得到更大的提高,继续往高级测试工程师发展。

      10.自己优势及缺点

      我的优点是有足够的耐心对待每一件事情,善于观察事物,承受压力的能力比较强。缺点可能就是我不是很爱说话,属于有点文静性格,但是和人沟通还是没有问题的。

      12.请谈谈您对测试工作的理解

      我认为测试工作是尽可能多地发现软件的缺陷,提高软件的质量,成功的测试在于发现了迄今尚未发现的缺陷。所以测试人员的职责是设计这样的测试用例,它能有效地揭示潜伏在软件里的缺陷。

      13.你认为测试人员需要具备哪些素质?

      我认为做测试的应该要有一定的沟通协调能力,因为测试人员要经常与开发接触处理一些问题,如果处理不好的话会引起一些冲突这样的话工作上就会做不好。还有测试人员要有一定的耐心,有的时候做的测试很枯燥乏味的。除了要有耐心之外还要细心,不放过每一个可能的错误。

      14.你为什么能够做测试这一行。

      因为我不仅有N年的测试工作经验,掌握测试的理论知识,而且有一定的沟通能力,耐心、细心等外在的素质。综合起来看我认为我是胜任这个职位。

      15.测试的目的是什么?

      测试的目的是尽可能多地找出软件产品中的缺陷,提高软件产品的质量,使软件尽可能的符合用户的要求。

      16.测试分为那几个阶段?

      一般来说测试大体分为4个阶段:

      单元测试、集成测试、系统测试、验收测试

      在测试过程中如果有需要还要进行回归测试。

      17.单元测试的测试对象,目的、测试依据、测试方法?

      单元测试对象是模块内部的程序错误;目的是消除局部模块逻辑和功能上的错误和缺陷;

      测试依据是模块的详细设计;

       测试方法采用白盒测试

    18.集成测试的测试对象,目的、测试依据、测试方法?

      集成测试的测试对象是模块间的组装和调用关系以及模块组合后的整体功能;

    目的是找出与软件设计相关的程序结构模块调用关系,模块间接口与接口数据传递关系等方面问题;

    测试依据是概要设计;

    测试方法采用灰盒测试。

      19.系统测试的测试对象,目的、测试依据、测试方法?

      系统测试的测试对象是整个系统;

    测试的目的是验证软件系统的功能和性能等是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方;

    测试的依据是需求规格说明书;

    测试方法黑盒测试

      20.测试覆盖的类型

      测试覆盖的类型有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖

      21.性能测试的分类

      分为:性能测试、负载测试、压力测试、容量测试、强度测试等

    负载测试是一种性能测试,指数据在超负荷环境中运行,程序能否够承担。

    强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。(它在系统资源特别低的情况下软件系统运行情况。)

    容量测试:确定系统可处理同时在线的最大用户数。容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。

    压力测试:通过逐步增加系统负载,测试系统的性能变化,并最终确定在什么负载条件下,性能处于失效状态,并获得系统能提供的最大服务级别。

      负载测试与压力测试可以结合进行。

      22.列举您熟悉的主流自动化测试工具

      我熟悉的自动化测试工具有:基于web应用的开源自动化测试工具selenium、QTP以及性能测试工具LoadRunner

      24.c/s和b/s结构的软件进行测试时有何不同

      C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统。客户端需要安装专用的客户端软件。

      B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser)。浏览器通过Web Server 同数据库进行数据交互。

      26.页面中有一个输入日期的输入框和一个输入身份证号的输入框,如何进行用例设计?

      输入日期的输入框要考虑边界值、输入有效数据、非法数据、非数字等

      省份证输入框要考虑18位身份证、16位身份证、非18、16位的数据、汉字、字母、非法数据

      27.测试和质量保证有什么区别?你的看法

      质量保证是对软件制作过程的制作质量进行管理,看是否符合公司的规定。

      软件测试是对软件产品的质量本身进行测试,是从技术方面出发测试软件质量

    进行软件测试,是质量保证的前提。


      28.用过什么缺陷管理工具? 流程是什么 有什么能改进的

      我所熟悉的是TD

      流程是讲测试计划、方案、测试用例录入TD,在TD上执行测试用例记录缺陷,并对bug进行跟踪。

      29.你有没有用过QTP做项目,QTP的工作原理

      我有用QTP做过项目。QTP的工作原理是执行重复的手动测试,首先制定测试计划再根据测试计划创建测试脚本,然后对脚本进行优化,增强测试脚本,接下来运行脚本分析测试的结果。

      30.什么是白盒测试?白盒测试的工具有哪些?

      白盒测试也称结构测试或逻辑驱动测试,测试人员利用程序内部的逻辑结构及有关信息,设计和选择测试用例,对程序所有的逻辑路径进行测试。工具有:Rational Purify 、Rational Quantify 、Rational Purecoveage

      31.路由器,集线器,交换机的区别?

      路由器的作用是用于连接不同网段并且找到网络中数据传输最合适的路径。

      集线器的作用是将一些pc机连起来组成一个局域网。

      交换机的作用与集线器的相似,区别在于集线器采用的是共享带宽的方式,交换机是独享带宽。

      32.我手上这支笔,请你根据这支笔设计测试用例。

    参考论坛:http://bbs.51testing.com/thread-47941-1-1.html

    功能测试:该笔能否写字、哪些纸上写字、除了书写功能外,是否还有其他功能,例如能不能当手电筒,能不能当计算器等等

    性能测试:写字是否流畅、能连续不断地写出多少字、写成的字能保留多长时间、在什么环境下可以正常时使用,比如温度

    压力测试:能够承受多大的压力而不会被折断、

    安全性测试:写出的字体是否带毒性、笔的材质是否有毒

    易用性测试:笔握在手上是不是舒服、是否方便携带和存放

    界面测试:设计是否美观,写成字体的颜色、粗细是否符合要求。

      33.BUG报告包括那些内容

      Bug出现的位置、可重现的步骤、所使用的数据、bug的截图、发现人及日期。

      35.W和H模型的区别

      W模型强调的是测试伴随整个软件开发周期,而且测试的对象不仅是程序,需求也需要进行测试,测试与开发是同步进行的。

      H模型是讲测试活动玩却的独立出来,形成了完全独立的流程,可以实现迭代而W模型不支持迭代这是两者最打的区别。

      36.没有任何说明书,如何进行测试?

      首先是通过对软件册使用来熟悉整个软件,接着是与开发沟通掌握软件的特性并一一记录下来,作为测试的依据。

  • 功能测试中遇到不可重现软件缺陷的解决策略

    gch4648228 发布于 2012-06-30 14:20:32

    测试人员提交软件缺陷报告后,最不希望看到的这些缺陷被开发人员忽略,尽管你坚信这一定是软件缺陷,而罪魁祸首就是这些缺陷不可重现!一旦出现这样的情况,测试人员会很被动,开发人员也会对测试人员有意见。这就使得关系本来就不怎么融洽的测试人员和开发人员之间的关系更加紧张;对于整个时间紧凑的项目来说,无异于是火上浇油。为了减少这种尴尬情况的出现,非常有必要分析一下软件缺陷不能重现的原因。
    1. 测试环境不一致
    从广义上来说,保证或影响软件的任何因素都是环境,例如,系统的构造版本、应用服务器的类型和版本、浏览器的语音和版本等。
    以下就是我们会遇见的错误:某个B/S(Web应用)架构的系统软件运行于IE8上,出现了JS(Java Script)脚本错误导致页面浏览异常的软件缺陷,把IE8降级到IE6或7后,此软件缺陷就自动消失了。
    2. 测试配置不一致
    程序运行都是基于一定的配置条件下进行的,包括被测系统参数设置、基础数据完整性、业务流程完整性等,比如,我们曾经在某数据库产品测试过程中,由于在安装界面中选择了非默认路径进行安装,结果导致该数据库物理备份会恢复功能出错,而对方在核对缺陷时按照默认路径进行了安装,因此缺陷总是无法重现。
    3. 内存泄露
    某些系统长期运行后出现速度慢的原因是开发人员未养成回收内存的习惯。这类错误在短期内不会出现,但当系统长期运行时就会出现,并且由此会引发一系列的问题。
    4. 数据接口不匹配
    一般只有在查看源代码后才能发现。某些类型的数据会被系统自动转换,有些数据被截断或被强制转换成另外一种数据类型时,会出现一些潜在的错误。
    基于以上测试过程中出现的软件缺陷不能重现的原因,我们提出如下一些解决策略,以更好地从源头上减少不可重现软件缺陷的出现
    1. 测试环境配置充分细致
    测试人员在测试前,严格核对系统的运行环境配置要求,并充分考虑系统在线运行后的环境变化,做好测试环境配置的全面规划,注意细节。另外可以使用Ghost对硬件或某个分区进行镜像备份。
    2. 捕获系统日志,分析异常信息
    测试人员应养成记录系统错误日志的习惯,保留系统在出错时的真实状态。比如将IE浏览器高级选项设置为“显示每个脚本错误的通知”。
    3. 监测系统状态,异常及时告警
    在实施系统测试过程中,我们必须充分关注系统运行状态的变化,一旦系统运行状态发生较大的波动,势必会对后期的业务执行带来较大的影响。因此,系统运行监测的一个重要内容是需要及时反馈系统运行异常,并提供异常报告。
    4. 测试数据翔实,易于追溯
    测试数据是软件测试的核心,很多情况下,测试人员为了缩短测试周期,在实际测试前并没有充分编写足够的测试数据,也没有记录这些测试数据的执行顺序和运行轨迹,一旦程序在某个节点出现问题,我们无法判断其产生的过程和引起这个缺陷的具体测试数据,对我们进一步分析软件缺陷产生的原因会造成一些不必要的障碍。
    正是基于此我们强调在软件测试开始前,我们必须制定完整的测试用例,辅以详细的测试数据,并明确测试数据的操作步骤和每一步的预期结果,这样,一旦软件出现问题,我们可以很快进行重现和定位。
  • 邮件系统性能验收测试

    juiwo 发布于 2012-06-19 11:21:19

    概述

      随着软件系统在互联网中的广泛应用,其规模性和复杂度的增加,软件系统的性能已经是倍受软件开发商和用户的关注,如果软件产品(包括硬件产品)没有经过严格的系统性能测试就上线运行,就好比在身边安放了一个非定时炸弹,随时都有系统崩溃或不能满足客户使用需求的问题出现。给企业带来的损失是无法估计和弥补的。

      邮件是政府、企事业单位和个人重要的信息沟通和传递的方式,邮件的传递不分昼夜、不论远近,时刻都会有传送,所以邮件系统对其稳定性、可靠性、承受的负载压力等性能要求更为突出。而邮件系统的性能测试除了要考虑通用的软件性能需求指标外,还要考虑邮件系统特有的性能指标。

      对于大多数用户来讲,对邮件系统性能的需求是个盲区,不知道邮件系统的需要考虑哪些性能指标,性能指标值怎样来定,更不知道该如何对邮件系统做性能测试,这就需要有邮件系统领域有专业系统知识和性能测试经验的第三方,站在用户角度来协助用户完成性能需求分析,制定性能测试计划和方案,执行性能测试用例,提交性能测试报告,为项目开发和实施提供参考依据,保证产品上线后能够满足用户的需求。

      邮件系统性能测试主要指标

    序号

    测试方法

    重点测试指标

    备注说明

    1

    邮件系统常用协议并发测试

    并发测试
    • SMTP峰值并发链接请求测试
    • POP3峰值并发链接请求测试
    • HTTP峰值并发链接请求测试
    最大并发测试
    • SMTP最大并发链接请求数
    • POP3最大并发链接请求数
    • HTTP最大并发链接请求数

    并发测试的并发数根据系统需求环境负载模型和对应的计算公式获得。测试结果要保证业务成功率为100%

    最大并发测试是验证邮件系统成功完成业务请求的瞬间最大值。反映了邮件系统的瞬间提供服务的能力。

    2 WEBMail邮件系统响应时间测试 响应时间
    • 打开首页页面响应时间
    • 用户登录页面响应时间
    • 查收邮件页面响应时间
    • 发送邮件页面响应时间

    WEB系统响应时间:浏览器向Web服务器提交一个请求开始到收到响应结束的间隔时间,这个性能指标的好坏直接影响着用户对系统的使用感受。

    3 负载测试
    • 疲劳强度性能测试
    • 大数据量性能测试

    疲劳强度性能:指在系统稳定的情况下,同时并发执行各种业务,以一定的负载压力来长时间运行系统。

    大数据量测试:是针对邮件系统的存储、数据传输,统计查询等业务进行大数据量操作的性能测试。

    4 系统资源监控
    • CPU占用率的监控
    • 内存合理释放监控
    • 网络吞吐量监控
    • 其他性能计数器

    占用率:一般情况下服务器上处理器的占用率不能持续超过极限值。

    内存释放:多种并发业务处理后和系统长时间运行过程中,不用的内存是否有效释放,保证系统内存不会出现持续增长。

    网络吞吐量:主要测试用户数目与网络带宽的关系,通过测试工具准确展示带宽,延迟,负载和端口的变化是如何影响用户响应时间的

      用户提供性能需求指标

      和功能需求一样,用户提出性能需求指标,如果用户不了解邮件系统的性能需求,就需要由具有专业的邮件系统性能测试的企业来协助用户完成邮件系统性能指标分析,制定性能需求指标量值,来测试邮件系统开发商提供的邮件系统性能。

      性能测试流程

      * 性能测试前期准备:系统基础功能的验证,测试人员的组建,选取测试工具。

      * 制定测试计划和方案:根据确定好的性能需求制定测试计划和方案。

      * 测试设计与开发:设计测试场景、测试用例,开发测试脚本和辅助工具。

      * 测试执行和管理:执行测试用例和测试脚本,记录测试结果,整理测试报告。

      * 分析测试结果:对测试的结果进行分析和统计,生成图表,形成性能测试分析报告,找出系统性能瓶颈。

      性能测试流程图

      

  • 从BUG的"一生"闲谈软件测试工程师面试

    gch4648228 发布于 2012-06-13 19:22:22

    好久没有写博客了,让大家失望了,最近实在是事情太多了,在最近的对学员的模拟面试过程中有一些体会和感受,希望这些感受对目前正在找工作的学员以及测试同仁能起一点抛砖引玉的作用。下面就从问题开始入手:

    问题一,谈谈你对缺陷的认识?

    参考的思路:首先,这个问题是个非常发散的问题,为什么这么说呢?因为大家都知道BUG在软件的整个生命周期内一直是一条主线,从程序员的“错误”的行为导致“缺陷”,而“缺陷”被激发导致软件“故障”,“故障”没有人修复会导致软件某一功能“失效”。另外一点的是众所周知的缺陷放大模型,根据缺陷放大模型的要求提出了“尽早测试”的观点,同时也带出了静态测试的重要性。从目前很多企业通过“BUG”数来衡量测试执行人员甚至是测试人员的工作绩效,到IBM所提倡而且做得非常成功的对“缺陷”从100多个纬度来进行ODC分析。再到微软强调的“以BUG为中心”的工作模式,无不体现“缺陷”在整个软件测试甚至在整个软件开发活动中的重要性。那么对于缺陷而言,到底有哪些东西是需要我们测试人员能联想到和需要掌握的呢?以下是鄙人的一点点看法:

    第一,一谈到缺陷,我们首先能够想到的肯定是缺陷怎么样管理,也就是缺陷跟踪怎么样去做?用什么样的缺陷跟踪工具?缺陷的一生到底是什么(也就是BUG有哪些状态)?为什么要进行缺陷跟踪?参考的答案:首先缺陷跟踪对于整个项目具有十分重要的意义,是后期进行缺陷的分析和统计的基础,是对整个软件质量进行度量的基础。而想到缺陷的分析,我们可以联系到Gompertz模型和ODC分析,通过对缺陷的Gompertz分析我们可以得出测试该如何结束?测试应该停止于理智而非情感,那就是我们对于测试该如何结束的决策需要基于事实数据,这里可以联想到ISO的八项质量管理原则的其中一点“基于事实的决策”。通过的缺陷的ODC分析,我们可以从多个纬度来分析导致缺陷发生的技术和非技术原因,从而可以改进我们的开发和测试技术以及我们的测试过程,举个例子,如果通过分析发现很多问题跟初始化相关,那可以说明单元测试的静态检查没有做好,那可以选择对单元比较熟悉的人,经验跟丰富的人来做代码检查。因为工作好象就是这样的,如果你不行就让别人来。好,不能太发散了,回到我们缺陷跟踪,常见的具备缺陷跟踪能力的工具有以下:1,最简单的电子表格和WORD文档管理,2,专业的测试管理工具如QC、CLEARQUEST、免费的BUGZILLA和JIRA等。然后再描述下,比如在QC中BUG有哪些状态?

    第二,BUG单的内容?什么样的BUG单是比较好的BUG单?参考的答案:1,测试项目的名称,这一点好的BUG跟踪工具都已经把它给模板化了,在填写BUG单的时候只需要选择就可以了。2,软件的版本号,包括主版本和从版本号。这一点同测试项目名称一样,都已经模板化了。3,BUG问题发现人,这个目的很简单,为了方便问题的统计,了解某一测试执行工程师的工作成绩。4,BUG发现的日期和时间,同上面一样方便统计。5,问题发现的测试环境(软硬件软件,包括客户端和服务端的环境),目的是为了清晰地了解问题发现的条件。6,缺陷的编号,每个缺陷都有唯一规范的编号,目的是为了方便检索和统计。7,缺陷的标题,对缺陷的简明扼要的描述。8,缺陷的类型,缺陷是功能性问题还是性能性问题,还是安全性问题,这样可以联想到软件质量模型。9,缺陷发现的用例编号,目的很明确,为了方便回归测试,然后又可以联想到回归测试的策略等。10,缺陷的严重级别,是致命、严重、一般还是提示问题,方便问题的统计和对版本质量的总体评估。11,缺陷的优先级别,这个定义了开发处理问题的优先级别,一般情况下,一般优先处理紧急且重要的问题。12,缺陷重现的操作步骤,这点的重要性就不必多少了,这个也最能体现提问人的智慧和水平。13,缺陷描述需要的附件,一个贴图有时可以顶上你洋洋洒洒几百字的描述。14,缺陷的状态,缺陷当前的状态。15,缺陷建议的处理人。那么什么样的BUG单是好的BUG单?这里大家可以想到的应该有“5C”原则:Correct,Clear,Concise,Complete,Consistent。具体的东西大家可以去发挥,另外敬请参考编写优秀缺陷报告的艺术一文:

    51Testing软件测试网://www.51testing.com/?94273/action_viewspace_itemid_9903.html

  • 如何提升个人专业测试能力

    架构师Jack 发布于 2011-12-30 07:44:29

    今日看到一段李开复老师的介绍,很有共鸣,与大家分享:
    【李开复:如何提升个人专业能力】1.写文章,多发表个人见解,增加个人思考机会;2.大量看书,自学,但一定要选好书;3.多和圈里高手交流,听君一席话,胜读十年书;4.建立个人文件管理系统,不断整理自己的原创;5.参加系统学习,找到短板,快速学习;6.实践,大量实践!
     
    1. 几个月写一次blog文章和每半年写一次测试技术总结的习惯,让我及时记录下自己最新的测试创新想法,并进行了系统化的梳理,在梳理过程中找到下一步的专业提升方向。
    2. 时至今日每年都会购买几本测试书和计算机基础知识的书,几乎不买工具操作书(互联网上有文章)。因为操作书属于短平快没有收藏价值,我所购买的书都是通用性和能反复阅读5遍以上,每次都有收获的书籍。
    3. 博客和微博是好东东,有条件参加一些测试大会和活动也能开拓视野。但还会紧盯和关注欧洲和美国一些测试大师 ,测试咨询公司的互联网资源,来拓展自己的思想。
    4. 即使我自己回顾看自己写的blog和微博,有时都会有种疑问,这是我写的吗。所以及时写下自己的灵感非常有价值。
    5. 通过阅读某一知识领域系统性的书籍,学习系统性的ppt,多看老外系统性的文章和国内专家们系统性的分享,作为镜子诚实的对比自己,就能找到短板。
    6. 做1万小时一线的测试用例开发和执行,亲自发现1000以上bug,学习和分析它人发现的5000个bug,思考测试改进时间超过1000小时,项目中运用新测试方法超过1000小时,这些大量的实践,会加深你对专业领域的认知,会让你量变引起质变。
     
711/41234>
Open Toolbar