测试的那些事

测试的那些事

01

概述

测试工程师(Software Testing Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有缺陷(Bug),测试软件是否具有稳定性(Robustness)、安全性、易操作性等性能,写出相应的测试规范和测试用例的专门工作人员。简而言之,测试工程师在一家软件企业中担当的是“质量管理”角色,及时发现软件问题并及时督促更正,确保产品的正常运作。

按其级别和职位的不同,可分为三类:

高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估;

中级软件测试工程师,编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务;

初级软件测试工程师,其工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷。

思考

02

测试和开发的爱恨情仇

对话场景

测试:这个功能有bug。

开发:是不是你点错了?

测试:怎么可能是我点错了....

开发:肯定不会有问题的,我本地开发环境都点过了的

....

开发:测试净找麻烦,用户跟本不可能像你们那样使用

测试:问题总是会在看似极端的条件下产生,用户总是会不经意触碰到看似极端的,不可能出现的条件

开发:测试花在异常情况下的精力比测试主流程还多,不知道轻重缓急

测试:开发从来不考虑测试的感受,连测都不测就扔给我们

开发:我都测了,还要测试人员干什么

测试:这么明显的问题你们都不测一下,把我们测试当垃圾桶啊

……

开发和测试的关系

其实

测试和开发拥有同一个目的:让软件更完美。

测试和开发的关系,是一个问题的两面,应该是相辅相成和平共处的。

测试不是为了挑刺儿,他提出的问题也不针对生产软件的开发人员,而仅仅是在努力让开发人员的产出物看起来更好用。只要开发不将测试提Bug这个行为看成针对个人的行为,一切就有了美好的前提。

否定软件,并不是否定开发软件的人。这是开发和测试都需要明确的一个原则和前提。

还有的人认为开发和测试之关系类似皮与毛,皮之不存毛将焉附?

流程与标准

相互抱怨

开发根本不看我们的测试用例,评审邮件从来就不回复

我们一报Bug,开发就说用户根本不可能这么用,还说不知道我们怎么会这么测

送测单里根本不写测试范围或者寥寥几句跟没写一样

开发调整设计从来也不告诉我们

为什么产品经理和UI只和开发讨论需求变更?

为什么发布计划里不给测试预留测试时间?

为什么开发写完代码测都不测就扔给我们?

为什么客户那里发现了问题老问是谁测的?为什么没测出来?

测试老是一声不吭就把Bug优先级设置为Major

测试总是把大量时间花在用户根本不可能用到的功能上

测试分不清哪些什么是重点,你给他说他还老是一堆道理这了那了

测试提的Bug,现象描述也不准确,重现步骤也没有,有的根本就不知道是不是误操作

测试老来打断我,一会儿叫一下一会儿叫一下,根本没办法专注开发

jira上的Bug重复率太高,一个问题提N遍,难道就不能合并一下?

测试发现Bug,一声招呼都不打就直接告诉老板了,搞得我很被动

测试就是专门挑刺儿的,有劲不往正地儿使,你倒是测测用户常用的功能啊

那么简单的Bug都能流出到用户那里,真不知道测试怎么测的

为什么开发写完代码测都不测就扔给我们?

内心独白

这个问题普遍存在,它反映出的是程序员和测试人员的工作边界难以界定的矛盾。

开发:我都测一遍,还要你们测试做什么?

测试:你测都不测,冒烟都过不了,有没有责任心?

开发:要我写测试用例,搭各种环境,遍历各种正常、异常逻辑,我还有没有时间写代码了?

测试:我们测试是垃圾桶吗,什么烂玩意儿都直接扔给我们,我们的时间就那么不值钱?

开发:测试本来就是干这个的,你不测谁测?

………

如何解决

如何创造性的发现适合团队的方法来让大家顺畅地协同工作,比标准、制度更重要,这往往依赖于技术管理者的能力和团队成员的意识。没有普适的方法,只有适合这个组织的、此时此地的策略,在战斗中摸索出最适合当下的道路。至于像给测试预留多长的测试周期、调整设计要不要通知测试、需求调整要不要测试参与等问题,合理的流程和标准可以起到很大的辅助作用,技术领导者只要依据合理的制度,引导大家有效参与,就可以化解。

资源

测试:别动我们测试的服务器,你们自己搭一个!

开发:我们没环境,不用你们的用谁的?

测试:谁把我们的测试手机拿走了?你们申请一个嘛,老来占我们设备。

开发:谁在用我们的账号?招呼都不打!我要用,赶紧退出来!

建议

服务器环境问题,尽快上报领导

测试机 贡献出自己的机器

态度

场景一

测试MM对阿猿说:发现了一个Bug。

阿猿矢口否认:不可能,绝对不可能!

测试:真的有Bug,你过来看一下!

开发:我都不用看,在我这儿好好儿的。

测试:你来看一下嘛……

开发:看什么看,肯定你环境问题,动什么东西了吗?重启了吗?

场景二

测试MM想在jira上提个Bug,先在QQ上对阿猿沟通一下

测试:有个Bug,你过来看下?

开发:忙着呢,焦头烂额的。

测试:一分钟都用不了,你来看下吧。

开发:思路一打断就不好恢复了,等会儿!

测试:你不看我提到jira上了啊。

开发:随便,你不就是爱提Bug嘛。

场景三

测试MM呼叫阿猿:阿猿阿猿,程序又崩溃了,快来看看!

阿猿慢腾腾地起身过来,鼠标点几下:看不出来什么问题,你怎么操作的?

测试:这样点一下,那样,这样,……回车……。

开发:重现不了啊,你想办法重现,重现了再叫我,我忙着呢。

测试:………

开发和测试的日常工作中,上面的情景不断上演,这其中有一部分原因来自态度。

我们有时还能听到类似下面的话:

你Bug里的现象描述根本没用

你根本就没理解这个逻辑,给你说不清楚

测试什么都不懂……

你听我的,我让你怎么测你就怎么测

你这种测法儿,再好的软件都经不起你折腾

用户根本不可能这样用,你们整来整去净瞎耽误工夫

一轮都没测完,你们就给老板说可以按期交付没问题?

你们安排计划时根本不考虑测试,三天,三天怎么可能测得完!

讲道理

开发和测试拥有共同的目的:生产高质量软件。具体说,每一个产品、项目、版本都有明确的目标,这些目标是属于开发和测试的,是大家的。我们把共同的目标牢记在心,摆在首位,我们还要想着别人所做的一切,都是针对软件本身,都是在为目标而努力,这样就心平气和多了,就容易从当下的泥沼中超脱出来,求同存异共同前进。

03

移动测试和Web测试

相同点

不同点

APP测试的特殊点

网络种类多

移动端有多种网络:无线网络、2G、3G、4G等,断网、网速较差及网络之间的切换时页面的显示等,这些对于移动端来说很重要。此外,在非wifi下,还需要注意网络使用量问题。

弱网测试

模拟App在网速慢,网络不稳定的情况下。

中断测试

移动端有一个很重要的问题,一般情况下在使用软件的过程并不是长久的,这中间可能发生很多中断,如电话、短信、通知、断电等等,软件需要特殊处理这些特殊情况。

打开一个页面,或在操作的过程中(点击一个按钮后),将手机屏幕锁住,再打开时,应用能否正常处理。

1. 来电中断: 呼叫中断、被呼叫挂断、通话挂断、通话被挂断

2. 短信中断: 接受短信、查看短信

3. 其他中断: 蓝牙、闹钟、插拔数据线、手机锁定、手机断电、手机问题(系统死机、重启)

屏幕的限制

图片及文字的显示;

上传不同的图片尺寸显示是否正常;

图片和文字一起显示时,效果如何。

操作区域;

web端的应用,一般不会受到屏幕的限制,而且通过鼠标操作更加准确,但是移动端由于屏幕较小,页面及按钮会受到屏幕大小的限制,再加上用户都是通过手指进行操作,一些按钮、选择框 等是否容易点击,多个可点区域位置较近时,点击部位稍微偏移,也许就会造成不同的结果,这种情况下是否可以达到预先的效果。

安装卸载测试

用应用市场安装

用apk文件安装。

完全卸载(用户的profile文件)

部分卸载

升级测试

从上一个版本/上两个版本直接升级到最新版。

全新安装最新版

新版本覆盖旧版本安装

卸载旧版本,安装新版本

卸载新版本,安装新版本

增量更新

强制更新

测试点在于:升级之后,已经登录的用户,是否仍处于登录的姿态,用户的缓冲文件,配置文件是否还在。

软件启动运行

移动端启动、卸载、升级几个特性,这是比较常见、也很重要的,比如升级时用户的数据怎么办,卸载后用户的数据怎么处理,卸载再安装用户登录数据的显示等。

手势

移动端还有一大特性,就是移动端有自己比较简单的手势,用户可以通过手势进行一个操作,比如左滑删除、右滑返回上一个页面、左右滑动图片等,软件需要对这个手势进行适配。

多点触控

事件触发区域

04

测试用例设计方法

白盒测试用例设计方法

黑盒测试用例设计方法

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180727G17XCO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券