书籍点评 初学《软件测试》一

Robert · 2018年12月23日 · 最后由 Robert 回复于 2018年12月25日 · 60 次阅读

个人介绍

本人今年刚毕业,原本学的不是计算机专业,但由于对计算机行业感兴趣自学了一段时间前端,找到一份前端的工作并工作一段时间后发现自己并不是很适合前端这份工作,可能和自己的经验等有一些关系吧,不过感谢这家公司给了我另一个岗位【软件测试】,并在测试领导的教导任务中学习了《软件测试》一书,当然现在还没有看完,转岗两周,看了一周的《软件测试》并结合实际项目中碰到的一些情况记录并分享自已的一些初学测试的心得。

正式前的提问

提到测试这里就不得不问一句:给自己的定位是什么?只是一个单纯的测试人员(testing)还是想成为一名QA(quality assurance)。或者说的直白点就是想做一个只会点点点的初级测试?还是给自己定位的是一名技术人员?
测试是做什么的?为什么会有测试?

初阅《软件测试》

介绍了软件测试的背景,软件开发的过程,软件测试的实质
下面我就以提问解答的形式来介绍:

那什么又叫软件缺陷呢?
1、软件未实现产品说明书的功能要求。 ——点击跳转首页却跳商品页
2、软件出现了产品说明书指明的不应该出现的错误。 ——未选择不能跳转却跳转
3、软件实现了产品说明书未提到的功能。 ——没有点击跳转这个功能却能点击跳转
4、软件未实现虽未明确提到但应该实现的功能。 ——点击 logo 跳转到首页却无效
5、产品的不易使用。 ——测试人员拿到软件产品测试后:客户会认为不好
我想要的功能没给我,不想要的却给我了,没说现在要现在也给我了,虽然没说却应该给我的,不知道你给我的是个什么东西

那么造成软件缺陷的原因是是么呢?
1、最大的原因是产品说明书 ——产品说明书功能不全,介绍不完整,未提及等
2、设计 ——设计不完整,不全面
3、编码 ——逻辑错误、代码错误等
4、其他
我觉得最大的软件缺陷来源于设计的不合理,AC 写的逻辑不通,或者不完整。这样的设计会造成开发的开发困难和开发时间,直接影响我们测试的验证效率,你具体细节的需求都没确定,我给你验证的时候怎么确认?或者说设计的需求缺失某些步骤,测试该怎样来验证。

那么当我们在不同时间段修复这个软件缺陷它对我们所产生的费用是什么样的呢?
设计时出现逻辑错误修改时间需要的时间?当技术人员在编辑代码中发现了设计的错误然后和设计师确认修改再改代码需要多少时间?当测试人员在测试过程中发现这个缺陷并和设计师确认这是缺陷,并让技术修改代码再测试通过需要的时间···
——随着时间的推移费用呈十倍或百倍的增长,到后面甚至不只是金钱的损失!

而我们测试人员的目标是什么呢?
1、发现缺陷 ——在使用中发现各种问题
2、尽可能早的发现缺陷 ——使缺陷所带来的费用最低化
3、并却保其得以修复 ——完美的产品
注意:“修复” 缺陷并非一定要改正软件也可以添加注释或为客户提供相关的特殊培训。
不要再无法达到的完美上纠缠与浪费时间

而作为一个好的测试人员所需要具备哪些素质呢?

  • 喜欢探索——使用并发现新的问题
  • 排除故障——发现问题的原因
  • 不是偶然——多次多样验证寻求必然
  • 追求完美——当知道无法完美时,不去苛求,尽量接近完美
  • 创造性——通过各种方法创意来寻找缺陷
  • 判断准确——判断并验证所这个问题是否是真正的缺陷
  • 人际沟通——与对相应产出缺陷的人员沟通并说服其修改这个缺陷

那么一个软件产品由哪些构成呢?
大体由:帮助文件、使用手册、支持信息、错误信息、设计稿与分页图、等各种说明文件
而在软件的错误信息提示中不要出现以下几种低级错误注意

  • 没有找到键盘按 F1 继续
  • 无法初始化设备
  • 无法识别,正在安装驱动
  • 无直接报错信息提示错误在哪,是什么出现错误直接出现:0000:000007这种字样

