51Testing软件测试网

 
 

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿(3)

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔档案

  • 2021年6月 (1)
  • 2021年3月 (1)
  • 2020年9月 (1)
  • 2020年3月 (1)
  • 2020年1月 (2)
  • 2019年12月 (3)
  • 2019年11月 (5)
  • 2019年10月 (1)
  • 2019年9月 (2)
  • 2019年8月 (14)
  • 2019年7月 (20)
  • 2019年6月 (15)
  • 2019年5月 (12)
  • 2019年4月 (19)
  • 2019年3月 (20)
  • 2019年2月 (9)
  • 2019年1月 (16)
  • 2018年12月 (17)
  • 2018年11月 (21)
  • 2018年10月 (16)
  • 2018年9月 (20)
  • 2018年8月 (22)
  • 2018年7月 (3)
  • 2018年6月 (1)
  • 2018年5月 (7)
  • 2018年4月 (1)
  • 2018年3月 (3)
  • 2018年2月 (6)
  • 2018年1月 (2)
  • 2017年9月 (8)
  • 2017年8月 (28)
  • 2017年7月 (3)
  • 2016年11月 (1)
  • 2016年6月 (1)
  • 2016年4月 (1)
  • 2016年2月 (2)
  • 2015年7月 (1)
  • 2015年5月 (1)
  • 2015年4月 (2)
  • 2015年3月 (1)
  • 2015年2月 (2)
  • 2015年1月 (6)
  • 2014年12月 (3)
  • 2014年11月 (3)
  • 2014年10月 (3)
  • 2014年9月 (2)
  • 2014年8月 (8)
  • 2014年7月 (16)
  • 2013年12月 (5)
  • 2013年11月 (1)
  • 2013年10月 (3)
  • 2013年9月 (2)
  • 2013年8月 (2)
  • 2013年7月 (3)
  • 2013年5月 (1)
  • 2013年4月 (2)
  • 2013年3月 (2)
  • 2013年2月 (3)
  • 2013年1月 (4)
  • 2012年12月 (4)
  • 2012年11月 (4)
  • 2012年10月 (3)
  • 2012年9月 (4)
  • 2012年8月 (3)
  • 2012年7月 (4)
  • 2012年6月 (2)
  • 2012年5月 (2)
  • 2012年4月 (1)
  • 2012年3月 (2)
  • 2012年2月 (2)
  • 2012年1月 (1)
  • 2011年12月 (3)
  • 2011年11月 (2)
  • 2011年10月 (1)
  • 2011年9月 (4)
  • 2011年8月 (3)
  • 2011年7月 (2)
  • 2011年6月 (4)
  • 2011年5月 (4)
  • 2011年4月 (2)
  • 2011年3月 (4)
  • 2011年2月 (4)
  • 2011年1月 (7)
  • 2010年12月 (7)
  • 2010年11月 (5)
  • 2010年10月 (4)
  • 2010年9月 (7)
  • 2010年8月 (7)
  • 2010年7月 (3)
  • 2010年6月 (3)
  • 2010年5月 (4)
  • 2010年4月 (4)
  • 2010年3月 (5)
  • 2010年2月 (3)
  • 2010年1月 (4)
  • 2009年12月 (3)
  • 2009年11月 (3)
  • 2009年10月 (1)
  • 2009年9月 (3)
  • 2009年8月 (2)
  • 2009年7月 (3)
  • 2009年6月 (1)
  • 2009年5月 (2)
  • 2009年4月 (4)
  • 2009年3月 (5)
  • 2009年1月 (1)
  • 2008年11月 (2)
  • 2008年7月 (5)
  • 2008年6月 (4)

文章分类

  • 行业资讯(45) (rss)
  • 软件业务知识(43) (rss)
  • 软件开发知识(33) (rss)
  • 软件测试工具(39) (rss)
  • 软件测试技术(157) (rss)
  • 软件测试管理(40) (rss)
  • 软件测试职业发展(57) (rss)

51testing软件测试网

搜索

  •  

最新评论

  • 1. re: 淘宝后台技术大揭秘,不看这篇你双十一要损失几个亿!
  • 关注官方公众号“Atstudy网校”,点击中间菜单栏“双11”,领取双十一技术内幕资料。
  • --51testing
  • 2. re: 软件测试流程的一点感悟
  • 提交缺陷时只需要描述现象即可,过多的分析可能会误导开发
  • --凡客诚品
  • 3. re: 软件测试流程的一点感悟
  • 阿达宿建德江阿斯顿
  • --凡客礼品卡
  • 4. re: 手机软件测试的经验总结
  • 很好啊~不错
  • --乐蜂网
  • 5. re: 手机软件测试的经验总结
  • 很好啊~
  • --罗莱家纺

阅读排行榜

  • 1. 软件测试流程的一点感悟(1091)
  • 2. 5年经验之谈:月薪3000到30000,测试工程师的变“行”记!(940)
  • 3. 测试自动化及软件测试工具的比较(858)
  • 4. 银行线上信贷系统如何做好接口测试?手把手教你接口工具Postman(825)
  • 5. 软件为什么要做异常测试?测试员必知的22个测试点总结!(807)

评论排行榜

  • 1. 软件测试流程的一点感悟(4)
  • 2. 软件测试的原则和经验 (4)
  • 3. 嵌入式软件测试技巧(2)
  • 4. 手机软件测试的经验总结 (2)
  • 5. 常用软件测试工具的分析与比较(1)

Powered by: 博客园
模板提供:沪江博客
IT博客 | 首页 | 发新随笔 | 发新文章 | 联系 | 聚合 | 管理

