心有多大,舞台就有多大,希望结识做网站测试的朋友们; 测试需要横向扩展也需要纵向延伸 我相信自己会在测试的道路上走的很远..............................

发布新日志

  • Map Testing Summary

    2014-10-14 09:44:03

    从2011年7月到现在,做MAP测试已经有3年多了,现在项目即将接近尾声,也是时候整理下思绪做下总结了。

    1.  Map构
    2. API Automation Architecture

    Map 相较其他service测试,需要着重注意的是:

    1. Map地图数据测试

    1)      POIstreet的名称和地址显示是否正确

    2)      Search出的地点,在地图上标注的位置是否正确

    3)      台湾icon显示是否正确

    4)      国际上有争议的边界问题显示是否正确

    5)      一些敏感地点是否能搜出并在地图上显示出来 (比如:二炮,基地,空军等)

    6)      离线和在线数据下载

    2. 导航测试

    1)      设计出的路线是否合理

    2)      导航中是否有语音提示?语音提示是否正确

    3)      导航中,锁屏-> 开屏,导航是否能够继续?

    4)      导航中,有电话打进来接听完电话,导航是否会继续?

    5)      导航中,把导航页面切换到后台,之后再切换到前台,导航是否会继续?

    6)      Music或收音机遇到导航语音是否会让步

     

    API 测试

    做这个测试的基础是需要对API spec 理解透彻,要结合前台的使用情况去理解每个参数的意思,每个参数的引入在实际生活中都是有一定背景的。

    做这类测试主要注意:

    1.  每个参数的合法性验证:

         cover到每个参数的有效值验证外,也需要为每个参数的每个错误类型准备一个异常用例,如必须参数缺省、参数类型错误、参数 范围错误、参数超过最大值、参数低于最小值、参数没有达到最小指定位数、参数的无效值,参数的小数点超过规定长度、参数含有非法字、输入参数为空,输入参数为null

    2. 参数组合情况验证

    3. 注意文档类bug,有时会出现spec上写的和实际的behavior不一致的情况,有些是文档 写错了

  • Mobile Phone Network

    2012-06-12 14:52:31

    第一代(1G)移动通信技术
    模拟蜂窝电话模拟无绳电话

    第二代(2G)移动通信技术
    第二代移动通信系统属数字系统,它主要采用:
    时分多址技术TDMA (Time Division Multiple Access)
    窄带码分多址CDMA技术(Coda Division Multiple Access)
    目前采用TDMA体制的主要有三种:
    欧洲的GSM
    美国的D-AMPS
    日本的PDC
    第二代手机(2G)指的是GSM网络。GSM全名为:Global System for Mobile Communications,中文为全球移动通讯系统,俗称"全球通",是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。我国于20世纪90年代初引进采用此项技术标准,此前一直是采用蜂窝模拟移动技术,即第一代GSM技术(2001年12月31日我国关闭了模拟移动网络)。第二代向第三代的过渡(2.5G)
    基于GSM的演进:
    通用分组无线交换业务(General Packet Radio Service,GPRS)。
    GPRS可以使多个用户共享某些固定的信道资源,并将每个时隙的传输速率从9.6kb/s提高到14.4kb/s.
    GPRS是2.5G技术, 但GPRS仍是GSM方式,其频谱利用率与CDMA、第三代移动通信(3G)各种制式相比是比较差的,仍不能解决频谱资源紧张的问题。

    第三代(3G)移动通信技术
    2009年年初,工业和信息化部为中国移动、中国电信和中国联通发放了三张第三代移动通信(3G)牌照,标志着中国正式进入3G时代。
    中国移动:TD-SCDMA: 该标准是由中国大陆独自制定的3G标准
    联通:WCDMA
    电信:CDMA 2000


    第四代(4G)移动通信技术
    第四代移动通信系统主要是以正交频分复用(OFDM)为技术核心。

    手机网络的模式
    手机中的网络模式
    双模双待:支持两种模式的两张卡同时待机。
    双卡双待:支持一种模式的两张卡同时待机。

    手机网络的常见图标
    移动用户:
    用移动网络的手机图标有着三种“G,E,T”
    G:
    全称:gprs既传输速率理论峰值为114Kbps,这是早期的无线网络传输方式
    E:全称:EDGE既传输速率在峰值可以达到384Kbps,现在比较主流的无线网络传输方式。
    EDGE是英文Enhanced Data Rate for GSM Evolution 的缩写,即增强型数据速率GSM演进技术。EDGE是一种从GSM到3G的过渡技术,它主要是在GSM系统中采用了一种新的调制方法,即最先进的多时隙操作和8PSK调制技术。由于EDGE是一种介于现有的第二代移动网络与第三代移动网络之间的过渡技术,因此也有人称它为"二代半"技术。EDGE还能够与以后的WCDMA制式共存,这也正是其所具有的弹性优势。
    T:(TD-CDMA )T制式是移动3G的网络制式,目前还处在起步阶段,现在版本分为R4到R7,R7的理论上的峰值可以达到12M,但是目前使用的还是R4,理论上的下载速度为378.2kb/s。但是毕竟是中国自己的知识产权的,还是要多多的支持啊。
    当你手机信号不稳定时,它就在这三个频段当中转换,保证了你的基本手机通话要求。

    联通用户显示的只有两种:G、H
    G:
    就不用说了,跟移动的是一样的,不过联通的基站比较少,所以联通的2G网络速度还是很慢的。
    H:全称为HSDPA,它的下载速度峰值可以接近7.2M/s,就是联通的3G网络

  • 测试管理之我见 -- 2

    2012-05-29 20:47:17

  • 电子邮箱相关技术(POP3/SMTP/IMAP/SSL)

    2011-04-20 14:01:16

        POP3服务器主管邮件的收取,SMTP服务器主管邮件的发送。 每一个电子邮件系统都必须同时拥有这两类服务器才能完成信件的收发。


    一、POP3

      POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。主要功能是用在传送电子邮件,当我们寄信给另外一个人时,对方当时多半不会在线上,所以邮件服务器必须为收信者保存这封信,直到收信者来检查这封信件。当收信人收信的时候,必须通过POP通讯协定,才能取得邮件。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。

    二、SMTP

      SMTP(Simple Mail Transfer Protocol)简易邮件传输通讯协议

    SMTP是互联网上的一种通讯协议,主要功能是用在传送电子邮件,当我们通过电子邮件程序,寄E-mil给另外一个人时,必须通过SMTP通讯协议,将邮件送到对方的邮件服务器上,等到对方上网的时候,就可以收到你所寄的信。

      SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。

      其实简单的说,POP服务器是用来收信的,而且每个E_mail地址一般只有一个。如果你要同时收取多个邮箱的信件,就必须挨个设置每个邮箱的POP3服务器地址。你别告诉我找不到,告诉你一个小窍门吧:在你申请了免费信箱之后,仔细看看它的帮助文件,一般都能找到。至于SMTP服务器,可以理解为就是用来寄信的,而且大多数SMTP服务器也是免费的,也就是说,不管你有无E-mail信箱,只要想寄信,随便填上一个SMTP服务器,就可以寄信了。如果你用Outlook Express或者其它邮件程序发信,又同时拥有多个免费邮箱,不必设置多个SMTP服务器,只要选择一个填上就行了,比如新浪邮件提供的服务器就是:smtp.sina.com.cn。

    三、IMAP

      IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。

    四、SSL
      SSL的英文全称是 "Secure Sockets Layer” ,中文名为 “ 安全套接层协议层 ” ,它是网景( Netscape )公司提出的基于 WEB 应用的安全协议。 SSL 协议指定了一种在应用程序协议(如 HTTP 、 Telenet 、 NMTP 和 FTP 等)和 TCP/IP 协议之间提供数据安全性分层的机制,它为 TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。
    SSL VPN 客户端的应用是基于标准 Web 浏览器内置的加密套件与服务器协议出相应的加密方法,即经过授权用户只要能上网就能够通过浏览器接入服务器建立 SSL 安全隧道。
    SSL安全服务原来是仅用于网易收费邮箱的。现在126、163都应用了
    网易免费邮箱的SSL安全服务使用起来非常简单,只需在邮箱web页面(例如126免费邮www.126.com)的常规登陆入口处选择“安全”模式既可。SSL是一种成熟、可靠的邮箱安全技术,能够最有效地保护用户的机密信息,彻底杜绝从浏览器到服务器之间密码被非法窃取和篡改的现象。

    五、IMAP与POP有什么不同?

      POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。而IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。
      同时,IMAP像POP那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。此外,IMAP 更好地支持了从多个不同设备中随时访问新邮件。

      总之,IMAP 整体上为用户带来更为便捷和可靠的体验。POP 更易丢失邮件或多次下载相同的邮件,但 IMAP 通过邮件客户端与webmail 之间的双向同步功能很好地避免了这些问题。
     

  • 怎样做一个人见人爱的软件测试经理?(zhuan)

    2011-04-10 23:07:22

    谈谈3年多的测试管理经验的心得,望大家多多指教,提出宝贵建议:

    1.具有较好的人格魅力和亲和力:

    真正来说做到这一点非常难。这不仅要求测试经理有宽广的胸怀,良好的沟通能力和语言表达能力,还要求测试经理具有较强的应对能力。向上能把工作汇报的让领导满意,令领导信任。能把工作任务轻松, 无异意的下发给下属, 并让他们饱含工作热情共同协作去完成测试任务。如果您能够把扭转下属的思想,把“要我测试,变成我要测试”,我想你一定很强了。如果陌生的人一见到你,通过谈话就觉的你很强,都愿意和你交朋友,那你的人格魅力一定不错了,呵呵。

    2.最好具备较强的测试技术水平:

    一般来说,作为测试经理,在一个测试技术性的团队里,如果你有很强的技术,并且你的技术是最棒的,下属不能够搞定的问题,你都能够做的很好,即时有时候你凶了点,团队里的成员心底里都还是很敬佩你。如果你有技术,但是技术不高,你组内的技术高手一定是你的亲密战友,这个时候唯一的出路就是凝聚团队的力量,取长补短,也能够取得较高的效率。还有一点值得注意:在分派工作的时候,找一下组内的骨干,看看是否有新的或者好的处理办法,这样一来,避免在开会的时候遇到分工或者技术上的尴尬局面。但有的测试经理具备了很强的技术,整天对团队的成员都板副面孔,那你也很难做到人见人爱。唯有为人处事比较圆滑,待人真诚中肯、随和亲切,整天都是笑脸相迎,那呆在这样的团队里工作,一定很开心。所以要做到人见人爱的测试经理,较强的测试技术水平不能够忽视。

    3.乐意处理下属在项目中碰到的困难:

    在带领一个团队开展测试工作的时候,当你的下属碰到困难的时候,你更多的是给下属鼓励和安慰,帮助下属分析出现问题的原因。比如说一下:“幸苦了”!“干得不错”!“慢慢来,没关系的”!下属听了也很开心的,并且以后干活可能会很卖命,因为他的工作得到了领导的认可。或许该问题你也不一定解决得了,这时候你一定要挺身而出,协调测试团队的资源尽力帮他解决问题,久而久之,你的威信就树立起来了,之后就好办事了。

    4.勇于承担责任,把功劳推给测试团队:

    软件测试经理,作为一个中层经理。管理者一定要想管好下属,必须“身先士卒”、“以身作则”,事事为先、严格要求自己,处处起到表率作用。示范的力量是惊人的,一旦通过表率在团队中树立起在员工中的威望。将会上下同心,大大提高团队的整体战斗力。常言到:“得人心者得天下”,做下属敬佩的领导,将使管理事半功倍。如果下属在测试项目中出现问题,上级领导怪罪下来,自己勇于承担,多检讨自己,少怪罪他人。始终用平和语气与下属沟通,最后一定要找出出现问题的真正原因。让出现问题的下属,自己过意不去,从心底里佩服你,想法补偿你。项目得到喜讯,比如:某个测试项目做的很好,领导表扬的时候,把功劳推给大家,很多时候,容易让人感动,让人佩服得“五体头地”哈哈。

    5.对下属多一些宽容和生活关心:

    特别是对下属不懂,自己懂得很精的地方,下属问的时候,一定要有耐心,给下属详细讲解。切忌:看不起下属。如果真是这样,你这个经理就很失败了。反正对下属,在很多地方,要多一些理解和包容,最好能和下属打成一片,当下属不认为你是领导的时候,你就真是领导了。如果做领导做到别人都当你是朋友,那你真的就成功了。
    还有一点就是要察言观色,随时发现和了解下属的困难,不管是工作方面,还是私人方面,都要关心。比如说:某个下属买了房子,准备装修,那他一定很关心装修方面的东西。如果你懂得很多,那和他交谈时,多一些这方面的话题,他也会很开心,觉的你这个人相当热心,并且也会觉的大家有共同语言,以后当你碰到问题的时候,他一定会鼎立帮助你,因为他认为你是他最信任的知己。也可以多在生活上关心下属。比如有项目要加班什么的,有时候陪陪下属加班呀,吃个午饭宵夜呀,聊点家常呀什么的,自己买单后,公司报销,效果真的不错哟!

    6.力争多给下属争取福利

    在公司条件允许的条件下,多给下属争取福利!但是做这件事的时候,一定要在公司利益和员工利益之前要平衡。若过分的给员工争取福利,会造成公司对你有意见,同样,过分的以公司利益为重,员工对你也会意见大!总之,每种情况都要有度,力所能及的事,一定不能放过。很多时候,为员工申请比较多的福利,即时没有成功或者工资变化不大,但是下属都看在眼里,还是很感激你的,因为他知道你已经尽力了,觉的你很够哥们,为你工作很值。

    7.多给下属锻炼机会,培养下属能力:

    作为测试经理不可能向测试工程师那样什么事情都自己做,并且事事都自己做也不现实。可以在不同的测试项目中,安排测试主管。然后对测试工作进行协调,参与测试中发现重大问题的讨论。这就要求测试经理懂得用人,懂得计划。在制定详细的测试计划的同时,自己把握测试项目中的关键点和时间表,给下属更多的实践机会,让下属做事更具有责任心和成就感。测试主管在做好测试项目的同时,又减少了测试经理的工作量,学到了不少东西,能力变强了,开心了,达到了上下级和谐共处的双丰收。

    8.多给下属精神鼓励,奖惩公私分明:

    很多时候,部门周例会上偶尔的一个口头表扬,更会让下属铭记于心,因为他觉的很有面子,很体面,也许他会再接再厉,给自己创造机会,争取后面再受表扬。下属也乐开了,工作也更加努力、拼命了,效果相当明显。并且奖赏要公私分明,不能有所偏袒,更不能让部门的人觉得你搞私人关系,力争做到一视同仁,对事不对人,也许你就成功了一半。但是,对于工作做的比较差的下属,也要私下单独谈心,帮助找出原因,给他打气,并鼓励他继续努力工作。

    9.知人善用,用人之长,合理分工:

    现在很多公司的测试工程师,都是网上外招的,分别来自不同的行业和不同的工作岗位,他们有着不同的专业知识和行业、业务背景。这就要求测试经理,对每个人的长处非常了解,将合适的人安排到合适的工作岗位上,用人之长,避人之短,合理分工,争取达到双赢。

    10.较强的行业和业务知识背景:

    测试经理作为一个部门的Leader必须对相关的产品和行业的知识背景了如指掌,要不然下属做了什么,怎么做的,正确与否,你都没法判断。一般来说,在某个行业待3年左右,做了几年的测试,那你对这个行业就非常了解。即使你不参加项目的测试,你问很多的问题,下属也不敢乱讲,毕竟你了解很多。再比如说:某些税务的项目,很多的业务知识,你不是很了解,那也没法做,还有一些隐含的行业需求,没有3、5年的行业背景,更是没法发掘出来,到了客户缺陷才被发现,你就太被动了。当然,如果时间允许的话,你也可以介入部分模块的测试,这样虽然你测试不是很多,往往会发现很多问题,检验检验下属测试成果。

    11.多给下属讲解一些职业发展方面的东西:

    从我带过的团队成员来说,一般干了3、4年测试的测试工程师,大部分的测试工程师,对自己的职业生涯都很迷茫,没有完整的规划。由于大部分都是做黑盒测试,技术含量较低,抱怨时常是有的。尤其在这个关键的节骨眼上,对他们的心里辅导和安慰非常必要。多给他们展望一些测试的前景,经常组织测试职业发展的方向类似的讨论会,让大家有一个稳定的心,认真干活,而不是时时刻刻在寻找机会,想立马跳槽。

  • 负面测试

    2011-03-28 22:51:09

      负面测试(Negative testing)是相对于正面测试(Positive testing)而言的。它们也是测试设计时的两个非常重要的划分。简单点说,正面测试就是测试系统是否完成了它应该完成的工作;而负面测试就是测试系统是否不执行它不应该完成的操作。形象一点,正面测试就象一个毕恭毕敬的小学生,老师叫我做什么,我就做什么;而负面测试就象一个调皮捣蛋的孩子,你叫我这样做,我偏不这样做,而且和你对着干。开发人员也是最讨厌修改此类bug的。
            正面测试主要根据需求,功能说明书,设计文档等相关参考文档来执行测试,而负面测试则主要根据错误猜测,逆向思维来测试系统,一定程序上的的依赖测试人员的经验积累。
            执行负面测试时,不单单要测试系统是否处理了用户的异常操作,还要检查系统对于这些异常操作是否给予了正确的错误提示。它是系统对用户进行继续正确操作的指引。
            简言之负面测试的三部曲就是:
    1. 检查程序中的屏幕或页面是否给出了清晰且充分的提示或约束;
    2. 测试系统是否处理了用户的异常操作;
    3. 检查系统的错误提示是否清晰且充分。
     
            以下是Steve Miller的《Top 10 Negative Test Cases》,概括性的提到了一些做负面测试时经常需要注意的测试。
     
            负面测试用例被设计于用软件未意欲被使用的方式测试软件,它也应该是测试工作的一部分。以下就是在设计测试工作量时你应该考虑的10大负面测试用例。
            1.植入的单引号。大多数基于SQL数据库系统在用户存储包含一个单引号的信息时会出现问题,例如John's car。每一个可以接受文字数字型数据条目的屏幕都要试试输入包含一个或多个单引号的文本。
            【Kiki补充】其实不只是单引号,基本上测试人员应该测试所有的特殊字符和空/空格(单纯的空格和文本前后的空格)。单引号,逗号,/,<,>(对于web的应用程序)都是很容易引发错误的。在开发早期测试组就可以建议开发组写一个通用的函数来处理这些特殊字符,然后在处理用户的输入时套用这个函数就可以避免此类错误了。
     
            2.必需输入的数据条目。功能说明书上应该清楚的指出屏幕上必须输入数据条目的字段。测试屏幕上每一个被说明为必须输入的字段以保证它强制要求你在字段中输入数据。
            【Kiki补充】对于强制输入的字段,在屏幕上最好有些标识以说明其为必须输入的字段。一般在字段前或后用红色的*号表示。测试时必须要检查有标识的字段是否和功能说明书或其他参考文档一致,错误信息提示是否正确,强制输入的字段是否真的必须输入。
     
            3.字段类型测试。功能说明书上应该清楚的指出要求特定数据输入要求(日期字段,数字字段,电话号码,邮编等等)的字段。测试屏幕上每一个被指出有特定类型的字段以保证你输入了基于字段类型的符合正确格式的数据(数字型字段应该不允许字符或特殊字符,日期型的字段应该允许输入一个正确的日期等等)
            【Kiki补充】其实这里还有一个字段格式和字段内容的测试。有些字段对输入的格式有要求,这些字段的格式一般在屏幕上也有相应的提示。所以在测试时需要测试提示的格式是否合理(和功能说明书或其他参考文档相一致)以及系统是否正确识别输入的格式。有些字段对字段的内容有限制,如常见的用户名,不能包含特殊字符,首字不能未数字等要求。所以在测试时需要测试提示的格式是否合理(和功能说明书或其他参考文档相一致)还有不符合内容要求的数据输入时系统是否正确的处理。
     
            4.字段长度测试。功能说明书上应该清楚的指出可以在字段中输入的字符数(例如,first name必须是50个或更少的字符)。写测试用例以保证你只可以输入特定的字符数。防止用户输入比允许范围更多的字符比因用户已输入过多的字符而给出的错误信息更加的文雅些。
            【Kiki补充】一般对于限制长度的字段,现在开发大多采用限制输入的方法(设置字段的长度)来处理。所以测试时需要测试限制的长度是否合理(和功能说明书或其他参考文档相一致),对于没有限制长度的字段,要测试无穷输入时是否出错,有问题报bug时建议开发人员根据需要限制长度。
     
            5.数字型的边界测试。对于数字型的字段,测试上下边界是非常重要的。例如,如果你正在计算某个账户的利息时,你永远不会输入一个负的利息数给应该赢取利息的账户。因此,你应该尝试用负数测试。同样,如果功能说明书上要求字段在某一个特定的范围(如从10~50),你就应该尝试输入9或51,它应该给出一个得体的信息表示失败。
     
            6.数字的约束测试。大多数数据库系统和编程语言允许数字条目被识别为整数或长整数。通常,整数的范围是从-32,767~32,767,长整数的范围从-2,147,483,648~2,147,483,647。对于那些没有特定边界限制的数字数据条目,用这些限制测试以确保不会出现数字的溢出错误。
            【Kiki补充】小数型的数字字段同样也需要格外的测试。一般对于未指出数字类型的字段,尝试输入负整数,负小数,0,正整数,正小数进行测试。
            不管是哪种数据库系统,对于数字一般都有多种数字类型。所以测试人员一定要测试的全面。
     
            7.日期边界测试。对于日期型的字段,测试上下边界是很重要的。例如,如果你正在检查一个出生日期的字段,很大可能出生日期不能早于150年前。同样,出生日期应该不是将来的某一天。
            【Kiki补充】一般来说,每种数据库系统的日期都有个范围,如SQL Server最小日期是1753年1月1日,所以如果是输入型的日期字段同样也应该测试早于1753的日期。
     
            8。日期的有效性。对于日期字段,确保不允许无效的日期是很重要的(04/31/2007是一个无效的日期)。测试用例也应该检查闰年(每个第4年和第400年是一个闰年)。
     
            9。web会话测试。很多的web应用程序依赖浏览器的会话来追踪已登录的用户,应用程序的设置等等。应用程序的大多数屏幕不被设计为没有首次登录就可以被运行。应用程序应该确保在打开应用程序的某一页面之前会话里有一个有效的登录。
     
            10.性能的改变。当发布产品的最新版本时,应该有一套运行于识别屏幕(列出信息的屏幕,add/update/delete数据的屏幕等等)速度的性能测试。测试包里应该包括比较先前版本和现有版本性能统计值的测试用例。这个可以帮助识别那些可以证明是随着对现有版本的代码变更而引起的潜在的性能问题。
     
            【Kiki补充】从第一条到第八条是我们在测试字段时常常需要做的测试,一般的测试人员都不陌生。第九条在测试web应用程序中会作为检查应用程序的安全性而做的一项测试。而第十条估计很多公司都不会将它考虑到测试的范畴中,一般最多也就是在测试用例中添加校验某一个操作是否在系统允许的响应时间里,很少去做这样的比较,除了一些有针对性的性能测试。
  • English oral sentences

    2010-12-10 14:09:55

    Come on, give me a break(帮帮忙,让我歇歇)

    You're in the pink(气色不错)

    I heard a lot about you.(久仰)

    May I have your name?  Do you have the time?

    its my secret, dont ask such a personal question  I would rather not say.(还是别说了吧!)

    想说什么,可是想不起来。 Let me see. Just a moment. It’s on the tip of my tongue.

    不懂 I’m not clear about it. It’s past my understanding. It’s beyond me.

    Think nothing of it. 别放在心上。

    It slipped my mind. 我忘了

    Take it easy. 轻松一点,别紧张

    Neck and neck. 不分上下

    It’s been long time. 好久不见

    That’s really something. 真了不起

    Excuse me for a moment. 失陪一会

    I’m dying to see you. 我真想见你。

    You’re going too far. 你太过分了。

    Are you out of your mind? 你疯了吗?

    I don't see how you can.....? 我不明白你怎么能....?

    You need to lighten up. 你需要放松。

    Sound like a drag to me. 听起来真无聊

    That's it for tonight.今晚就到此为止吧

    What's it to you? 关你何事?

     

  • HTTP POST GET 本质区别详解

    2010-10-31 21:22:05


    一 原理区别
        一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交
    Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE
    URL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查 ,改 ,增 ,删 4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查 询 资源信息,而POST一般用于更新 资源信息(个人认为这是GET和POST的本质区别,也是 协议设计者的本意,其它区别都是具体表现形式的差异 )。
      根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等 的 。
      1.所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查 询一样,不会修改,增加数据,不会影响资源的状态。
      * 注意:这里安全的含义仅仅是指是非修改信息。
      2.幂等的意味着对同一URL的多个请求应该返回同样的结果。这里我再解释一下幂等 这个概念:
      幂等 (idempotent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。
    幂等有以下几种定义:
    对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的结果是一样的,那么我们就称该运算是幂等的。 比如绝对值运算就是一个例子,在实数集中,有abs(a) = abs(abs(a)) 。
    对于双目运算,则要求当参与运算的两个值是等值的情况下,如果满足运算结果与参与运算的两个值相等,则称该运算幂等,如求两个数的最大值的函数,有在 在实数集中幂等,即max(x,x)  =  x 。
    看完上述解释后,应该可以理解GET幂等 的含义了。
      但在实际应用中,以上2条规定并没有这么严格。引用别人文章的例子:比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操 作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。从根本上说,如果目标是当用户打开一个链接时,他可以确信从自身的角度来看没有改变资源即可。
      根据HTTP规范,POST表示可能修改变服务器上的资源的请求 。继续引用上面的例子:还是新闻以网站为例,读者对新闻发表自己的评论应该通过POST实现,因为在评论提交后站点的资源已经不同了,或者说资源被修改 了。
      上面大概说了一下HTTP规范中,GET和POST的一些原理性的问题。但在实际的做的时候,很多人却没有按照HTTP规范去做,导致这个问题 的原因有很多,比如说:
      1.很多人贪方便,更新资源时用了GET,因为用POST必须要到FORM(表单),这样会麻烦一点。
      2.对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。
      3.另外一个是,早期的但是Web MVC框架设计者们并没 有有意识地将URL当作抽象的资源来看待和设计 。还有一个较为严重的问题是传统的Web MVC框架基本上都只支持GET和POST两种HTTP方法,而不支持PUT和DELETE方法。
       * 简单解释一下MVC:MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码 分离,从而使同一个程序可以使用不同的表现形式。
      以上3点典型地描述了老一套的风格(没有严格遵守HTTP规范),随着架构的发展,现在出现REST(Representational State Transfer),一套支持HTTP规范的新风格,这里不多说了,可以参考《RESTful Web Services》。
    二 表现形式区别
       搞清了两者的原理区别,我们再来看一下他们实际应用中的区别:
        为了理解两者在传输过程中的不同,我们先看一下HTTP协议的格式:
        HTTP请求:
    <request line>
    <headers>
    <blank line>
    <request-body>]
    在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。在首部之 后是一个空行,再此之后可以添加任意的其他数据[称之为主体(body)]。
    GET与POST方法实例:
    GET /books/?sex=man&name=Professional HTTP/1.1
    Host: www.wrox.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
    Gecko/20050225 Firefox/1.0.1
    Connection: Keep-Alive
    POST / HTTP/1.1
    Host: www.wrox.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
    Gecko/20050225 Firefox/1.0.1
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 40
    Connection: Keep-Alive
    (----此处空一行----)
    name=Professional%20Ajax&publisher=Wiley
     
    有了以上对HTTP请求的了解和示例,我们再来看两种提交方式的区别:
       (1)GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接;例 如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如: %E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。
      POST提交:把提交的数据放置在是HTTP包的包体中。上文示例中红色字体标明的就是实际的传输数据
         因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变
        (2)传输数据的大小:首先声明:HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制。
    而在实际开发中存在的限制主要有:
    GET:特定浏览器和服务器对URL长度有限制,例如 IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系 统的支持。
    因此对于GET提交时,传输数据就会受到URL长度的 限制。
    POST:由于不是通过URL传值,理论上数据不受 限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置。
     (3)安全性:
    .POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修 改,而这 里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存, (2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击
    (4)Http get,post,soap协议都是在http上运行的
    1)get:请求参数是作为一个key/value对的序列(查询字符串)附加到URL上的
    查询字符串的长度受到web浏览器和web服务器的限制(如IE最多支持2048个字符),不适合传输大型数据集同时,它很不安全
    2)post:请求参数是在http标题的一个不同部分(名为entity body)传输的,这一部分用来传输表单信息,因此必须将Content-type设置为:application/x-www-form- urlencoded。post设计用来支持web窗体上的用户字段,其参数也是作为key/value对传输。
    但是:它不支持复杂数据类型,因为post没有定义传输数据结构的语义和规则。
    3)soap:是http post的一个专用版本,遵循一种特殊的xml消息格式
    Content-type设置为: text/xml   任何数据都可以xml化
    三 HTTP响应
    1.HTTP响应格式:

    <status line>
    <headers>
    <blank line>
    [<response-body>]
    在响应中唯一真正的区别在于第一行中用状态信息代替了请求信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况。
    HTTP响应实例:
    HTTP/1.1 200 OK
    Date: Sat, 31 Dec 2005 23:59:59 GMT
    Content-Type: text/html;charset=ISO-8859-1
    Content-Length: 122
    <html>
    <head>
    <title>Wrox Homepage</title>
    </head>
    <body>
    <!-- body goes here -->
    </body>
    </html>
    2.最常用的状态码有:
    ◆200 (OK): 找到了该资源,并且一切正常。
    ◆304 (NOT MODIFIED): 该资源在上次请求之后没有任何修改。这通常用于浏览器的缓存机制。
    ◆401 (UNAUTHORIZED): 客户端无权访问该资源。这通常会使得浏览器要求用户输入用户名和密码,以登录到服务器。
    ◆403 (FORBIDDEN): 客户端未能获得授权。这通常是在401之后输入了不正确的用户名或密码。
    ◆404 (NOT FOUND): 在指定的位置不存在所申请的资源。
    四 完整示例:
    例子:

    HTTP GET
    发送
    GET /DEMOWebServices2.8/Service.asmx/CancelOrder?UserID=string&PWD=string&OrderConfirmation=string HTTP/1.1
    Host: api.efxnow.com
    回复
    HTTP/1.1 200 OK
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    <?xml version="1.0" encoding="utf-8"?>
    <objPlaceOrderResponse xmlns="https://api.efxnow.com/webservices2.3">
    <Success>boolean</Success>
    <ErrorDescription>string</ErrorDescription>
    <ErrorNumber>int</ErrorNumber>
    <CustomerOrderReference>long</CustomerOrderReference>
    <OrderConfirmation>string</OrderConfirmation>
    <CustomerDealRef>string</CustomerDealRef>
    </objPlaceOrderResponse>
     
    HTTP POST
    发送
    POST /DEMOWebServices2.8/Service.asmx/CancelOrder HTTP/1.1
    Host: api.efxnow.com
    Content-Type: application/x-www-form-urlencoded
    Content-Length: length
    UserID=string&PWD=string&OrderConfirmation=string
    回复
    HTTP/1.1 200 OK
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    <?xml version="1.0" encoding="utf-8"?>
    <objPlaceOrderResponse xmlns="https://api.efxnow.com/webservices2.3">
    <Success>boolean</Success>
    <ErrorDescription>string</ErrorDescription>
    <ErrorNumber>int</ErrorNumber>
    <CustomerOrderReference>long</CustomerOrderReference>
    <OrderConfirmation>string</OrderConfirmation>
    <CustomerDealRef>string</CustomerDealRef>
    </objPlaceOrderResponse>
     
    SOAP 1.2
    发送
    POST /DEMOWebServices2.8/Service.asmx HTTP/1.1
    Host: api.efxnow.com
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: length
    <?xml version="1.0" encoding="utf-8"?>
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
    <CancelOrder xmlns="https://api.efxnow.com/webservices2.3">
    <UserID>string</UserID>
    <PWD>string</PWD>
    <OrderConfirmation>string</OrderConfirmation>
    </CancelOrder>
    </soap12:Body>
    </soap12:Envelope>
    回复
    HTTP/1.1 200 OK
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: length
    <?xml version="1.0" encoding="utf-8"?>
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
    <CancelOrderResponse xmlns="https://api.efxnow.com/webservices2.3">
    <CancelOrderResult>
    <Success>boolean</Success>
    <ErrorDescription>string</ErrorDescription>
    <ErrorNumber>int</ErrorNumber>
    <CustomerOrderReference>long</CustomerOrderReference>
    <OrderConfirmation>string</OrderConfirmation>
    <CustomerDealRef>string</CustomerDealRef>
    </CancelOrderResult>
    </CancelOrderResponse>
    </soap12:Body>
    </soap12:Envelope>

  • 软件测试修炼之道

    2010-10-12 13:28:09

  • 全面剖析E-mail收发失败的原因(zhuan)

    2010-08-20 18:06:57

    电子邮件是Internet上最重要的应用之一,它提供了一种极为方便、快速的通讯方式。但是,很多网民都有过收发电子邮件失败的经历。下面笔者通过对E -mail收发失败的原因作详细的论述,来谈谈如何提高E-mail收发的成功率。  
    一、E-mail收发的一般过程。  
    图1:E-mail收发过程示意图  
    一般来说,E-mail的发信方式分为两种:一种是通过ISP或免费邮箱服务商提供的SMTP发信服务器中转的发信方式;另一种则是通过本机建立S MTP发信服务器直接发送电子邮件的方式。  
    1、通过邮件发信服务器发信的收发过程。  
    如图1所示,在这一发信过程中,首先由发信人通过电脑将电子邮件发送到SMTP发信服务器上,如果发信服务器收到的邮件合法,发信服务器通过一种“存储转发”技术,将该电子邮件在服务器上排队,当轮到该邮件发送顺序时,再由发信服务器将邮件发送到对方的收信服务器(M X邮件交换服务器)上,再由收信服务器转发到POP3服务器上(很多服务器系统的收信服务器和POP3服务器是同一服务器),最后由收件人通过电脑上的客户端软件将电子邮件从P OP3服务器上取走。  
    2、通过本机直接发送电子邮件的过程。  
    与上述发送过程不同的是,一些软件提供本机直接发送电子邮件到收信服务器上的功能,其实就是利用本机电脑建立一个SMTP发信服务器,由本机充当发信服务器的功能,绕过I SP或免费邮箱提供的SMTP发信服务器。因此本机既充当发信人电脑,又充当发信服务器,其发信过程与上述过程类似,但减少了发信人与发信服务器之间的网络传输过程和邮件的排队等待时间。  
    二、电子邮件收发失败的原因。  
    在上述发信过程中,只要有一个环节出现问题,都会引起E-mail收发失败,因此,电子邮件收发失败主要有以下一些因素:  
    1、没有正确地配置客户端软件的帐号、服务器属性等。  
    正确配置客户端软件的邮箱帐号、收发邮件的服务器属性是成功收发E-mail的关键。在这里需要配置的主要是两个服务器,即SMTP服务器和P OP3服务器以及帐号及密码。  
    SMTP服务器:即你用来发送邮件的服务器的地址,您的邮件将通过此服务器发送出去。如: xf.hb.cninfo.net。也可写成IP地址格式,如:61.136.152.3。  
    POP3服务器:保存了外界发给您的邮件。您通过邮件客户端软件,例如:Outlook Express将这些邮件下载到您的PC上,再处理这些邮件。如果SMTP和POP3是同一个主机,则两者相同,如均为:xf.hb.cninfo.net。同样一些免费邮箱的服务器一般要在前面加上“p op.",如:pop.163.com。  
    POP3和SMTP服务器一般有以下几种填写方式:  
       1) SMTP.xxxx.xxx pop.xxxx.xxx  
       2) xxxx.xxx xxxx.xxx  
       3) SMTP.xxxx.xxx pop3.xxxx.xxx  
     帐号:实际上是POP3服务器的帐号。您通过此帐号和相应的口令从POP3服务器上收取您的邮件。如:您的邮箱是t010405@xf.hb.cninfo .net,那么您的帐号就是@前的“t010405”。一些免费邮箱的帐号需要填写邮箱全称,而不仅仅是@前面的部分,如果你确认自己的密码正确无误,却不能通过密码验证,一般就是这个原因。  
    密码:您的帐号密码。  
    只有正确填写了这些信息,才能正确地发送电子邮件。初级用户最容易犯上述错误。  
    2、收件人的邮箱地址填写有错误。  
    要保证电子邮件能被正确地发送并被收信人收到,准确地填写收信人的邮箱地址是非常重要的。邮件不能被正常发送或收信人收不到邮件,往往是收信人邮箱地址填写不正确。目前由于大家在注册邮箱时,往往不容易注册到好的帐号名,因此大家不得不混合使用字母和数字以及一些特殊字符,而这往往容易造成抄写对方收件人邮箱地址时发生错误。例如:英文小写字母“l ”和阿拉伯数字“1”、英文小写字母“o”和阿拉伯数字“0”、下划线“_”和连字符“-”这些字符极为相似,在抄写收件人邮箱地址时尤其应注意。收件人邮箱地址填写错误,也分为两种情况:  
    1) 邮箱地址帐号错误:即收件人邮箱@前面的部分填写错误。 在这里又分为两种情况,第一种情况是地址帐号误填写成了其他存在的邮箱地址,如:发信人xiangkai68@sina.com希望将信件发送到zxk 71@21cn.com,地址却误填成了zxk717@21cn.com(该邮箱地址存在) ,则邮件没有被发送到希望的邮箱中,当然收件人收不到邮件了。另一种情况是地址帐号填写成了其他不存在的邮箱地址,如:收件人地址为:z xk712871@21cn.com(该邮箱地址不存在) ,则在采用邮件服务器方式发信过程中,一般并不提示发送错误,而是提示发送成功(一般在域名相同的邮箱之间发送电子邮件,发信服务器会判断邮箱地址是否正确并给出错误提示)。因为只要邮件能够正确地传送到发信服务器上,O utlook Express、Foxmail等邮件客户软件就会给出发送成功的提示。而随后几分钟,你会发现你的发信箱里会退回你发送的电子邮件,并通知你收件人邮箱地址非法或不存在。因此你若不及时检查你的收件箱,还以为对方已经收到电子邮件了呢?还有一种情况,收信服务器上若不存在相应的邮箱地址,有些收信服务器会“智能”地作出判断,将他们发送到可能正确的邮箱地址中,如:发送给j ohn@myorg.com的邮件被发送到了 johm@myorg.com中,不过一般会通知给发信人该信息。而采用本机直接发送电子邮件的客户端软件发送电子邮件时,由于它采用直接与收信服务器相联系的方式,因此在发送过程中,一般即会被告知收件人邮箱地址不存在。不过,当M X邮件交换服务器与POP3服务器不是同一服务器时,只要将邮件发送到MX邮件交换服务器上,也会被通知发送成功,但很快你能收到退信通知。  
    2) 主机地址域名错误:即收件人邮箱@后面的部分填写错误。 对于这种情况,在发送过程中,由于通过域名解析后无法找到相应的主机(服务器),所以邮件根本就发送不出去。  
    因此,在填写收件人邮箱地址时,应非常仔细,对于经常联系的朋友,可将他们加入到地址薄中,在发送信件时直接选用。对于收到的邮件最好采用回复的方式,以避免邮箱地址抄写错误。对于不能确定的邮箱地址,最好采用校验邮箱地址类软件先校验后再发送。  
    3、发信服务器出现故障.  
    对于发信服务器来说,出现故障是不可避免的。因为网络繁忙、黑客入侵等许多原因都可能使其发信服务器暂时出现故障而不能被访问,在这种情况下使用该邮件服务器发送电子邮件当然不能成功发送,我们只有等待发信服务器恢复正常后再发。而邮件服务器系统升级也可导致发信服务器I P地址等发生变化而导致原来的发信服务器不能被访问(有些用户在填写客户端软件的发信服务器时填写成IP地址形式)。你若拥有多个邮箱帐号,也可以换一个发信服务器发送。最好的办法当然是采用能够提供本机直接发送电子邮件的软件(例如:A dvanced Direct Remailer2.17,以下简称ADR,下载地址:
    http://www.mailutilities.com/adr/adr.zip)来发送,这样可绕过发信服务器而直接发送电子邮件到收信服务器上。另外,发信服务器最好填写成域名形式,不要填写I P地址形式,因为这样可避免邮件系统升级等原因而引起的发信服务器IP地址变化,从而不能正常发送电子邮件。 

    4、收信服务器出现故障.  
    同样,不仅发信服务器容易出现故障,收信服务器、POP3服务器也同样会出现故障。一般说来,当收信服务器临时出现故障时,在一些情况邮件并不会丢失,因为当收信服务器出现故障时,发信服务器由于不能将邮件发送到指定的收信服务器上,发信服务器会在指定的时间间隔重新发送,例如:隔3 0分钟后再发送一次,若仍然不能发送成功,则间隔60分钟后再发送一次,以此类推,直到发送成功。一般而言,当收信服务器出现故障时,系统管理员会在较短的时间内使其他恢复正常。若在指定的时间内不能成功发送,例如:4 8小时内,则会将邮件退还给发信人,并说明邮件不能被成功发送的原因。其实在此期间,你并不能立即知道收信服务器出现了问题。因此对于重要信件,你若采用本机直接发送电子邮件的软件发送,则在发送过程中,就可知道收信服务器是否正常,这样就可以采取其他通讯方式,例如:传真等方式来联系你朋友了。  
    收信服务器出现问题,对于发信人是没有办法解决的,我们只有祈祷收信服务器尽快恢复正常。  
    5、域名解析服务器出现故障。  
    一般用户在用邮件服务器方式发送电子邮件时,需要解析发信服务器的域名地址,而在收信时需要解析收信服务器的域名地址。因此,当域名解析服务器出现故障时,由于不能正常解析服务器的域名地址,用户当然不能连接到发、收邮件的服务器上,自然不能正常收发电子邮件了。如果用户将收发邮件的服务器地址填写成I P地址形式,就可以避免域名解析服务器出现故障时而不能正常收发电子邮件了。同样采用本机直接发送电子邮件方式发送电子邮件,如果域名解服务器出现故障,或邮件地址的后缀域名与域名服务器的解析范围有冲突,则同样无法解析出对方收信服务器的域名地址,这时我们只有更换另一个域名解析服务器。因此,我们在W indows的网络TCP/IP设置中,必须正确填写好主控DNS和辅控DNS,这样当一个域名解析服务器出现问题时,可调用另一个辅控DNS。  
    另外还有一点,中国电信169网在国际上是不合法的,那么169网的域名采用163国际网上的域名解析服务器来解析便会发生域名不能解析或解析错误而导致发送失败或发送到不正确的邮箱中。  
    一些域名解析服务器可能存在解析范围的问题,不能解析出极个别特殊的地址,因此邮件无法发送到一些特殊邮箱中。  
    6、网络连接不稳定。  
    发送电子邮件的过程中,稳定快速的网络连接也是保证邮件被正常发送的重要因素。若在发送电子邮件过程中,出现断线、较强的线路电磁干扰等情况往往会导致发送失败或邮件异常改变而受损,自然收件人不能收到正常的邮件。这时我们只有重新发送该邮件了。特别是发送大邮件过程中,对于网络连接的质量要求更高。因此建议大家在发送电子邮件前,应先建立稳定快速的I nternet连接,并从本地的ISP(163、169、263、167等)中选择速度快且稳定的连接后再发送。发送前最好先压缩附件,以减小邮件的大小,当然猫也要选择好一点的,另外在发送电子邮件的过程中,最好不要进行其他浏览操作,以免占用带宽,延长发送时间,增大产生错误的概率。  
    7、邮件属性超过发信服务器的限制。  
    为了充分利用网络资源,提高邮件发送用户的响应速度和效率。SMTP发信服务器对用户邮件的大小、连接数量等进行限制,当超出SMTP服务器的限制时,服务器将拒绝发送。一般来说,发信服务器对邮件有以下几种限制:  
    限制邮件大小:不管是免费邮箱还是ISP提供的SMTP服务器,对发送邮件的大小都有限制,一般应小于2M(包括附件),而实际上我们只能发送1 .5M左右的邮件,因为在发送电子邮件前还需要对邮件进行编码,会导致邮件大小增加5%~20%之间。而具体能发送多大的邮件,请查阅相关S MTP服务器的资料。当客户端邮件程序试图发送一个大于此限制的邮件给SMTP服务器时,将收到一条未发送报告或发送错误报告,随后将邮件退回客户端。  
    限制每个连接的邮件数:限制邮件客户在一次连接中最多可以发送的邮件数目,超出这一限制的邮件将被拒绝发送。  
    限制每个邮件的收件人数:限制每封邮件的收件人数上限,超出该上限的邮件将退回发信人。  
    当电子邮件超出上述限制时,我们可以将电子邮件分几次来发送,或将较大的邮件分成几个部分,通过多份电子邮件来发送,这样每封信的长度较短,每次发送的数量也较少,也可大大减少出错的概率。当然,若我们采用本机直接发送电子邮件的软件,例如:A DR来发送邮件,一般都会突破这些限制,可轻松安全地发送大邮件。  
    8、收信服务器上收件人邮箱空间满;邮件大小超出收信服务器的限制。  
    若收件人邮件比较多,而收件人在一段时间内由于某种原因长期不收信,以及垃圾邮件的干扰,往往会导致邮箱空间占满,当然就不能正常收取新邮件了。有些收信服务器邮箱缺省收信方式为收信后在服务器上仍保留备份,常常会导致邮箱空间慢慢被占满,也是引起不能收取新邮件的原因。因此,大家要养成定期访问邮箱和清理邮箱的习惯,并设置好邮箱的垃圾过滤功能,来减少垃圾邮件的干扰。另外,接收的邮件过大,超出收信服务器的限制,也是不能正常接收邮件的重要原因。对于这种情况,大家只有申请大容量的邮箱空间,例如:5 0~100M的邮箱,而大容量的邮箱对大邮件的接收和发送的限制较宽。同样,收信服务器对接收邮件的大小也有限制,例如:一个5M的邮箱允许接收的最大单个邮件为2 M,当超出其限制时,也不能正常接收邮件。  
    9、收信服务器设置有“黑名单”,防止Spammer发送垃圾邮件,限制来至一些邮箱和一定IP地址范围的邮件。  
    一些收信服务器对发送垃圾邮件的主机(spammer)有非常强的保护作用,所以许多合法的电子邮件不能被发送到收件人邮箱中,这些spa mmer主机的地址被收信服务器登记为“黑名单”,收信服务器将拒绝收取和发送来至该地址或域名的电子邮件。  
    所以你应该确信,你的E-mail地址或域名地址不被标记为spammer,否则,许多收信服务器将拒绝你的连接。这种情况下,你可以更换其他邮箱的S MTP发信服务器发送电子邮件,也可通过本机直接发送电子邮件,绕过列为黑名单的邮箱或SMTP发信服务器,就有可能避开黑名单而提高发送电子邮件的成功率。  
    10、收件人邮箱被收件人主动设置有垃圾过滤功能,防止一些不合法的和来至一些邮箱和一定IP地址范围内的电子邮件。  
    注意:与上一原因不同的是,这是收件人对自己邮箱主动设置的邮件过滤功能。若发信人邮箱是被禁止接收的用户,那么在多数情况下,发信人可以将邮件发送到收信服务器上,发送过程中也不提示任何错误,但邮件随即被转移到其他文件夹,例如:直接被送到垃圾邮箱中或被删除,不再进入收件箱。因此在收件箱中不存在该邮件,邮件收取过程中,就不可能收取到。现在很多免费邮箱,都提供有垃圾邮件过滤功能,例如:对h otmail.com邮箱,我们可以通过WEB页面方式登录该邮箱后,将邮箱的垃圾邮件过滤级别设置为“高”后,将不能通过抄送的方式给hotma il.com邮箱发邮件,否则会被当作垃圾邮件过滤掉。如果被收件人列为拒收的对象,通过该邮箱就不能成功地发送到收件箱中。  
    11、收信服务器对发送电子邮件的软件(主要是群发软件)设置有拒发功能。  
    很多收信服务器为了防止垃圾邮件的传播,对市面上流行的群发软件设置有监控功能,当发现这些邮件是采用这些邮件群发工具发送的,则拒绝发送到指定的邮箱中。这主要是通过对邮件头的分析或其他相关信息来判断的,一般来说,邮件发送工具在对邮件进行编码时,会对邮件头放置一些信息, 例如邮件头中的X-mailer信息,主要是说明邮件发送时采用的邮件软件的。收信服务器会通过这些信息来判断邮件是通过什么工具发送的。如果收信服务器发现是用这些群发工具发送的,将拒绝接收或直接过滤掉,而且并不返回任何提示信息给发信人。  
    12、收信服务器对邮件的主题和内容设置有拒发功能。  
    发送电子邮件时,一定要注意邮件主题和邮件内容的字词书写,很多网站的邮件服务器为过滤垃圾邮件设置了常用垃圾字词过滤,如果邮件主题和邮件内容中包含有如:大量、宣传、钱、群发等字词,服务器将会过滤掉该邮件,致使邮件不能发送成功。  
    因此在书写邮件主题和内容时应尽量避开你心目中认为的有垃圾字词嫌疑的文字和词语,才能顺利发送电子邮件。  
    13、有些发信服务器为了减轻负担和抵制垃圾邮件的发送,拒绝发送发信人地址非本服务器的邮件。  
    现在绝大多数免费邮箱为了减轻SMTP服务器的负担,同时也为了防止垃圾邮件散布者利用本服务器发送垃圾邮件,都采用SMTP服务器认证和拒绝发送发信人地址非本服务器的邮件。例如:如果你在2 1CN上有一电子邮箱zxk@21cn.com ,在新浪上有另一电子邮箱xiangkai68@sina.com ,你用邮箱zxk@21cn.com 发送电子邮件,而在SMTP发信服务器上填写新浪的SMTP服务器,即SMTP.sina.com.cn,并填写好正确的用户名和口令,你却不能正常发送电子邮件,就是因为这个原因。  
    14、一些发信服务器增加了SMTP服务器认证功能,只有本服务器注册用户提供正确的用户名和口令才能正常地发送电子邮件。  
    如果你不是本服务器注册的合法用户,不能提供正确的用户名和口令,将不能利用其服务器发送电子邮件,这主要是为了避免了非法用户利用本服务器发送大量的垃圾邮件,减少对用户邮箱的干扰。现在许多早期版本的电子邮件客户端软件,如F oxmail3.0均不支持该功能,因此首先你应升级你的客户端邮件软件。  
    15、发信服务器或收信服务器拒绝收发匿名电子邮件或不合法邮件头的电子邮件。  
    一般来说,不管是发信服务器还是收信服务器,为了充分利用网络资源和防止黑客的入侵,都设置有一定的垃圾邮件过滤和防火墙功能,一般是不允许匿名发送电子邮件的,S MTP服务器一但发现邮件头中的From中的字段为空或不合法,则拒绝发送。另一方面,也无法在邮件发送失败后,返回出错信息给发信人。所以在发送前,客户端软件和服务器会首先确定这些信息,只有当这些邮件头信息正确后,才能正确发送。所以现在大多数邮件客户端软件在系统设置或建立新邮件时,都必须正确填写发信人邮箱地址,一般系统会自动取当前帐号邮箱。若不填写,一般不能发送。不过现在也有许多支持匿名发送电子邮件的软件,多数为在本机直接建立S MTP服务器实现本机直接发送电子邮件,对于收信服务器而言,对这一点要求并不严格,收信服务器多数情况下,可接收匿名邮件,当然在给一些安全性级别要求较高的收信服务器发送电子邮件时,收信服务器往往会因为同样的原因拒绝发送到给定的邮箱中。  
    因此,要想正确地发送电子邮件,正确完整地填写邮件头信息是很重要的。  
    16、一些收信服务器对于本域名邮箱发送的给本域名邮箱上的另一邮箱的电子邮件只接收它们自己的SMTP服务器发送的邮件。  
    例如:如果你用163.com邮箱发送一封邮件给163.com上的另一邮箱用户,你可以使用SMTP.163.com来发送,而如果采用其他SMTP服务器来发送,例如:一些当地I SP提供的无需认证的SMTP服务器来发送,则会提示发送失败。同样,你用特快专递也不能发送成功,就是这个原因。Sina.com邮箱也存在这种限制,不过发送过程并不提示发送失败,但第二天,就会收到拒收的退信。  
    17、收信服务器对一次连接中来至同一邮箱地址的电子邮件的数量和发送的时间间隔进行了限制。  
    对于这种情况,美国在线(American On-Line),域名AOL.COM,在这一点上声誉就不太好,如果当你在一个很短的时间间隔内,例如一分钟,发送几十封信给AOL.COM的用户, 就有可能会出现问题。这时,AOL的过滤器会打开,认为你是在发送垃圾邮件,而把你的电子邮件踢出去,而且并不返回任何错误提示。A OL也不通知你,而你全然不知,你的IP地址将被锁定为黑名单,而从你的电子邮箱中发出的信件以后将再也不能收到。AOL接收所有发送给他的电子邮件,不发任何错误提示,然后剔除他们。  
    对于这种情况,我们可以在发送每封信之间间隔一段时间,也可以利用ADR来发送,用ADR可以创建发送邮件的延时列表,例如,若发送三十封信给A OL.COM用户,可设定每间隔三分钟发送一封电子邮件。  
    18、计算机病毒或黑客木马程序修改或占用了客户端软件收、发邮件的服务器的端口地址。  
    通常情况下,SMTP发信服务器的端口地址为25,收信服务器的端口地址为110。若遭到病毒或黑客木马程序的袭击,则有可能改变或被其他软件占用这两个端口地址,使收发电子邮件失败,所以当原先正常工作的系统突然不能正常收发电子邮件时,不防从这方面找找原因。  
    19、客户端邮件软件中的“收件人”或“抄写”的格式填写不对。  
    在Outlook Express中,在将同一封信发送给多个收信人时,各收件人邮箱间需要用分号或逗号隔开,而在Foxmail中却只能用逗号隔开,不能用分号隔开,否则不能正常发送电子邮件,这一点请大家一定要明确。因此,大家在填写收件人邮箱地址时应首先阅读软件的相关文档,仔细检查填写的格式是否正确。  
    20、客户端邮件软件本身存在不足或未注册。  
    现在发送电子邮件的客户端软件非常之多,而且各有特色,但它们或多或少地存在一些问题。因此,大家在选择这些邮件软件时,应尽量选择大公司的成熟产品, 并且还应经常升级更新,因为邮件服务器系统总是在不断升级更新的,因此软件也要相应地适应。例如:邮件超级快mailexpress1.5(下载地址:h ttp://jiaohuan.51.net/files/mailexpress.zip )  
    未注册版,不能成功地发往21cn.com邮箱和sina.com邮箱。在发送过程中提示“发送成功”,但收件箱并未接收到该邮件。而对该软件的注册版进行测试,可成功发送所有测试邮箱。原来,未注册版本中含有广告和相应的网站链接,2 1cn和sina.com等邮箱对相应的网站链接进行了过滤,拒绝接收。  

  • 用动态的眼光看测试(转)

    2010-08-09 10:22:05

     软件测试工程师到底是做什么的?很多书籍都会这样告诉你:黑盒测试工程师测试程序,白盒测试工程师测试代码。这样说的确没错,初学者可以这样理解,如果作为资深的软件测试工程师还是这样想的话,只能说是这几年的时间里你并没有任何进步。

      简单点说资深软件测试工程师仅需要掌握测试技术和行业技术就足够了。但细品起来好像也不完全像上面说得那样简单,怎样做才能掌握高超的测试技术,怎样做又才能成为行业技术专家,怎样做才能将这两者结合在一起呢?

      举个例子要求测试报表的工程师去检测一次性水杯,针对这个题目写出可行的测试用例。看了这个题目,很多测试工程师都会感觉头疼,这样的测试用例怎么写啊?先别急,让我们来考虑一个小问题“什么叫测试,测试应该从什么地方开始着手?”如果能将这个问题想明白,测试水杯的思路也就逐渐清晰了。比如,首先要考虑杯子是用来盛水的,那就要求它不会漏水。如果有人喜欢喝热开水,作为盛水的工具它应该满足沸点水温的要求,如果有人喜欢喝冰水,零度以下的要求也应该能够实现。然后再考虑一下杯子的软硬程度,如果太软拿不住,持杯子的人还会喝到水吗?如果杯子太硬是不是造价又会太高呢?接着再考虑在多长时间内杯子不会被水泡开,如果一个装了水的杯子,在两分钟后就被泡开了,那肯定是不合格的产品了,消费者是不会为如此短命的水杯买单的。沿着这个思路走下去,你会发现需要检测的内容太多了,杯子是不是会散发异味,是否满足食用器皿的卫生标准,杯壁上是否有异物,装满一杯水后杯子是否会损坏,杯子表面的图案会不会掉色,花样是否美观,装一些固体物体时杯子的可用性等等,基本功能测试、稳定性测试、压力测试、关联性测试就这样逐一而出。很神奇是吗?继续这个题目完成它,测试用例也就出来了。

      上面的小例子是灵活运用测试理念的一个典型,从这个例子中不难看出测试的广博,一个好的测试工程师能够像万金油那样,运用到方方面面的测试中,对事物的认知都可以从测试的角度来分析。尝试从身边的一些小事物开始,培养测试的兴趣和眼光,慢慢的就能从中体会到测试的意义了。比如对钢笔、桌椅板凳等做做测试,你会不会发现自己正逐渐的像质检员那样专业?在测试取得成功的同时,想想测试的过程,对测试对象高度认知不就是测试成功的基础吗?也就是说在测试之前你已经掌握了测试对象的特征,并且这些信息以不可察觉的速度在头脑中建立了测试的方向,所以才会得心应手。这个对特性认知并建立起测试方向的过程就是测试理念日趋成熟的过程。

      再举个例子,让手机软件的测试工程师来测试网络软件,结果通常是以失败而告终。有些人就不明白了,为什么测试桌椅都能成功,同样也是测试软件却失败了呢?那是因为在进行这个题目的时候我们忽略了非常重要的一点“行业技术”,桌椅等日常用品因为太过熟悉所以很容易掌握其特性,但是网络软件却因为其高度的领域性不被普遍认知。测试手机软件的工程师也许对各类型的手机操作系统非常熟悉,但是对网络知识的了解却很少。所以这种盲目的使用软件的过程,并不能构成系统的测试过程,最终导致题目执行的失败。

      解决这种问题最好的方法就是培养广泛的兴趣,学习一些行业知识,从当前项目所需要的行业技术开始,适当的增加对其他领域的了解,比如游戏软件、杀毒软件、文字编辑软件等等。艺多不压身,如果哪天你所在的项目组改变了业务方向,你还会紧张吗?

      不要将眼光局限在一小块地方,从另一种角度用动态的眼光去看待软件测试,当你发现测试无处不在的时候,才能说是真正深入到了这个领域。

  • Web 测试总结(2)

    2010-07-29 16:22:31

    3、添加、修改功能

    1)是否支持tab

    2)是否支持enter

    3)不符合要求的地方是否有错误提示

    4)保存后,是否也插入到数据库中?

    5)字段唯一的,是否可以重复添加

    6)对编辑页列表中的每个编辑项进行修改,点击保存,是否保存成功?

    7)对于必填项,修改为空、空格或其他特殊符号,是否可以编辑成功

    8)在输入框中,直接回车

    9)是否能够连续添加

    10)在编辑的时候,要注意编辑项的长度限制,有时,添加时有长度限制,但编辑时却没有(添加和修改规则是否一致)

    11)添加时,字段是唯一的,不允许重复,但有时,编辑时,却可以修改为相同字段(相同字段包括是否区分大小写以及在输入内容的前后输入空格)

    12)添加含有特殊符号或空格的内容

    13)对于有图片上传功能的编辑框,对于没有上传的图片,查看编辑页面时,是否显示默认图片,如果上传了图片,是否显示为上传图片?

     

    4、删除功能

    1)输入正确数据前加空格,看是否能正确删除?

    2)是否支持enter

    3)是否能连续删除多个产品?当只有一条数据时,能否成功删除?

    4)删除一条数据后,能否再添加相同的数据?

    5)当提供能一次删除多条信息的功能时,注意,删除的数据是否正确?

    6)不选择任何信息,直接点击删除按钮,看有什么错误提示?

    7)删除某条信息时,应该有错误提示信息

     

    5、注册、登录模块

    1)注册成功,但登录失败:注册时,密码设置为一些特殊符号,但登录时,失败

    2)注册时,连续点击提交按钮

    3)注册成功后,页面应该以登录状态跳转到首页

    3)登录时,没区分大小写,注册时,是小写字母,但登录时,用大写字母也能登录进去

    4)登录时,当页面刷新或重新输入新数据时,验证码是否也随之更新

    5)对密码的修改,当把密码修改为很长,或含有特殊符号时,能够修改成功,但却不能成功登录。

     

    6、上传图片测试

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

    2)文件类型正确,文件大小不合适

    3)文件类型错误,文件大小合适

    4)文件类型和大小都合适,上传一个正在使用中的图片

    5)文件类型和大小合适,手动输入一个存在的图片地址来上传

    6)文件类型和大小合适,手动输入一个不存在的图片地址上传

    7)文件类型和大小都合适,手动输入图片名称来上传

     

    7、返回键检查

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

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

    8、回车键检查

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

    9、刷新键检查

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

    10、直接URL链接检查

    web系统中,直接输入各功能页面的URL地址,看系统如何处理

    11、其他

    1)在测试时,有与网络有关的步骤必须考虑到断网的情况

    2)每个页面都有相应的页面title

    3)在测试的时候要尽量考虑在页面出现滚动条时(滚动条上下滚动下),页面显示是否正常

    4URL不区分大小写

     

    12、测试中,并发情况的考虑

    总结了以下两种情况:

    1)某个字段是唯一的,当多个用户并发点击产生该字段时,检查系统是怎么处理的

    2)对于电子商务网站,当两个或多个用户并发购买量总和大于产品库存量时,能否购买成功

    二、界面和易用性测试

    1、界面测试,主要测试网站的界面是否和设计一致,是否有错别字,页面布局是否合理,格式是否正确,是否有相应的错误提示信息等。

    2、易用性测试,主要是考察所开发出的功能是否人性化,是否易用,是否符合大多数用户的使用习惯等。

    3、对TabEnter键的测试。

    三、兼容性测试

    兼容性测试不只是指界面在不同操作系统或浏览器下的兼容,有些功能方面的测试,也要考虑到兼容性,比如涉及到ajax jqueryjavascript等技术的,都要考虑到不同浏览器下的兼容性问题。

    四、链接测试

    主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。

    五、业务流程测试

    业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。

    六、安全性测试

    1SQL注入

    2XSS 跨网站脚本攻击:程序或数据库没有对一些特殊字符进行过滤或处理,导致用户

    所输入的一些破坏性的脚本语句能够直接写进数据库中,浏览器会直接执行这些脚本语句,破坏网站的正常显示,或网站用户的信息被盗,构造脚本语句时,要保证脚本的完整性。

    document.write("abc")

    <script>alter("abc")</script>

    3URL地址后面随便输入一些符号

    (4) 验证码更新问题

     

    以上就是对Web测试的一个总结,相信一定还存在某些的遗漏,欢迎大家指正、补充。

     

     

  • Web 测试总结(1)

    2010-07-29 16:17:41

      测试是一种思维,包括情感思维和智力思维,情感思维主要体现在一句俗语:思想决定行动上(要怀疑一切),智力思维主要体现在测试用例的设计上。具有了这样的思想,就会找出更多的bug。(^_^个人认为,不代表官方立场)

      对于一个web网站来说,主要从这么几个大的方面来进行测试:

    1、 功能测试;2、 界面测试;3、 易用性测试;4、兼容性测试;5、 链接测试;6、 业务流程测试;7、 安全性测试

    下面主要从以上七个方面进行叙述:

     

    一、功能测试

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

    1、输入框

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

     

    控件类型

    大分类

    小分类

    检查内容

    输入框

    字符型输入框

    字符种类

    英文全角字符

    英文半角字符

    数字

    汉字

    空或空格

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

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

    长度检查

    最小长度-1

    最小长度

    最大长度

    最大长度+1

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

    空格检查

    输入的字符间有空格

    字符前有空格

    字符后有空格

    字符前后都有空格

    多行文本框输入

    允许回车换行

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

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

    安全性检查

    输入特殊字符串:nullNULL&nbspjavascript<script></script><title><html><td>

    输入脚本函数:<script>alter("abc")</script>document.write("abc")<b>hello</b>

    数值型输入框

    边界值

    最小值-1

    最小值

    最大值

    最大值+1

    位数

    最小位数+1

    最小位数

    最大位数

    最大位数+1

    输入超长值

    异常值、特殊值

    输入[空白(NULL)]、空格或‘“~!@#$%^&*()_+-={}[]|\:;”’<>,./?;”等可能导致系统错误的字符

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

    word 中的特殊功能,通过剪贴板拷贝到输入框:分页符,分节符,类似公式的上下标等

    输入负整数、负小数、分数

    输入字母或汉字

    带符号的数值:带正号的正数,带负号的负数

    小数:小数点前零舍去的情况,如 .12;多个小数点的情况;0值:0.00..0

    首位为零的数值:如0102

    科学技术法是否支持:如  1.0E2

    全角数字和半角数字的情况

    数字与字母的混合:16进制数值,8进制数值

    货币型输入项:允许小数点后几位

    安全性检查同上

    不能直接输入,就copy

    日期型

    合法性检查

    日输入[0]

    日输入[1]

    日输入[32]

    月输入[135781012]、日输入[31]

    月输入[46911]、日输入[30]

    月输入[46911]、日输入[31]

    输入非闰年,月输入[2]、日输入[28]

    输入非闰年,月输入[2]、日输入[29]

    (闰年)月输入[2]、日输入[29]

    (闰年)月输入[2]、日输入[30]

    月输入[0]

    月输入[1]

    月输入[12]

    月输入[13]

    异常值、特殊值

    输入[空白(NULL)]或“~!@#$%^&*()_+-={}[]|\:;”’<>,./?;”等可能导致系统错误的字符

    安全性检查同上

     

     

     

    2、搜索功能

    1)比较长的名称是否能查到?

    2)空格 或空

    3)名称中含有特殊字符,如:' $ % & *以及空格等

    4)关键词前面或后面有空格

    5)如果支持模糊查询,搜索名称中任意一个字符是否能搜索到

    6)输入系统中不存在与之匹配的条件

    7)两个查询条件是否为21,来回选择是否出现页面错误

    8)输入脚本语言,如:<script>alter(abc)</script>

     

    3、添加、修改功能

    1)是否支持tab

  • XSS 简单攻击

    2010-07-20 11:34:27

    在输入框中输入 >'><script>alert(“XSS”)</script>后,竟然能执行,记录下来.......
  • 手机接入点设置(转)

    2010-03-14 14:23:26

    注:本教程的方法目前只是针对中国移动的SIM卡,中国联通和中国电信的以后再说。现在中国移动已经不区分cmwap和cmnet接入点,以前是分开收费的,呵呵,当然cmnet接入点速度快啦,所以修改接入点,尽情冲浪吧 O(∩_∩)O~

    一、针对NOKIA手机的设置方法(其他品牌手机大同小异,大家灵活运用):

    1,进入功能表—设置—配置设置—这里要分类讨论了:

    ①找到首选接入点,里面应该有一个或多个默认的接入点,按左选择键(就是接听键上面的按键,屏幕左下角的那个键),选择“操作”,点“详情”,即可查看是什么接入点,应该是cmwap或cmnet接入点(字母大小写是一样的)。如果有cmnet或CMNET接入点,就选择它就行了。如果没有,看方法②

    ②既然没有cmnet接入点,我们就自己添加一个吧,在“配置设置”中,找到“个人配置”,,选“操作”—“新增”—“接入点”,然后出现了接入点的设置,接入点名称,就输cmnet吧,接入点设置中的传输方式改为cmnet或CMNET,别的不用改,一直返回到配置设置中,到首选接入点,选择你刚刚设置的cmnet接入点就行啦。

    PS:终于写好了,不知道大家能理解我的意思不,感觉表达起来比较困难,最好要设置的直接把手机给我,几秒帮你搞定,呵呵,不清楚地话,大家留言啊。

    注:

    ①有些手机软件不支持cmnet接入点,所以你要用的话要改回cmwap,方法一样。目前已知支持cmnet的接入点的手机软件有:QQ,UC浏览器,人人2009。当然有些手机软件的设置中可以选择接入点的,比如人人2009,自己灵活运用吧。

    ②还要注意,对于可以设置接入点的软件,选择接入点时要和你手机中选择的接入点一样,比如你用人人2009时,选择cmwap,但在手机本身的接入点选择的是cmnet,那肯定上不了网啊,就不要怨天尤人咯,呵呵。

    ③有些手机网站也不支持cmnet接入点,访问这些网站要改回cmwap

     

    WLAN 无线上网设置方法
    无线上网设置方法
    手机设置(按WEP加密方式设置)
    1)进入设置-->连接设置-->打开接入点-->选择-->新增接入点-->使用默认设置-->
    (2)连接名称(这里可以随便起名如:HOME)-->数据承载方式-->选择"无线局域网"-->WLAN接入点名称(选择自动搜索)-->网络状态(公开)- ->WLAN网络模式(基础网络)-->WLAN安全模式(如果之前路由器已经设置了密码,这里就选择"WEP",,如果没有设置密码的这里就是"开放式网络 -->WLAN安全设置(使用的WEP密钥"#1"-->鉴定类型"打开"-->WEP加密"64位"-->WEP密钥格式"十六进制"-->WEP密钥 再输入主页,,就完成......然后打开网络...应该就可以上网了

  • 工作总结(二)

    2010-02-20 10:00:03

  • 工作小结(一)

    2010-01-24 20:43:09

  • vm linux网络设置

    2009-12-21 22:17:01

    转自:http://www.5dlinux.com/article/1/2007/linux_7862.html
       今天试了很多种方法,都是网上看到的,有的说要桥接方式,NAT方式,又说要如何设VMnet1,VMnet8,其实不用那么复杂,按照以下方法就行

      1,选桥接方式(其实这个关系不大,关键选个方便)

      (1)Bridged方式
      用这种方式,虚拟系统的IP可设置成与本机系统在同一网段,虚拟系统相当于网络内的一台独立的机器,与本机共同插在一个Hub上,网络内其他机器可访问虚拟系统,虚拟系统也可访问网络内其他机器,当然与本机系统的双向访问也不成问题。

      (2)NAT方式
      这种方式也可以实现本机系统与虚拟系统的双向访问。但网络内其他机器不能访问虚拟系统,虚拟系统可通过本机系统用NAT协议访问网络内其他机器。

      NAT方式的IP地址配置方法:虚拟系统先用DHCP自动获得IP地址,本机系统里的VMware services会为虚拟系统分配一个IP,之后如果想每次启动都用固定IP的话,在虚拟系统里直接设定这个IP即可。

      (3)host-only方式
      顾名思义这种方式只能进行虚拟机和主机之间的网络通信,既网络内其他机器不能访问虚拟系统,虚拟系统也不能访问其他机器。

      2,先用DHCP自动获得IP地址,用ifconfig命令查看得到的IP地址,我的是192.168.1.2,然后把得到的这个IP,设为手动IP(并不是你爱设什么就设什么),子掩码255.255.255.0,网关(设自己局域网的)

      3,重启网络服务service network restart就可以上网啊,跟主机连通。
    cd /etc/sysconfig/network-scripts/
  • 如何找出深层次bug

    2009-12-21 15:17:18

      好久没有写日志了,近一段时间,工作不忙,但心里很紧张,希望事情能顺利进展。刚才看到一篇文章,感觉写的很不错,转过来以备以后学习之用。

       转自http://www.51testing.com/?2730

       在我们日常的测试活动中,单纯的功能界面测试(黑盒测试)发现的缺陷质量不高,即使发现了,也很少能从根本上去定位,这样的bug提交上去,给我们的研发同事修复带来了困难,同时也不利于提高我们自身的能力。这里我介绍一下个人的经验。

    1、按照需求说明编写用例,然后严格执行,这个方法最常见。

    2、在发现问题后,不要立刻就想着提交bug,应该做下记录,然后自己尝试着去分析这个问题产生的原因,比如看一下源代码,有些问题测试人员是可以自己定位的,只要自己确认了,提交上去的bug质量会更高。比如,执行搜索的时候,输入某个字段值,没有搜出来,查看代码后,发现sql语句并未执行,这时,我们再提交bug,描述里可以具体到那个页面文件,那个源代码,研发同事定位也方便,同事也对我们的技术能力认识上有改变。

    3、如果测试环境带有控制平台,比如tomcat,jboss,weblogic等等,都有控制平台,那么我们测试的时候,不仅仅需要关注前台的页面表现,还要看监控平台上的信息日志。有些系统对错误页面做了处理,我们在发现这类问题的时候,顶多将处理过的错误页面写到bug中,根本的原因可能无法得知,其实我们可以利用控制平台获取真正的错误原因,写到bug中。

    4、结合数据库进行测试,一般流程性的测试,最重要的就是数据在数据库中的状态变化。比如移动的项目,很多是异步的,光从页面是看不到效果的,所以我们可以结合数据库进行测试,弄清楚数据在数据库中的流转流程,这样才能发现更深层的bug,当然需要我们掌握数据库的使用,尤为重要要的是sql语句。举个例子,进行添加操作的时候,添加完成后没有反应,可能有两种情况,第一,添加根本未成功,第二,添加成功了,没回显出来,那么我们可以通过sql查一下添加的数据,如果数据库中有了,就说明回显出了问题,如果没有,就说明insert 出了问题。

    5、可以查看系统的日志检查测试过程中的问题。一切异常都需要关注

  • XP,ASP,IIS配置,出现不能注册问题,解决方法

    2009-11-08 21:46:38

    出现无法对数据库进行写操作,所有与数据库相关的提交操作都是错误多多,且局域网用户也无法访问自已的网站。

    这主要是数据库只读,只需要把数据所在文件夹设置一下安全性即可,哪么怎么设置解决呢?
    1.工具-》文件夹选项-》查看-》把 使用简单文件共享(推荐)前面的扣去掉。
    2.把网站数据库所在文件夹安全性设置一下,Users的安全性设置为完全控制。

    按照如上方法,问题解决,好高兴。
411/3123>
Open Toolbar