软件开发的模式有几种?

  • 大爆炸模式——简单——good/bad——不需要测试
  • 边写边改模式——考虑到产品需求——无止境的循环直到缺陷越来越少,无确定时间
  • 瀑布模式——简洁、精致、有意义——一些简单的更本性问题在早期没有提出来,测试时发现花费的代价稍大
  • 螺旋模式——测试人员一直处于工作跟进中,最后一步较为轻松
  • 敏捷开发——通过人与人对工具的理解交流并得到客户的协作——团队每个职位额都很重要,能帮助大家更好地完成整个产品!

那么为什么说在敏捷开发中团队的每一个职位都很重要呢?
在敏捷开发中,产品 - 设计 - 开发 - 测试 - 运维 - 项目经理这些人把各自的工作分的很清楚,能都清楚地知道自己是要做什么!该做什么?!准备做什么!而每一个人都会知道我们各自工作的细节,我们现在做的什么,哪些做好了,哪些没好,为什么···而最主要的是我们在项目进行中能通过产品很快的确定我们每一个需求细节,并对不合理的地方进行修改并确认。

软件为什么会不完美呢?
1、输入量太多
2、输出量太多
3、执行路径太多
4、软件说明书是主观的,旁观者来看这就是缺陷
太多的可能性带来一个巨大的不确定性,在你看来的是对的但是在人家那里看这就是错的
注意:可以说这个软件有问题,只是暂时没找到!不能说这个软件是完美的,不存在问题!——在任何情况下都不能保证软件缺陷没有了。

而在我们寻找缺陷的同时我们也要对这个缺陷作出判断:它是否需要修复?它是否值得修复?它会对整个产品照成什么影响?会对公司造成什么后果?等---
注意:没发现或没有察觉到的缺陷只能说是潜在缺陷,不能说没有缺陷!
测试:软件测试的目标就是尽可能早的找出软件缺陷,并确保缺陷得以修复
QA:创建和执行改进软件开发过程并防止软件缺陷发生
在我看来测试和 QA 前期可能做的不是那么一样,但对于互联网行业的发展,及自我能力的提升来说,只会做基础的测试和简单的 QA 肯定是不够的,一个好的测试肯定是会往自动化方向发展的,这样不光是提升工作效率,更加提升的是产品的质量,而说到这大家就发现了,提高产品质量不是 QA 的工作吗?怎么现在成了测试的工作了呢,其实并不是 QA 的工作成了测试的了,而是因为,QA 和测试是两个相辅相成的岗位,我们工作到后期肯定是肯定都要能都胜任的,并且是在一个人处于一个职位,却完成个工作内容的一件事情。

所以前期做的什么不要紧,加紧学习,努力提升自己吧~~~加油!!!

未完待续······

共收到 4 条回复 时间 点赞

开发做不了,所以来测试吗?

学得很细,如果上面大部分都存在你的脑海里 那至少说明你很专注和认证
静得下心来专注本身是一家难能可贵的事情 好好保持下去
这本书应该是机械工业出版那本 老外 patton 写的,很适合刚开始入门
我觉得这本书最大的优点就是很全面又易懂,从理论到测试的最基本流程都说了
建立起了一整个测试思想的框架 或者说是一个全面的基础
但也有它的不足或不全的地方 (比如在用例设计这块) 建议看完总结梳理下整体结构 有些是在看不懂可先放下或者问问
然后可以看下其它的基本测试书籍 互相补充对比着看 (软件测试的艺术觉得还不错 等等)
这个过程可以结合实际工作做一个对比,理论和实际是有差别的
那些是可以应用的 哪些是还需要延伸 那些事需要是你当前环境用不到的
祝好运 --- 字有点多

blackcoffee 回复

现目前,测试更适合自己

尚涯 回复

好的,我也是第一次写这种类型的文章,需要很多的改进,很细致的评论呢,谢谢你的提醒👏 👏 👏 ,我会不断提高的——字有点多这个😂 😂 😂 这个我注意

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册