web测试中需要注意的小地方
总结下遇到的web测试的时候需要注意的地方:
  页面分辨率:
  通常是计算机的默认分辨率,但是还是会有一些老式电脑存在1024*768的情况
  浏览器的兼容性:
  目前市场上的主流浏览器:IE8.0-11,Chrome,Firefox,360浏览器。通常要保持IE和chrome,firefox浏览器下的兼容性,需要保持页面不变型,js均执行正常
  开发设计组需要制定页面设计规范和js设计规范,保证主流的浏览器页面显示兼容性和js设计兼容性。
  易用性:
  Tab键的使用:页面中支持tab按键切换
  Enter键的使用:页面中的某些确定按钮可以使用enter键盘替代
  前进和后退:用户前进和后退有可能会造成数据不完整的提交,重复提交,或者其他的显示问题
  用户删除某个数据前,需要提示用户是否删除,默认焦点选择为“否”
  页面的提示语言,js提示语言,程序提示语言:
  提示风格不一样,或者表达不够清晰
  微软语言标准:
  全角字符和半角字符都要使用一个空格分开
  英文和数字直接要有空格分开
  汉字和英文,数字要有空格分开
  带有汉字的话要用全角字符
  语言中不要混用全角和半角标点
  在语言中,永远不要用“你”这个字,要做进一步的步骤描叙的时候,要多用“请”字
  文字的缩略和折行:
  输入框提交很长的字符,并且不折行,则提交后,页面有可能被拉的非常长,如果要将文字后面的一些文字处理为省略号,需要注意不要将中文截成半个字符
  图片的显示和链接:
  图片是否增加链接通常被开发人员忽略
  图片的显示位置通常会显示不同像素大小和比例的图,所以要明确定义图片的处理策略
  重复提交:
  用户提交数据页面,用户有可能连续多次点击提交按钮,造成数据的重复提交
  用户点击“提交”后,将按钮变成Disable状态
  输入判断问题:
  所有键盘输入的特殊字符,均可以正常保存
  需要特别出处理英文单引号,英文双引号等引起的程序错误的问题
  需要处理“<”“/” “\”等容易保存出错的符号
  做出特殊模块的字符规划
  多个IE同时访问的情况:
  用户可能打开不同的IE使用相同的账户去进行操作,数据是否一致性和同步的问题
  多个IE使用不同用户,cookie操作会不会出现用户信息混乱的问题
  安全考虑:
  不要把密码等敏感的用户信息明文的显示在url中
  即使是传递密码参数,也不要用pwd,passpord这样的参数名称来进行传递,防止被截获
  要在传递参数的操作中使用NoCache参数,防止将url参数进行缓存
  防止Sql注入:
  不要把数据库或程序的如何报错信息显示在页面上
  最好程序能够将select、update、delete 这些关键字都过滤掉,不让用户提交包含这些数据的信息
  数据库中设计到操作权限的表名和字段名别用很通俗易懂的名字
  输入框尽量过滤掉“<>”这样的字符,防止javascript攻击
  关于Cookie:
  Cookie没有设定过期时间
  IE不支持Cookie的时候没有如何提示信息
  Cookie中的敏感信息没有进行加密
  各种资源链接的释放:
  有时候系统莫名访问不了,则有可能是数据库的链接没有释放
  压力测试的时候,连接释放如果效率不高,则有可能出现大量连接超时失败
  预防:系统资源的释放过程,最好通过代码review的方式来互相监督
  关于Keepalive的设置:
  如果需要在一个连接同时获取多个资源,则需要打开apache或resin的Keepalive参数为On,来提高系统的处理能力,减少多次建立连接所消耗的资源,如果大量的处理只是一次性连接,则不要打开
  预防:在实际工作中,需要将keepalive分别设置为On或者Off来验证哪个设置的性能更好
  系统上线后的log配置
  上线以后,要关闭无用大量调试log信息,不要打开过多的log。
       如果大家对软件测试感兴趣,请大家关注51Testing软件测试网。(http://www.51testing.com)
posted @ 2018-01-18 15:51 51testing 阅读(90) | 评论 (0) | 编辑 收藏
 
测试工程师如何薪资过万
   一提到软件测试工程师,很多人就会想到那些反复使用软件,试图在频繁操作中寻找到错误发生的低层次人员或者软件用户。其实这是一种错误的概念,软件测试早已超越了用户使用来发现Bug的基本测试阶段。看着越来越多的新人加入到测试的行业当中是一件欣慰的事,这也说明测试作为一个新兴行业正在不断发展,相较于软件行业中的其它职业――例如软件开发,测试行业还显得比较稚嫩和混乱,人员水平也是良莠不齐,薪资待遇差别也比较大。我想就个人经验谈谈测试工程师如何薪资过万。
  测试工程师的职级划分
  拿微软来讲,微软的软件测试工程师分为三种:测试执行者(Basic Software Tester)、
测试工具软件开发工程(SoftwareDevelopmentEngineer in Test)和高级软件测试工程师(Ad_hoc Tester)
  测试执行者负责理解产品的功能要求,然后根据测试规范和测试案例对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,属于最低级的执行角色。
  测试工具软件开发工程师负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。产品开发后的性能测试、提交测试等过程,都有可能要用到开发的测试工具。对技术要求最强的是这些人,因为它们要具备写程序的技术。“因为不同产品的特性不一样,对测试工具要求也是不同的,就像Windows的测试工具不能用于Office,office的也不能用于SQLserver,微软很多测试工程师就是负责专门为某个产品写测试程序的。”
  而Ad_hocTestet属于比较有经验,自己会找方向并做的很好的测试工程师,这要求具有很强的创造性。并且在很多时候需要带领并管理一个单独的测试团队。
  把微软的测试工程师的职级对应到国内则是:助理测试工程师,测试工程师,高级测试工程师。在国内优秀的测试工程师月薪过万有很多的,高级测试工程师的月薪则大多在2万以上。下面我们说说如何一步步从测试菜鸟晋级到月薪过万的测试工程师。
  测试工程师入门
  对于一个新手,要在各方面培养自己的能力。首先是要理解各种测试流程,并在理解的基础上转化为自己的知识,以后遇到相似的问题能自己去解决。在测试技能上,要知道测试有那些手段,比如压力测试有哪些方法,哪些工具可以辅助做测试。从专业技能上,面向不同的技术方向,像操作系统、网络、通信等都要从专业上深入了解。这三方面要同步去成长。
  能够做到这些相信你在前辈的指导下从事基本的测试工作是没有问题的,迈出了第一步接下来的事情就好办了。
  软件测试工程师需要具备的素质
  因为软件测试仍然处在发展阶段,还没有上升到理论层次。对人员的评测,包括微软在内,都还没有一个统一标准,因此评定软件测试工程师只能根据工作实践进行自然淘汰。
  软件测试对逻辑思维、学习能力、反应要求很高,是否有严密的思维和逆向思维也非常重要。在五六个人的测试小组时,一半以上的Bug都是我找到的。这同我是数学专业的背景关系密切,数学中有逻辑思维的培训,要善于找出来各方面的因素。比如要证明一个定理,各个方面都考虑到,一个条件不满足就无法证明;但如果证明其不成立,最常用的就是找到一个反例,只要有一点证明不成立就可以了,软件测试也是找这一点。
  做测试还要考虑到所有出错的可能性,还要做一些不是按常规做的、非常奇怪的事。除了漏洞检测,测试还应该考虑性能问题,也就是要保证软件运行得很好,没有内存泄漏,不会出现运行越来越慢的情况;在不同的使用环境下,考虑软件的兼容性同样重要。软件测试同产品的规模也有很大的关系,因为软件的bug往往出在大型软件的连接处。
  做软件测试工程师需要对软件抱有怀疑态度。这是因为开发人员喜欢想当然,总是找一些有利于自己程序执行的数据,有些开发人员甚至认为不利于程序执行的数据是对代码的玷污和亵渎。而软件测试却要策略性的准备各种数据,从每个细节上设计不同的应用场景,不去想当然的假定任何一个数据是可行的。
  在职业素质和交际方面方面,并不是测试工程师爱挑别人毛病才好,反而这个工作要求很强的沟通能力。经常的和开发人员进行沟通,说话办事要很得当,不能指责别人,否则会事倍功半。性格随和才能和开发人员顺畅的沟通,对人和对事是完全不同的两个问题。
  能够做到这几点你收获的不但是薪资的增长,职业上的成长和个人能力的提升也很明显,这个时候你关注的就不仅仅是月薪过万了。
  测试工程师的未来
  如果你已经开始从事软件测试工作,千万不要认为软件测试没有什么发展的潜力和前途。很多人开始做测试执行工作时会说很麻烦、很枯燥,只是一味的埋怨,而不是主动的去学习,他没有看到软件测试背后所隐藏的知识。因为学习可以做这些工作,不学习也可以做这些工作,但质量是不同的。有些人自学和请教了很多测试技术和管理方面的知识,公司自然就会在下个项目中去培养他。
  软件测试是正在快速发展,充满挑战的领域。尽管现在单机版桌面软件的测试已经成熟了很多,但对于网络时代的来临,包括微软在内的公司对基于网络的测试也没有一套完整的体系,也是处于探索中,网络中被攻击的可能性太大,这就是为什么黑客在网络上能兴风作浪的原因。网络测试是一个新环境,而且是很大的挑战。
  软件测试未来的发展空间很大,软件测试工程师的职业之路同样充满希望。

End.

更多热门文章请关注51Testing软件测试网!

http://www.51testing.com
posted @ 2017-09-15 10:23 51testing 阅读(111) | 评论 (0) | 编辑 收藏
 
两年软件测试工程师告诉你:他是怎么做测试用例的
入行软件测试行业2年,从事过自动化的测试和手工的功能测试。两年来一直没有总结过自己的工作。每当一听人问起一个简单的问题,如何编写好的测试用例?
  如此简单的问题一问,仔细一想,思绪凌乱无章。这就是没有好好思考过的原因。
  今天总结下自己的看法,如何编写测试用例:
  1、了解软件的原始需求(测试目的)
  在编写一个软件或者模块的测试用例时候,一定要明白这个功能的原始需求,也就是软件的使用者(客户)的需求。理解原始需求后,编写的测试用例才更有目的性。
  2、熟悉软件的功能需求(测试点)
  这个功能需求是指软件的细化需求点,这个一般在需求文档里面都会体现。这里要做的是把需求稳定的“粗略”的需求,细化成一个个小需求点。
  熟悉功能需求后,要知道软件是怎么使用的,这也才能覆盖到各种操作。
  总之,测试用例一定要全部覆盖所以的需求点,这是最基本的一点。
  3、熟悉软件的实现原理(测试点)
  在理解原始需求和软件的功能需求后,软件有什么功能,如何使用就基本上都知道啦。这时候在根据需求编写测试用例,基本上都能覆盖的比较全面。
  在此基础上,熟悉软件的实现原理,理解软件的内部处理。
  (1)熟悉原理的过程是进一步深入熟悉软件的过程。如果单单是从需求点上面覆盖案例,测试用例只能覆盖“表面”的一层。一些内部的处理流程也许没有覆盖到,
  而这些没有覆盖到的代码很可能就是一个风险点。
  (2)熟悉模块原理后,还有一点就是易于分析软件模块的关联性。一个大型的软件,都是一些小模块的组合而成。软件越是大型,耦合就越大。“互相影响”就会越多,
  设计用例单单是从模块本身考虑的话,很可能就会对其他模块造成风险。
  4、用户场景和网上问题(测试点)
  从用户的使用场景考虑,这些在一些网络设备比较重要。比如软件后期在一些真实的使用环境中使用。
  还要就是从一些网上问题总结出来的,那些地方容易出错。在设计案例的时候需要考虑进去
  5、测试用例的框架
  我觉得一个测试用例的框架体现了一个测试人员在设计测试用例的整体思路。框架也是从大到小划分下来,可以是:
  UI界面,功能,容错,兼容,性能等几大类,每个大类在根据软件的逻辑等进行划分成小类,最后细分到测试点。
  6、测试步骤(测试技巧方法)
  前面4点都是从测试点的角度考虑,测试用例在完成测试点外,下来就是测试步骤和测试结果啦。
  测试用例可以写的很详细,也可以写的比较简单。看公司的要求,有些公司要去测试步骤很细很细,包括测试结果和测试步骤一一对应。
  我个人不太认同这种做法,测试用例最重要的我认为是测试点。只要理解了测试目的后,下来的就是测试人员的执行工作啦。如果对一些非常娴熟的测试人员,他们一般
  看测试用例的标题就是知道你测试目的了,具体的操作就是根据他们的测试方法进行测试。如果测试步骤写的很详细的话,一会很耗时间。你要考虑到文字语音的描述,以及一些前置步骤的操作,这也会导致案例有时候像个文章,而且过于详细的会限制执行人员的思维。
  要求测试步骤写的很详细的公司,一般是怕执行人员的执行力不到位,导致没有理解案例的目的,导致漏测。一般出现在新员工对软件系统的不熟悉。
  7、测试用例的一些思路
  在设计案例中,我用的最多的是边界值,等价类,正常和异常的测试。下面是我想到的几个方面:(结合一些网上文章的观点)
  一)从单个模块或者单个功能点考虑
  (1)UI界面(易用性,提示信息,整体布局,色彩,中英文标点错别字)
  (2)数据的多样性
  有效数据
  合法的无效数据(边界值)
  非法和异常数据
  各种数据的组合
  (3)操作多样性
  添加删除编辑查询
  多用户的操作
  (4)容量测试
  (5)用户权限(使用权限)
  (6)升级安装卸载(平滑升级)
  (7)日志相关(包括调试日志)
  (8)软件功能的逻辑划分
  功能上划分未能覆盖的代码逻辑,可以添加白盒灰盒用例;
  (9)关联的功能
  设计关联的测试的用例
  (10)可靠性,容错性
  (11)兼容性(浏览器,系统)
  (12)安全性
  (13)性能(这里的性能是指,单个模块或者子系统的性能)
  总之
  测试用例首先要能覆盖所有功能需求点,然后搞懂软件处理逻辑,可以找开发一起看测试用例,把没有覆盖到的代码流程相应的补充用例。用例覆盖到这2点基本不会出现基本功能的问题。
  在此基础上,可以进行一些可靠性,容错性,兼容性等用例的设计,测试下软件的稳定性。
