开发自测(二)开发同学如何进行自测

最近有几个在做开发的同学问我是怎么做测试的,或者怎么对一个系统进行测试。这个问题看似简单,其实范围很广,特别是在不知道公司业务和系统的情况下,无法给一个正确的答复。如果我告诉你就是做功能性能安全测试,那其实是在敷衍你。就像你问我怎么能考一百分,我回答把全部题做对就可以了。
开发自测现在逐渐成为提测的一个前提,大部分开发同学对此已经不陌生。但很多公司仍面临没有测试同学、部分内部系统没有测试同学对接或者公司测试文化不够普及的问题,这时候开发同学就需要自己进行全部测试,但是又无从下手。一是开发同学可能只知道自己负责的那一个模块功能,不知道整个系统的流程,另一个可能是不明白除了把正常功能验证完,还需要关注什么。

一 你了解这个行业吗

每个公司都有所在的行业,就算是外包公司,你做的项目也会有一个行业归属。金融证券、教育平台、市政平台、电商等等,每个行业的业务不同。如果你觉得你只是负责敲代码的,为什么要了解行业知识呢,这些由业务人员知道不就好了嘛,业务人员给我们提什么需求就做什么啊。其实不管什么岗位,结合行业知识可以帮助你更快更好地了解需求背景,同时可以让你主动挖掘和补充隐含的需求。
比如你现在接手一个教师系统,需要新增在线编辑试卷的功能,然后你唰唰唰就完成了。如果你稍微了解这个行业、了解其他相似系统会有什么功能,你会想到,这个试卷应该是和其它文件一样可以关联到某个课件中的;或者这个试卷是不是应该要有下载的功能比较合理;如果想直接引用别的试卷的某个题可以吗。那其实设计方式就不全一样了。而如果在后期已经提测甚至验收完再发现这些问题再来调整,那代码就会被改的很丑,严重的话可能需要重新设计。

二 你真的了解系统功能吗

因为每个开发同学通常对自己负责的那个模块较为熟悉,比如我负责写一个提供数据的接口,我要提供xxx数据出去,当没有这个数据的时候我返回了400,未找到该数据。然后调用方A的设计是,获取该接口返回,当收到空的时候返回未找到数据,当收到其它结果的时候返回系统异常。而这个调用方A还有调用方B,是一个注册模块,调用方B用不存在的账号请求A时居然收到了系统异常,这是不符合逻辑的。这个例子可能不是很合适(对于有详细接口文档的项目来说可能就不会出现这类问题),但是这里想说明你需要知道你提供的每个接口、模块、功能是怎么被调用的,是起一个什么作用,以及一个完整流程是怎样的。如果每个模块的开发都只关注自身,那么当整个流程被串起来的时候就是一场灾难。
所以在进行自测时,不应只关注本身这个实现,而要结合整个的系统进行分析和运行。

三 你写单元测试了吗

对开发同学来说最基本的测试,就是单元测试。但是很多开发会抗拒,觉得单元测试的作用微乎其微。单元测试的作用在这里就不强调了,但是当你对原代码进行了重构,要一项一项检查是否对其他功能模块有影响时,这个成本是巨大的,而且容易遗漏,而有单元测试的话你只需要运行单元测试即可。
虽然写这样的单元测试本身的成本已经是很大的,但是这是可以无限次被使用的,和每一次重构的未知和风险相比,哪里一个的成本低呢。

四 你的代码有通过静态扫描吗

静态代码扫描可以在不运行项目的情况下快速分析和验证代码,识别导致系统故障、可靠性差、系统漏洞或不安全条件的严重漏洞或错误。很多现成的静态代码扫描工具可以利用,一些可以通过编译但是不符合规范的问题可以通过这样的方式检查出来。

五 你以为的检查点

为什么明明同一个场景,开发同学自己执行的时候没有问题,测试同学却可以发现问题呢,是开发同学操作失误吗。不,是因为测试同学关注的检查点更详细,除了直观的结果,还包括运行过程中的日志、数据库中插入/修改的数据以及其它间接流程。当你知道哪些数据需要重点关注,你才能用完整的检查点去确认这个场景是否能算通过。

六 如果有现成的自测用例

现在很多测试同学会给开发同学提供自测用例,这是一个很好的开始:对没有自测意识的开发同学来说,可能需要以通过自测用例作为提测的门槛之一,来不断强化他们的质量意识;对没有测试思维的开发同学来说,这提供了一个思路和方向。自测用例通常就是重要功能及本次新增/修改的功能,关于如何执行,一是可以借助造数据工具或者脚本,二是由测试同学提供支持,但是最终的希望是开发同学能够独自完整地进行自测。

七、持续集成

随着持续集成持续交付的推广和实施,越来越多的项目已经在提交代码后自动运行验收测试脚本,这对项目来说是效率极高的。不仅缩短了从提交到有初步结论的时间,还降低人为操作失误的风险。开发同学终于不需要为如何进行自测而烦恼了,但是验收测试脚本其实是由开发、测试、产品同学共同完成的,验收测试标准、场景、实现方式等不是由哪一方自行决定和完成的。如果没有较为完善的自动化验收测试脚本,首先可以把造数据脚本利用起来,其次让业务方提供完整详细的验收标准,再由技术同学将其写成脚本并进行利用。

八、其它

还有一个有助于开发同学发现缺陷,提高代码质量的方式是结对code review。让你去检查你自己的代码可能因为习惯而发现不了问题,但是找同事跟你一起review,在相互学习的同时他能发现和指出你遗漏、出错的点。

总结

所以开发同学是可以通过增加自测场景覆盖,结合测试、用户的视角补充测试点,以及结对测试来发现更多的bug,使开发自测做到位。开发和测试的角色从来不是对立的,开发同学需要进行自测,确保主要功能的实现,测试同学才能有足够的时间和精力去挖掘隐含缺陷、异常情况,以及进行其它类型的测试;测试同学需要在自测点、测试脚本上给开发同学提供支持,提高开发同学的自测效率。这样才能使团队的研发效率提高,并且快速交付高质量产品。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容

  • 一、 软件测试基本概念 1 bug的概念 bug类型:defect、fault、problem、error… pr...
    三口一个瓜阅读 3,616评论 0 12
  • 1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理...
    小灰辉先生阅读 1,324评论 0 3
  • -----转载----- 1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? ...
    花开沉浮阅读 7,330评论 4 88
  • 什么是软件测试 在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程...
    CT9955阅读 6,154评论 2 21
  • 银行软件测试面试问题 软件测试经典面试题 软件测试面试题汇总 测试技术面试题 1、什么是兼容性测试?兼容性测试侧重...
    天宇逍遥heart阅读 1,432评论 0 20