我的QQ号: 36375 8373(昵称“雨巷”) ,欢迎测试同行能互相学习交流

发布新日志

  • 进入软件测试行业的六年感悟

    Slience 发布于 2012-05-17 15:20:29

    发布时间: 2012-4-24 11:04 作者: 高翔 来源: 51Testing软件测试网采编 
     
    来淘宝测试部三年了,也就是意味着我进入测试行业也快到六年的时间了。或多或少也有自己的一些感悟,而且不同阶段的感悟会一样。自己在淘宝的每一年的纪念日的时候都会写篇个人总结来慰问下自己。

      关于这次在淘三年的内容,我自己也是思索了好久,不知道要写什么,测试感悟的、测试技术的、测试方法的各个方面都想写,又都不想写。

      都想写的理由就是本身测试行业就是个比较工程和系统性的行业,自然有自己的一些领域知识,说太少了,怕有些人真的以为测试就是点点鼠标而已。

      都不想写的理由就是怕说太多了,就复杂了,就更让人摸不着头脑了;而且很多观点和事情不是说说就能明白的,只有自己亲身经历了才有深刻的体会。也所谓 如人饮水,冷暖自知。

      最后还是决定好好回顾下这几年的测试想法,因为这几年测试行业发生了很大的变化,不仅仅是敏捷测试、新测试技术、开发自测等等,都会影响我自己个人在测试行业的发展和能力的提升。真的怕自己走过弯路,所以需要不停的反省自己,这个能力是不是必须的、这个技术是不是应该需要了解的等等。

      介于北京的崔启亮的建议,还是确定了自己的部分写作思路,也大致分成几个部分吧。

      遇到的困难以及解决办法

      第一个三年:

      在06年毕业后的测试三年中,遇到了一些基础困难,幸好自己在观察和学习的同时,很快就能解决这些问题。 由于之前写过一个blog介绍了部分问题,大家可以参考下:http://www.51testing.com/html/70/n-807570.html

      但是这边我还想发表下自己的观点,是针对于黑盒测试方法来说的。 记得几天前讨论是否需要QA的时候,段念 写个一篇blog来说明 一个正常的工程师 都能在一个下午学会和理解大部分的黑盒测试方法。 对此观点,我是不敢苟同的,这就讨论到这些黑盒测试方法的深度的问题了。

      (0)学会和理解测试方法的使用步骤是很简单的,但是真正的在项目需求中应用起来可不是一朝一夕的。这就好比给你一张扑克一样,高手就能拿它杀人,一般的人能做到什么程度呢。 这个也很像有些人能发现你不能发现的bug一样。至于原因有很多,具体看在淘两年的blog。

      (1)谈谈我自己的感想吧,我自己在工作前两年也是认为这个黑盒测试方法一下午就可以学会的,找几个例子试着使用下,感觉自己掌握到这些黑盒测试方法,但是后来我看过很多这些测试方法的背景以及应用的注意点后。我发现自己真的是了解了一些皮毛,没有深入的了解。对于个项目需求,如何快速且完整的应用这些黑盒测试方法设计出不多不少的测试用例,这个需要的经验的积累,也就是你测试价值的核心体现。

      (2)去年在成都MPD时,很多学员说自己都说自己是工作2-3年的人,已经遇到瓶颈了,感觉测试很单调和无味。我给的建议其实很简单,那就是真正的理解和掌握所有的黑盒测试方法。怎么来验证呢,我自己就是这样:给你一个白板,你能把所有测试方法的5W2H(What、Why、When、Where、Who、How、How Much)都能非常清晰明了的演讲出来,记住是不需要参考ppt或其他资料的情况下。

      就像火影里面的鸣人一样,他只会螺旋丸这个核心的攻击忍术,但是在扩展其他忍术之前,他会把这个忍术的深度发挥到机制,从而研究出威力更强的超大螺旋丸、超大玉螺旋丸、风遁螺旋丸等等。

      在淘宝的这几年也越到了很多的困惑,而且随着年龄的成长,考虑的问题就会越来越犹豫,需要权衡利益的去提升自己和学习。主要考虑的就是测试的深度和广度问题。自己毕竟在测试行业待了那么长时间了,周围其他测试同仁的发展、国外测试行业的发展、自身利益和环境的影响等等,这些都会影响自己对某些测试问题存在个人极端的想法。

      个人认为了解一个人测试的水平,需要考虑其测试行业中的深度和广度的知识。

      测试的广度:主要就是测试相关类型的了解。具体包括如下:需求分析、测试流程、测试管理、开发流程、开发技术、测试模型、基础测试方法和测试技术、功能测试、性能测试、自动化测试(页面自动化、API)、安全测试、可靠性测试、易用性测试、稳定性测试,探索式测试(ET)、基于风险的测试(RBT)、兼容性测试等等。

      测试的深度:也就是对广度说到的某一项你了解到的深度。当然这个深度,每个人都有自己的定位和看法,关键还是看自己是如何来对待的,这边我说下自己对自动化测试的深度的看法吧。

      基础:了解简单的测试脚本/代码的编写,了解不完整的测试框架架构。

      进阶一:快速编写测试脚本/代码,解决部分代码编写的问题,了解完整的测试框架架构。

      进阶二:理解和了解自动化测试设计,自动化测试在项目中的融入和实施策略问题,了解其他类似的测试工具,并能做出正确的判断。

      进阶三:快速编写合理的测试脚本/代码(体现在测试设计和测试数据设计上),指导他人编写可维护性的测试脚本,深入了解测试框架的实现细节和开发技术。

      高级:整体上来解决自动化测试效率和价值的问题,找到测试框架的问题或困难,并能解决它,或提出有效的建议,深入了解其他类似测试框架或工具,并了解其功能技术细节。提升测试框架的应用性和实效性和效率。

      就我个人而言,我一直也在扩大自己的测试广度,也在提升自己的测试深度。在淘宝的这几年,淘宝测试部的发展非常的快速,自己也从中学到了很多,我也庆幸自己在来淘宝之前就把某些的深度问题给解决了,从而可以提高自己其他的广度。

      一开始来淘宝,就选择 自动化测试这个广度,并在页面自动化测试和API接口测试方向 提升自己的深度(这是个长期的过程)。另外也选择了兼容性测试这个 广度,不过这个进展笔记缓慢。接着根据自己的方向和优势,选择了 探索式测试 这个广度,从而在这个领域学习到了更多的知识,从而影响其他广度的选择。接着不停的提升自己在需求分析、测试流程、测试模型、性能测试方面的深度,也会接触安全测试这个广度等。 最近选择了 前端测试和无线测试领域,这也是扩大自己的广度,不断的学习和了解该领域的测试特点和工具。

      给大家的建议是根据公司测试技术的发展策略,有针对性的选择某几个测试广度,然后在其上提升自己的深度。你的测试能力就是 你的广度 * 你的深度。

      不管我去扩大其他的测试广度,有几个测试领域我是必须要求自己,也强烈建议其他测试同仁需要达到的较高深度的。也就是我自己一直深信的测试理念,我是一个测试工程师,你可以说我level不高,考虑不到高层想要的东西。但是我是会追求自己所相信的,那就是测试设计能力:也就是不同测试类型的测试方法的应用能力。不仅仅是有这个能力,而是 更快、更准、更狠的 测试设计。

      个人测试感悟

      0、时刻牢记自己的状态和目标

      你需要确定你目前所在的广度有哪些,和深度是怎么样的。根据自己的特点和测试信念和公司情况,选择深度和广度,然后指定计划和目标,执行下去。这个可以整体上解决 你的瓶颈问题。

      1、开发和测试是亦敌亦友的关系

      以前一个测试同仁说过,没有和开发吵过架的测试不是一个好测试。我虽然不是很认可,但是他还是有一定的道理,本身开发和测试的立场和思维逻辑就不一样,短时间较难改变,那这里就需要表现测试的价值。但是测试需要开发的帮助才能更好的理解设计和代码,才能更好的设计用例,才能更好的保证质量,才能更好的提升自己的技能。这是个平衡,测试和开发走的太近不好,走的太远也不好。不要说开发和测试共享质量、共同承担责任啥的,目前国内是这样,以后可能会不一样。

      2、测试需求分析时多问为什么

      需求评审和需求分析,对应大多数测试同仁来说是个不易提高的地方,也是很难传承经验的地方,这里还是需要去学习一些需求分析方法,总体上就是建议你凡是多问问什么、为啥会这样、还有没有更好的。

      3、验证bug时多看看code change

      记得在华为和微软Onsite测试的时候,就讨论过了很多次,我还是很喜欢在验证bug时看code change。看不懂的地方直接问开发,不断的提升自己在代码方面的经验和敏感度,那段时间真的很快乐。后来我还会参与bug fix,这些都是多看code change的后期提升,让自己更加有价值,不仅仅能发现bug,还能fix bug。

      4、持续优化你的测试设计

      不管是项目还是产品,你只要是负责人,一定要保证该产品或项目的测试设计是最新状态,并且在不同的信息输入期间都有新版本的测试设计产出,特别是测试执行后期,那些未通过测试用例发现bug的用例,一定要保证测试设计的时效性和完整性和最新性。

      5、没事多看看其他人提的bug

      线下bug场景和线上故障的场景都是非常好的案例,不是单纯的由某个黑盒测试方法能发现的,所以我们需要关注这些场景案例,总结起来,并转换为自己所用。这个经验积累不是那么容易看出来,而且经验也不是那么容易show出来,但是不要低估它,关键时刻就靠他了。

      6、 控制自动化和它的价值

      这里让大家理解自动化测试的价值和目的是没有任何问题,关键是控制它。根据自己产品的特点要找到一个平衡点,不要盲目的自动化。一定要控制手工测试用例、自动化测试用例的比例(UI级别、API级别的)。不要让它成为你的累赘,不要让你每次的脚本排查成为惯例现象。

      7、坚持自己选择的测试信念

      之前很早就提到过test school,建议每个人根据自己的个人信仰和特点来选择某个test school。因为一旦你选择是某个school的人物,你就会学习这个school的很多测试理念和测试想法,坚信它们并在自己的团队中应用起来。我个人就是属于context-driven school。

      8、用户体验和代码完美性是王道

      很多人都应该说过测试人员测试就是应该站在用户角度去思考问题,多去考虑用户体验,的确这是个能帮助测试人员研究用户和提升易用性测试的一个途径,另外可以多看看用户提供的反馈意见,完善自己的测试思路和需求分析思路。另外一点就是,我们很多bug开发都会说用户不会这么去做,几乎不可能的,所以这个bug是invalid的。我们不仅仅是考虑用户应该做什么,我们还要考虑用户不应该做什么,有可能做什么,能够做什么。这些都是不一样的,多从代码健壮性和容错性考虑代码的完美性。

      9、享受测试带来的一切

      不管你是毕业就从事测试工作,还是先干开发再转测试,不管你做测试的原因和动机是什么,个人建议你只要还在测试行业,试着去发现测试的美,不要人云亦云,也不要固步自封。测试会让你开心、会让你单调、会让你愤怒、会让你痛苦、会让你疯狂、会让你无味。不要担心自己会不会失业或没有价值,不管怎样,提升自己的广度和深度,逐步的享受测试带来的一切。

      测试的发展趋势和职业发展

      看这几年,国内的测试发展还是不错的。不过相比较国外来说,我还是比较悲观的,测试和开发一样还是至少落后于国外10年。我们这几年在不停的学习和实践自动化测试、探索式测试、敏捷测试、基于模型的测试等等。很多国外走过的弯路,国内的我们还是在走,这似乎就是历史的轮转。

      个人认为测试的多元化发展还是一个主要的方向,也就是测试本身所提供的价值。测试手段的多样性和深度是必须要经过的环节。个人认为没有一到两种测试方法、技术、手段能够解决被测产品的所有测试任务,我们需要不断的从不同角度去测试,去工具SUT,最近流行的分层测试、敏捷测试其实都是基于这个认可。对于持续集成,个人认为只要自动化测试不消失,事实上他的价值还是不错的,也应该不会出现这个情况,那持续集成就还是基础的测试底层框架搭建。只是这个持续集成的作用,我们现在还只用到了不到五成,接下来大家应该会在这方面有所突破,不过这方面还是有难度的,且不好考核。

      另外个就是提升开发自测,提升开发自测的质量对测试来说,实在是太重要了,但是不意味着测试可以掉以轻心。目前的开发自测状况是开发人员发现20%的bug后,到时间了,开始提测。测试这边发现70%的bug,到时间了,该上线了。那么开发自测的目标就是开发人员发现60%的bug,fix后,提测。测试这边发现35%的bug,fix后上线。表面上看总体上只多发现了5%的bug,而测试发现bug也减少了,但是从开发整体进度和项目进度上来说,可是个非常大的进步,绝对的快速发布了,测试人力成本也会减少较多。

      由于答应了某位测试同仁,这里大致说下探索式测试的发展。个人是在09年底开始了解ET,目前淘宝在ET方面并没有大范围的展开,还是在某些测试组、某些项目实施了不同形式的ET方式(部分项目是Freestyle形式,部分是ET辅助或bug bash的,主要是我这边来把控的,我个人时间有限,你懂的),至于结果,仁者见仁智者见智。大家也可以我个人其他的blog里面看到,至于工具使用的是Freemind和Session tester。个人认为ET应该是未来测试发展的某个重要的方向,几乎可以和自动化测试齐步,特别在ROI上,自动化测试肯定会低于ET的,但是事物都有两面性,ET必然有它不完整、不成熟的阶段,这个阶段需要大家一起去完善,一起去坚持自己的测试信念。

      关于职业发展,我是想走技术的,但是我自己也迷茫了很多次,做到什么样的程度呢,我的测试广度和深度到底要达到什么样的程度呢?公司需要我这个测试广度吗?公司需要我这个测试广度下面的这个深度吗?是不是还需要再深入一点呢?我心里有很多这样的迷惘。比如开发技术就是一个矛盾点,这个深度真的不是那么容易把握的,大家都知道了解开发知识、懂开发知识对做好测试是有益的,但是到底应该懂得啥程度呢,能带来多大的好处呢,啥情况下呢,开发自己都痛苦的学来学去,测试真的一定要跟着后面吗?这个精力我是否应该多了解下兼容性测试呢?是不是应该多了解下RBT呢?我心里确实有很多的矛盾,很多次我都不知道怎么过来的。不过我还是有自己的决定,我会尽量地去寻找自己的平衡,时刻的去review自己的状态,自己的这个测试广度达到了什么样的深度了,是不是可以暂停下,去提升下其他测试广度的深度了。

      想走管理的,就是测试管理了,多考虑一线测试工程师的生活,他们是如何进行测试的,他们遇到什么问题,解决问题才是王道,解决他们的痛苦,提升他们的效率,让大家快速的干完,可以去做些自己感兴趣的事情。另外就是多考虑下国外的测试新技术,有些不一定现在有用,以后呢,做些储备是必要的,就像军队一样,平时没事做,关键还要用的,特别是特种部队了,各方面要求都很高,做这些储备更需要管理层的觉悟和想法了。

      想走技术的路线,就是尽最大的努力提升开发技术,另外就是多扩展自己的测试广度吧,争取在几个核心的测试广度上达到最深的深度,成为真正的测试专家。

      另外就是可以考虑走产品经理或其他路线的,比如SQA等。另外提一下,我也喜欢叫tester,不喜欢被叫QA。

      废话说的有点多,期望对大家有帮助,大家有任何不同的观点,欢迎提出。

  • 软件测试中的43个功能测试点

    123qqaz 发布于 2011-02-20 21:18:39

    功能测试就是对产品的各功能进行php?name=%D1%E9%D6%A4">验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。针对web系统的常用测试方法如下:  

    1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。可以使用一些工具,如LinkBotPro、File-AIDCS、HTML Link Validater、Xenu等工具。LinkBotPro不支持中文,中文字符显示为乱码;HTML Link Validater只能测试以Html或者htm结尾的网页链接;Xenu无需安装,支持asp、do、jsp等结尾的网页,xenu测试链接包括内部链接和外部链接,在使用的时候应该注意,同时能够生成html格式的测试报告。如果系统用QTP进行自动化测试,也可以使用QTP的页面检查点检查链接。

    2. 相关性检查:功能相关性:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确,常见的情况是,增加某个数据记录以后,如果该数据记录某个字段内容较长,可能会在查询的时候让数据列表变形。
    数据相关性:下来列表默认值检查,下来列表值检查,如果某个列表的数据项依赖于其他模块中的数据,同样需要检查,比如,某个数据如果被禁用了,可能在引用该数据项的列表中不可见。

    3. 检查按钮的功能是否正确:如新建、编辑、删除、关闭、返回、保存、导入,上一页,下一页,页面跳转,重置等功能是否正确。常见的错误会出现在重置按钮上,表现为功能失效。

    4. 字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度。还要检查需求规定的字符串长度是否是正确的,有时候会出现,需求规定的字符串长度太短而无法输入业务数据。

    5. 字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型。

    6. 标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键。看系统处理是否正确。常见的错误是系统对空格的处理,可能添加的时候,将空格当作一个字符,而在查询的时候空格被屏蔽,导致无法查询到添加的内容。

    7.特殊字符检查:输入特殊符号,如@、#、$、%、!等,看系统处理是否正确。常见的错误是出现在% ‘ " 这几个特殊字符

    8. 中文字符处理: 在可以输入中、英文的系统输入中文,看会否出现乱码或出错。

    9. 检查信息的完整性: 在查看信息和更新信息时,查看所填写的信息是不是全部更新,更新信息和添加信息是否一致。要注意检查的时候每个字段都应该检查,有时候,会出现部分字段更新了而个别字段没有更新的情况。

    10. 信息重复: 在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理。

    11. 检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按“delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除, 看是否正确处理。如果有多页,翻页选,看系统是否都正确删除,并且要注意,删除的时候是否有提示,让用户能够更正错误,不误删除。

    12. 检查添加和修改是否一致: 检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.

    13. 检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错.

    14. 重复提交表单:一条已经成功提交的纪录,返回后再提交,看看系统是否做了处理。对于Web系统来说,可以通过浏览器返回键或者系统提供的返回功能。

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

    16. 搜索检查: 有搜索功能的地方输入系统存在和不存在的内容,看搜索结果是否正确.如果可以输入多个搜索条件,可以同时添加合理和不合理的条件,看系统处理是否正确,搜索的时候同样要注意特殊字符,某些系统会在输入特殊字符的时候,将系统中所有的信息都搜索到。

    17. 输入信息位置: 注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方。

    18. 上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。下载文件能否打开或者保存,下载的文件是否有格式要求,如需要特殊工具才可以打开等。上传文件测试同时应该测试,如果将不能上传的文件后缀名修改为可以上传文件的后缀名,看是否能够上传成功,并且,上传文件后,重新修改,看上传的文件是否存在。

    19. 必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加“*”;对必填项提示返回后,焦点是否会自动定位到必填项。

    20. 快捷键检查:是否支持常用快捷键,如Ctrl+C、 Ctrl+V、 Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。

    21. 回车键检查: 在输入结束后直接按回车键,看系统处理如何,会否报错。这个地方很有可能会出现错误。

    22.刷新键检查:在Web系统中,使用浏览器的刷新键,看系统处理如何,会否报错。

    23.回退键检查:在Web系统中,使用浏览器的回退键,看系统处理如何,会否报错。对于需要用户验证的系统,在退出登录后,使用回退键,看系统处理如何;多次使用回退键,多次使用前进键,看系统如何处理。

    24.直接URL链接检查:在Web系统中,直接输入各功能页面的URL地址,看系统如何处理,对于需要用户验证的系统更为重要。如果系统安全性设计的不好,直接输入各功能页面的URL地址,很有可能会正常打开页面。

    25.空格检查:在输入信息项中,输入一个或连串空格,查看系统如何处理。如对于要求输入整型、符点型变量的项中,输入空格,既不是空值,又不是标准输入。

    26.输入法半角全角检查:在输入信息项中,输入半角或全角的信息,查看系统如何处理。如对于要求输入符点型数据的项中,输入全角的小数点(“。”或“.”,如4.5);输入全角的空格等。

    27.密码检查:一些系统的加密方法采用对字符Ascii码移位的方式,处理密码加密相对较为简单,且安全性较高,对于局域网系统来说,此种方式完全可以起到加密的作用,但同时,会造成一些问题,即大于128的Ascii对应的字符在解密时无法解析,尝试使用“uvwxyz”等一些码值较大的字符作为密码,同时,密码尽可能的长,如17位密码等,造成加密后的密码出现无法解析的字符。

    28.用户检查:任何一个系统,都有各类不同的用户,同样具有一个或多个管理员用户,检查各个管理员之间是否可以相互管理,编辑、删除管理员用户。同时,对于一般用户,尝试删除,并重建同名的用户,检查该用户其它信息是否重现。同样,提供注销功能的系统,此用户再次注册时,是否作为一个新的用户。而且还要检查该用户的有效日期,过了有效日期的用户是不能登录系统的。容易出现错误的情况是,可能有用户管理权限的非超级管理员,能够修改超级管理员的权限。

    29.系统数据检查:这是功能测试最重要的,如果系统数据计算不正确,那么功能测试肯定是通不过的。数据检查根据不同的系统,方法不同对于业务管理平台,数据随业务过程、状态的变化保持正确,不能因为某个过程出现垃圾数据,也不能因为某个过程而丢失数据。

    30.系统可恢复性检查:以各种方式把系统搞瘫,测试系统是否可正常迅速恢复。

    31.确认提示检查:系统中的更新、删除操作,是否提示用户确认更新或删除,操作是否可以回退(即是否可以选择取消操作),提示信息是否准确。事前或事后提示,对于Update或Delete操作,要求进行事前提示。

    32.数据注入检查:数据注入主要是对数据库的注入,通过输入一些特殊的字符,如“’”,“/”,“-”等或字符组合,完成对SQL语句的破坏,造成系统查询、插入、删除操作的SQL因为这些字符而改变原来的意图。如select * from table where id = ‘ ’ and name = ‘ ’,通过在id输入框中输入“12’-”,会造成查询语句把name条件注释掉,而只查询id=12的记录。同样,对于update和delete的操作,可能会造成误删除数据。当然还有其它一些SQL注入方法,具体可以参考《SQL应用高级SQL注入.doc》,很多程序都是基于页面对输入字符进行控制的,可以尝试跳过界面直接向数据库中插入数据,比如用Jmeter,来完成数据注入检查。

    33.刷新检查:web系统中的WebForm. 控件实时刷新功能,在系统应用中有利有弊,给系统的性能带来较大的影响。测试过程中检测刷新功能对系统或应用造成的影响(白屏),检查控件是否回归默认初始值,检查是否对系统的性能产生较大影响(如每次刷新都连接数据库查询等)。

    34.事务检查:对于事务性操作,断开网络或关闭程序来中断操作,事务是否回滚。

    35.时间日期检查:时间、日期验证是每个系统都必须的,如2006-2-29、2006-6-31等错误日期,同时,对于管理、财务类系统,每年的1月与前一年的12月(同理,每年的第1季度与前一年的第4季度)。另外,对于日期、时间格式的验证,如2006年2月28日、2006-2-28、 20060228等。日期检查还要检查日期范围是否符合实际的业务,对于不符合时间业务的日期,系统是否会有提示或者有限制。

    36.多浏览器验证:越来越多的各类浏览器的出现,用户访问Web程序不再单单依赖于Microsoft Internet Explorer,而是有了更多的选择:Maxthon、Firefox、Tencent Traveler等,考虑使用多种浏览器访问系统,验证效果。

    37.安装测试:对于C/S架构的系统,安装程序的测试是一个重要方面,安装程序自动化程度、安装选项和设置(验证各种方案是否都能正常安装)、安装过程中断测试、安装顺序测试(分布式系统)、修复安装及卸载测试。

    38.文档测试:主要是对用户使用手册、产品手册进行测试,校验是否描述正确、完整,是否与当前系统版本对照,是否易理解,是否二义性等。

    39.测试数据检查:事实告诉我们,测试数据比代码更有可能是错的,因此,当测试结果显示有错误发生的时候,怀疑代码错误前要先对测试数据检查一遍。

    40.请让我的机器来运行:在某些项目中,出现一个病态的问题:系统没有问题呀,它在我的机器上是能够通过的。这就说明了其中存在着和环境相关的BUG。“是否所有的一切都受到了版本控制工具的管理?”、“本机的开发环境和服务器的环境是否一样?”、“这里是否存在一个真正的BUG,只不过是在其他的机器里偶然出现?”。所有的测试必须在所有系统要求的机器上运行通过,否则的话,代码就可能存在问题。

    41.Ajax 技术的应用:Ajax有很多优点,但也有很多缺点,如果利用优点、避免缺点,是我们对新的Web2.0应用的一个挑战。而Ajax的应用最直接的问题就是用户体验,用户体验的效果直接关系到是否使用Ajax技术。“会做,并不意味着应该做、必须做”,这就是对Ajax技术的很重要的注解。

    42.Ajax技术的应用:Ajax采用异步调用的机制实现页面的部分刷新功能,异步调用存在异常中断的可能,尝试各种方法异常中断异步的数据调用,查看是否出现问题。在这里遇到的一个问题就是对日期控件的操作,已经如果页面数据较多的时候的刷新。

    43.脚本错误:随着Ajax、IFrame等异步调用技术的发展,Javascrīpt技术也越来越受到开发人员的重视,但Javascrīpt存在调试困难、各浏览器存在可能不兼容等问题,因此在Web系统中

    ==============================================================

    1、页面链接是否正确;

    2、关联性,一个功能是否会对其他功能造成影响;

    3、按钮功能测试,删除不选、多选、翻页选择;

    4、字符串长度、类型、符号、特殊符号、中英文、空格、半角全角;

    5、信息输出完整性;

    6、信息提交重复处理;

    7、添加修改,修改重名;

    8、重复提交、重复删除、多用户并发操作;

    9、索引检查;

    10、输入信息、光标位置、快捷键使用;

    11、上传下载文件;

    12、必选项测试;

    13、回车、刷新、浏览键回退检查(主要是需要验证的地方);

    14、直接URL链接检查;

    15、密码检查、长度、半角全角;

    16、不同用户权限检查;

    17、系统数据计算检查;

    18、系统健壮性检查;

    19、确认提示检查;

    20、数据注入检查,一般程序是屏蔽掉特殊字符或者敏感字符;

    21、刷新检查,主要是实时刷新功能;

    22、事物检查,失败异常回滚;

    23、时间格式检查;

    24、浏览器兼容性检查;

    25、安装、文档测试;

    26、测试数据检查,即对自己测试提供数据进行检查;

Open Toolbar