End.

更多热门文章请关注51Testing软件测试网!

http://www.51testing.com
posted @ 2017-09-14 17:24 51testing 阅读(171) | 评论 (0) | 编辑 收藏
 
提升测试用例专业性的八个步骤
测试用例的编写可不简单呢,写一份专业的测试用例,是所有测试工作者考虑的内容,其实用例的编写是可以通过一些思路来进行,不少比较成熟的公司为了提升用例的专业性,就会有自己的用例库,包括流程、关注点,以及自己定义的模板。
  今天作为测试老鸟的我经过几年的经验沉淀总结出来的一套测试用例编写思路,该思路累计共有八步,经验过验证几乎所有功能性测试都可以依据该架构思路来进行,将最大限度提升用例设计的专业程度
  第一步、UI体验测试
  1.风格、样式、颜色是否协调
  2. 界面布局是否整齐、协调(保证全部显示出来的,尽量不要使用滚动条
  3. 界面操作、标题描述是否恰当(描述有歧义、注意是否有错别字)。
  4. 操作是否符合人们的常规习惯(有没有把相似的功能的控件放在一起,方便操作)
  5. 提示界面是否符合规范(不应该显示英文的cancel、ok,应该显示中文的确定等)
  6. 界面中各个控件是否对齐
  7. 日期控件是否可编辑
  8. 日期控件的长度是否合理,以修改时可以把时间全部显示出来为准
  9. 查询结果列表列宽是否合理、标签描述是否合理
  10. 查询结果列表太宽没有横向滚动提示
  11. 对于信息比较长的文本,文本框有没有提供自动竖直滚动条
  12. 数据录入控件是否方便
  13. 有没有支持Tab键,键的顺序要有条理,不乱跳
  14. 有没有提供相关的热键
  15. 控件的提示语描述是否正确
  16. 模块调用是否统一,相同的模块是否调用同一个界面
  17. 用滚动条移动页面时,页面的控件是否显示正常
  18. 日期的正确格式应该是XXXX-XX-XX或XXXX-XX-XXXX:XX:XX
  19. 页面是否有多余按钮或标签
  20. 窗口标题或图标是否与菜单栏的统一
  21. 窗口的最大化、最小化是否能正确切换
  22. 对于正常的功能,用户可以不必阅读用户手册就能使用
  23. 执行风险操作时,有确认、删除等提示吗
  24. 操作顺序是否合理
  25. 正确性检查:检查页面上的form, button, table, header, footer,提示信息,还有其他文字拼写,句子的语法等是否正确。
  26. 系统应该在用户执行错误的操作之前提出警告,提示信息.
  27. 页面分辨率检查,在各种分辨率浏览系统检查系统界面友好性。
  28. 合理性检查:做delete, update, add, cancel, back等操作后,查看信息回到的页面是否合理。
  29. 检查本地化是否通过:英文版不应该有中文信息,英文翻译准确,专业。
  30.背景灰度冻结
  第二步、功能完整性测试
  1.使用所有默认值进行测试
  2.根据所有产品文档、帮助文档中描述的内容要进行遍历测试
  3.输入判断
  4.所有界面出现是和否的逻辑,要测试
  5.异常处理
  6.敏感词
  7.根据需求文档的流程图遍历所有流程图路径
  8.根据程序内容,遍历if elif else switch的逻辑点要遍历
  9.界面各种控件测试
  第三步、业务流程测试
  业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。
  如某一功能模块具有最基本的增删改查功能,则需要进行以下测试:
  1.单项功能测试(增加、修改、查询、删除)
  2.增加——>增加——>增加 (连续增加测试)
  3.增加——>删除
  4.增加——>删除——>增加 (新增加的内容与删除内容一致)
  5.增加——>修改——>删除
  6.修改——>修改——>修改 (连续修改测试)
  7.修改——>增加(新增加的内容与修改前内容一致)
  8.修改——>删除
  9.修改——>删除——>增加 (新增加的内容与删除内容一致)
  10.删除——>删除——>删除 (连续删除测试)
  第四步、容错机制测试
  1.输入系统不允许的数据作为输入。
  2.把某个相关模块或者子系统停掉,验证对当前系统的影响。
  3.配置文件删除或者配置错误。
  4.数据库注入错误数据。
  第五步、常规性测试
  1.系统不间断运行(7*24),验证是否内存泄露、系统其他资源是否存在泄露
  2.如果很紧急上线,可以跑一晚上或者周末跑两天。
  一般压力很大的情况下,数据库连接数问题、内存泄露问题会曝露的比较快但是死锁可能不能体现,所以要看系统重要性,如12306稳定性则最好7*24小时
  第六步、性能测试
  1.连接速度测试
  用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。
  另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
  2.负载测试
  负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?
  3.压力测试
  负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。
  进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。
  压力测试的区域包括表单、登陆和其他信息传输页面等
  第七步、交互体验测试
  1.系统界面的控件是否可以通过tab键遍历,并且顺序合理
  2.主要功能的入口和操作是否易于理解
  3.界面是否布局合理,功能是否易于查找和使用
  4.操作步骤
  5.操作习惯
  6.有足够的提示信息,且信息文字描述准确
  第八步、兼容性测试
  兼容性测试不只是指界面在不同操作系统或浏览器下的兼容,有些功能方面的测试,也要考虑到兼容性,
  包括操作系统兼容和应用软件兼容,可能还包括硬件兼容
  比如涉及到ajax、jquery、javascript等技术的,都要考虑到不同浏览器下的兼容性问题。
  除了上面所说的这些测试以外,还有算法测试、配置测试、安全性测试等等,在工作中不断总结和分析,形成自己的功能测试框架,当你把这份工作做起来以后,对于你自己对于测试团队而言都是一份很有价值的事情,你的测试思路也会变得更全面。
End.
更多热门文章:http://www.51testing.com
posted @ 2017-09-13 10:05 51testing 阅读(159) | 评论 (0) | 编辑 收藏
 
教你一招:基于数据驱动的接口单元测试
1、前言
  Hello,小伙伴们,本文将继续分享基于数据驱动的接口单元测试自动化测试方案。
  用到的技术包括:maven、kubbo、junit4,json开发包、Jenkins等。
  2、数据驱动
  2.1 数据驱动的概念
      数据驱动测试是从数据文件(如Excel文件、文本文件、XML文件或数据库等)中读取测试数据,然后通过变量传入事先编写或录制好的测试脚本中,这些变量既可传递测试输入数据也可传递测试输出的验证数据。测试数据只出现在数据文件中,测试脚本负责测试逻辑业务过程、测试状态以及数据文件读取,因此,测试数据和测试脚本是分开存放的。数据文件中的每一行表示一组测试数据,通过循环遍历数据文件中的每一行,将数据逐一注入到相同的测试流程进行反复的测试验证。
      数据驱动的测试适应于对相同流程进行大数据量测试且测试结果可被预期的情况,一旦应用程序功能上发生变动,测试脚本和测试数据都可能需要发生相应的改动。
  2.2 数据驱动测试技术的特点,为什么使用数据驱动?
  数据驱动的核心就是从数据文件中读取输入数据,将数据与测试代码分离,从而可以在不修改测试代码的情况下通过更新测试数据完成对测试用例的增加、更改和删除。通过变量的参数化,将测试数据传入测试代码,不同的数据文件对应不同的测试用例。
  因此,数据驱动测试的主要特点是提高了测试代码的灵活性,增加测试覆盖面,以及提高应对测试对象变更的能力。
  使用数据驱动,目的是使测试数据(参数变量)和测试行为(逻辑代码)分离,提高用例的健壮性和可复用性;降低脚本创建和维护成本;测试数据单独存放于数据文件中便于补充、修改和维护;数据存放结构清晰简单,有利于测试结果分析和错误跟踪。
  3、测试数据管理
      小编的项目中,是通过添加测试数据到数据文件(Excel文件),运行代码,中读取测试数据,然后通过变量传入事先编写好的测试代码中。
      缺点:通过修改数据文件直接操作,存在误操作风险
  4、项目目录结构(采用maven)
  如图所示,给出小编项目目录结构,将项目中的工具类、测试类、测试数据文件、Kubbo配置等标识出来。
  测试数据文件操作(excel)
  RPC服务自定义API接口
  数据驱动测试基类
  每个方法的测试类示例
  5、用例组织和规则约束
  用例组织
  例如:getLinkCount(获取link数)方法,属于link服务,那么就在src/test/java源文件夹下面,新建测试接口的类:Link_getLinkCount.java
         命名规则
  测试类命名规则:服务+接口方法名称,例如Link_getLinkCount.java(获取link数接口的测试类,属于link服务,方法名称是getLinkCount,故该方法的测试类,命名为Link_getLinkCount.java)(建议统一、便于代码组织)
      示例
  6、测试方法步骤
      1、声明参数变量;
      2、从数据文件读取该参数变量的值
      3、组装接口调用参数,把参数变量加入其中
      4、rpc客户端调用所测试接口,当前测试的方法
      5、接收从rpc服务端返回的信息(json或者其它)
      6、通过json开发包(gson)解析从服务器返回的json
      7、添加断言(预期的结果和解析的实际结果是否一致)
      下面给一个实例:
     测试基类的test
     数据文件读取参数变量的值
     方法测试类中调用接口服务示例
  7、持续集成
  对于庞大的测试用例,一个个执行或者通过测试套件执行,都不是很方便。我们通过和Jenkins集成,把写好的代码提交到git后,maven和Jenkins配合,对接口测试用例进行持续集成,这样也好得到测试报告。
  上面就是小编对于基于数据驱动的接口单元测试框架设计的一些实践,总结和大家分享。还有一些细节和搭建遇到的困难以及解决,后续文章有机会和大家继续分享。
End.
更多热门文章:http://www.51testing.com
posted @ 2017-09-12 13:12 51testing 阅读(292) | 评论 (0) | 编辑 收藏
 
面试:测试人员必备技能,你准备好了么?

最近有机会做一些面试工作,主要负责面试软件测试人员招聘的技术面试。

之前一直是应聘者的角色,经历了不少次的面试之后,多少也积累一点面试的经验,现在发生了角色转变。初次的面试就碰到个工作年限比我长的,也没有时间仔细了解对方的简历,再加上应聘者比较“强势”。面试情况是比较糟糕的。

有同学会说,唉!不就失去了一个应聘者嘛。多面几个就好了!这不单单是失去应聘者,面试者对面试官的印象更重要。面试官的能力与表现对于初次面试者来说往往代表的是公司的,更具体点是测试团队的能力。

如果面试官都很“水”,这个水两方面,一是面试不够从容,思路不清晰。二是技术能力水,问半天问不到关键点上。

那么身为面试者,对这家公司的印象会打折很多,就算能开得起面试者的期望薪资,面试者还要考虑在你这儿能不能学到什么,工作是否有挑战,是否有发展空间。

所以,面试官的能力与表现对面试是否成功同样重要,毕竟就面试过程而言是一个双向选择的过程嘛。

下面讨论测试人员应该具备的技能。

在这个讨论的过程中,充满了我个人的偏见与喜好。不喜误喷!

面试:测试人员必备技能,你准备好了么?

上面是我所画的一个体系图,这上面的技能相对比较通用,当然特殊情况下对测试人员的技能要求会有特别要求。

软件测试基本知识:

这一块其实没什么好讨论的,如果你有半年到一年的工作经验的话,对这一块一定有比较清晰的认识,当然,在实际的工作中不需要你对每一种测试方法去寻根求源,知道这些方法的含义与应用场景即可。

编写各种测试文档,对于初学者来说稍有难度。但终究还是谈不上什么技术含量的事情,如果对业务和流程足够熟悉,文档用例自然就会写了。

测试辅助技能:

我发现这两项技能在笔试和面试过程中必考,出现几率超高,但在实际的工作中,有些测试根本碰不到linux ,有些测试不需要去操作数据库。当然,测试嘛,也不能太处于表面了,也需要熟悉熟悉相关测试的表,了解了解系统服务器。

好在这两项技能的要求都不高,linux 大多考几个常用命令,SQL一般考一下增、删、查、改。

自动化技术(UI):

大多同学会在简历必备测试技能里加一个QTP自动化测试工具,当我满怀起到和他聊一聊自动化时,得到的多大回答是这了解和学习过这个工具。这也不能怪测试人员,谁让满大街的招聘要求上都写着“要求熟悉LoadRunner 、QTP等自动化测试工具等。” 其实,他们公司根本就不用。这么多公司都要求,看来还是有必要学一学这个工具的。

对于我而言,我并不太关心工具用得多熟练?对于web应用来说,更在意的是对前端技术了解多少?因为你要自动化的对象就是前端技术所呈现出来的各种功能。都不了解它,如何定位和操作它呢?

UI的自动化不单单是QTP一个工具,如果你掌握了一种语言,做自动化的路就宽广了,你一定知道还有个叫selenium(webdriver)的自动化工具,你不一定知道ruby 有个watir框架也可以做自动,也许你不知道python有个splinter框架也可以做自动化。那么你就更不知道python 有个pywinauto框架可以对windows GUI做自动化。你不知道有自动化工具太多太多了。谈到这些就不得不涉及到编程技术了。相比较而言QTP 不需要太多的编程能力。

对于自动化测试,另一个比较关心的是你对自动化的理解,什么情况下适合做自动化?你的自动化测试用例是怎么写的?什么样的用例适合转成自动化?你是如何来实施的?有什么样的策略来开展自动化工作?你需要自动化在项目中达到一个什么样的预期和效果?只是学学工具,拿个例子练习练习。很难对这些问题有真实的理解。

性能测试:

LoadRuner似乎比QTP名气更大,做测试必玩工具。没摸过LR都不好意思说自己是做测试的。性能测试是必须是要借助工具来实现了。不借助工具如何模拟成百上千的并发?

最大的难点,其它是对系统架构的理解,其实,更多时候并不需要达到架构师水平,甚至不用达到开发的水平,但起码,你要弄清用的什么操作系统,什么数据库,什么开发语言与框架,什么中间件吧!你要知道如何对这些做监控的吧!你要知道叫上开发一块玩吧!

对于性能测试,另一个我更关心的测试流程,你做性能测试的目的是什么?新系统验证?还是旧系统扩容?需要达到一个什么样的预期?在独立的环境可以开展么?压力在哪儿,脚本为什么要这样录制?你的测试结果真的有知道意义么?或对系统性能做出了合理的评估,或为系统有调优做出指导,或为系统扩容做出了依据。如果前因后果弄不清何必去做呢?

编程能力:

编程不局限于语言,大多同学也会在简历的必备技能最下方面写上一条,熟悉C语言或其它某种语言。大多止步于大学C语言水平。工作中没有机会用到。所以,就没机会去进一步提升这方面的能力。这似乎也挺合乎情理的,再说你们招的是测试又不是开发。

不过,我个人偏执的很看重这一点,至于上面的自动化、性能会不会都无所谓,如果在编程能力上略懂一二,我会大力推荐。懂编程和不懂编程的人看系统的深度不一样,一点不懂的只能看出来这是按钮,那是输入框。 懂编程的就知道你的登录是个<from> ,输入框是个<input> ,你的登录提交是用的post 还是get呢?逻辑层就是获取到输入的用户名密码是查数据库做比较嘛。在测试过程中不管功能实现也好,bug也好,都会看得更透彻,从而更容易挖掘出相关的bug。

一般懂编程的我都会让其写一个小程序,例如求素数,递归调用,用星号(*)打印一个梯形,如果测试工作写一些脚本之类的来辅助测试更是大大的亮点。不要觉得让你写程序就是“刁难”。平时注意积累这又何难呢?

对新的工作有什么期待?

“我希望能接触一些性能测试、自动化测试等,因为之前的工作一直在做功能。”

大多数测试人员认为提升自已的过程是这样的:

现在有一个性能需求,然后领导找到你说,小张啊,你来研究研究性能测试吧!我们现在的需要迫切需要对系统做一次性能测试,然后,你回去开始研究性能测试,花一个月终于搞懂了,开始对系统做性能测试。最终完成了任务。

但实际的情况是这样的:

现在有一个性能需求,然后领导找到你说,小张啊,你会做性能测试么?答,这个以前没做过,得学习一下。领导说:噢,那这样吧!小王你回去了解一下吧。因为小王虽然也没搞过,但他平时做测试的资历更久,对于新技术更爱钻研。在领导看来,小王能在更短的时间搞定这个问题。如果这个需求迫切或要求更专业,领导会直接招一个专业做性能的。

所以,结论很明了,机会是给有准备的人的。假如,你在某一技能上面持续积累,总会有发光的时候。

面试官更多的时候是在找亮点,我只有一个岗位,在面试的十个人当中,有十个人都能把测试流程什么的说得顺溜(虽然我也只招一个懂测试会流程就行了)。有八个人说自己懂QTP、LR等工具,只有两个人真正的有自动化或性能测试经验,只有一个人编程方面还不错。你说面试官会选谁呢?

亮点也是谈资(谈钱的资本),你和前一个面试者差不多,前一个面试者要5K,你要8K,那我更倾向于前者,如果你有别人没有的亮点,那我更倾向于有亮点者,我更愿意招个牛B的,工资又不是我给你开,最终是否谈拢是你和人事或上级的事儿。

面试是个综合的过程,假如你思路清晰,思维敏捷。假如你和我一样有写博客的习惯。或者谈谈你最近看的两本技术书。让我看到你是个工作很有热情的人,你是个热爱技术的人。这都是和别人不一样的亮点。闪闪发光。到哪儿都发光。

End.

更多热门文章:http://www.51testing.com
posted @ 2017-09-12 11:24 51testing 阅读(356) | 评论 (0) | 编辑 收藏
 
共60课:Python基础教程

简介:

你会看到一堆下载链接。我们就选"Python 2.7.5 Windows Installer",如果是64位系统的同学选下面那个"Python 2.7.5 Windows X86-64 Installer"。为什么不选最上面那个3.3.2的新版本?因为我在用python2.7.x,python3改了不少地方,不熟。。。

下载链接:http://www.51testing.com/html/19/n-3710919.html

End.

51Testing:专注于软件测试领域,自主研发软件测试工具,为客户提供全球领先的软件测试整体解决方案。

posted @ 2017-09-05 17:28 51testing 阅读(171) | 评论 (0) | 编辑 收藏
 
入门教程:pyqt5&python Gui,急收藏!

入门教程:pyqt5&python Gui,急收藏!

主要内容:

  • from PyQt5 import QtWidgets

  • · import sys

下载地址: http://www.51testing.com/html/56/n-3720856.html

End.
相关热门文章

http://www.toutiao.com/i6426594521361940994/

http://www.toutiao.com/i6439201903241855490/

http://www.toutiao.com/i6439580855500276226/

http://www.toutiao.com/i6439919722615013889/

posted @ 2017-09-04 17:36 51testing 阅读(187) | 评论 (0) | 编辑 收藏
 
周末特供丨独家连载,福利只在今天有!

周末特供丨独家连载,福利只在今天有!

内容简介

本书总结了当前流行的高危漏洞的形成原因、攻击手段及解决方案,并通过大量的示例代码复现漏洞原型,制作模拟环境,更好地帮助读者深入了解Web应用程序中存在的漏洞,防患于未然。

从攻到防,从原理到实战,由浅入深、循序渐进地介绍了Web 安全体系。全书分4 篇共16 章,除介绍Web 安全的基础知识外,还介绍了Web 应用程序中最常见的安全漏洞、开源程序的攻击流程与防御,并着重分析了"拖库"事件时黑客所使用的攻击手段。此外,还介绍了渗透测试工程师其他的一些检测方式。

抛开一些研究性、纯理论性的内容,所总结的漏洞知识可以说是刀刀见血、剑剑穿心。漏洞直接危害到企业的安全。融入笔者多年来的工作总结,几乎每个场景都是最常见的,如果你从事与Web渗透测试相关的工作,就会遇到本书中的场景。

适用对象

本书最适合渗透测试人员、Web开发人员、安全咨询顾问、测试人员、架构师、项目经理、设计等人员阅读,也可以作为Web安全、渗透测试的教材。这是一本实用的Web安全教材。

读者评论

周末特供丨独家连载,福利只在今天有!

在线阅读全文,将链接复制到网站打开即可:http://www.51testing.com/html/44/n-3706944.html

End.

现开设线下交流分享群,有需要请加:wsy18717896120


51Testing:专注于软件测试领域,自主研发软件测试工具,为客户提供全球领先的软件测试整体解决方案。

posted @ 2017-09-01 18:34 51testing 阅读(94) | 评论 (0) | 编辑 收藏
 
从业务骨干到管理精英
常言道:"不想当将军的士兵不是好士兵"。QA领域随着工作经验的积累,或者公司组织的调整。会涌现出一些晋升的机会。此时,你或许会面临一种场景:从业务骨干到leader的转型。诚然,机会总是给有准备的人。不论你现在是否已经站在相应的位置,或者即将面临这样的转型机会。你都该问自己一个问题:"我真的准备好了吗?"
  这里的准备好,自然不仅仅是技术层面的。我相信之所以你能脱颖而出,技术底子应该是达标的。但还有很多容易被忽略的严重问题。这篇文章亦不会大谈那些所谓的QA leader任职标准,因为招聘JD大多有些空泛。今天我想说的是新任管理者,最容易忽略的并且非常严重的那些隐形杀手。
  一、事必亲躬
  作为优秀的业务骨干,你已经习惯了:以事情做得足够优秀来要求自己,且你会觉得一件之前由你亲自负责的事情,突然交给别人,TA未必比你做得好。此时不论你出于好心或忧心,可能会忍不住过分插手具体的事物。甚至会越俎代庖,自己来做。
  作为一个员工,你这样是优秀的。但作为一个leader这样是危险的。因为你既让下属觉得你对他不信任,也让自己精力过多的沦陷在这具体的事物。久了,你不仅剥夺了员工应有的锻炼机会,也堵塞了自己的发展。
  所以,要学适当会放手,在可控的范围内允许员工犯错。你需要做得是给与恰到好处的指导或者建议,引导其自己成长。没有人刚学骑车的时候不摔跤,你自己如此,又怎能苛求别人一下子就做的和你一样好?总要给人成长的机会。这不仅需要你树立新的观点,更要有允许员工试错的勇气。且要能很好的把控这种试错的力度,以不影响业务质量为原则,同时要积极分享自己做此事的经验,引导员工朝着正确的方向进步。
  二、不会放权
  俗话说新官上任三把火,某些新任leader难免陶醉于新得到的种种权力。尤其是当自己权限范围也并非太大时,更不愿意把一些必要的权力授予员工。比如,你是否总要求每个测试用例都要经过你的批准。甚至多条产品线的测排期都要亲自定夺?
  如果这样,你的精力有限,你的员工亦不能得到充分的锻炼机会。好的解决办法,是每个产品线设置一个版本迭代负责人的角色(大家轮流担当)。让大家都有机会锻炼规划能力,沟通能力,风险把控能力。而你需要更多关注的是迭代负责人解决不了的问题,例如资源的调配,跨部门的沟通,疑难杂症的解决。
  当然与之相反就是过分放权,这也是很危险的一种情况。就像是风筝飞很高很稳,因为有根线在牵引。否则……你懂得。做测试管理也要不断地额摸索这种中庸之道,做到管得刚刚好。关于这个分寸的把握,你可以结合团队的实际情况。比如核心工作你适当过问,稳定工作授权给下属。例如,你的产品严重的问题是崩溃率略高,那关于如何降低崩溃率你可以多参与一些决策。但是如常规的需求评审,测试排期,bug跟进等可交于迭代负责人。
  三、扭曲的好胜心
  好胜心是个非常好的东西,但是用错了地方危害也不小。作为一个leader你应该有集体精神,把整个team看做一个整体。多站在团队的角度上想问题。多考虑如何把团队打造成业界领先的团队。而不应总想着证明自己的技术实力比团队中某个员工强。这个是完全没有必要的。
    ... ...
   查看全文内容,请点击下载:http://www.51testing.com/html/65/n-3704165.html
posted @ 2017-08-31 17:30 51testing 阅读(109) | 评论 (0) | 编辑 收藏
 
仅列出标题
共55页: First 23 24 25 26 27 28 29 30 31 Last