V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
oldman
V2EX  ›  程序员

求问有没有一个人写实现,一个人写单元测试的开发模型?

  •  
  •   oldman · 2011-09-11 03:02:21 +08:00 · 5675 次点击
    这是一个创建于 4604 天前的主题,其中的信息可能已经有所发展或是发生改变。
    求问软件工程上有没有一个人写接口的实现,一个人写单元测试的开发模型?叫什么名字?操作起来效果咋样?谢谢了~~


    PS:应该不属于结对编程和结对测试吧
    17 条回复    1970-01-01 08:00:00 +08:00
    btw0
        1
    btw0  
       2011-09-11 07:17:25 +08:00
    肯定不是 pair programming

    如果是一男一女,男的实现,女的测试,那就可以叫“夫妻编程”
    ssword
        2
    ssword  
       2011-09-11 08:06:36 +08:00
    结对编程中好像有这种的,就像一人出题一人解题,而不是自己左右互搏。
    wenhuacn
        3
    wenhuacn  
       2011-09-11 08:14:40 +08:00
    很久没听见过“软件工程了”,呵呵

    @oldman 你想的这种实践并不好,如果是tdd,两人分开搞,就像以前设计和开发分离,系统如果灵活,问题很多
    即使是acceptance ,也建议开发人员和测试人员结对写,分开搞,搞完还得再沟通
    oldman
        4
    oldman  
    OP
       2011-09-11 15:34:37 +08:00
    感谢大家,难得的周末,睡到半下午=.=

    @wenhuacn 我的意思是开发人员之间。是这样的,我在看其他同事单元测试过程中,经常发现逻辑没有测到位,一问才知道因为单元测试都是自己来写,所以在一开始设计模块的时候就忘记了某条逻辑,自然也就不可能在单元测试的时候写上了。

    所以我想是否可以参考结对编程的指导思想,某个模块两人共同设计,定好接口后一人写实现,一人写单元测试(再有其他的模块,两个人可以再交换角色)。按照我的想法这样或许可以解决上面我说的问题,不知道这样是不是有啥问题?以及大家是否还有其他的建议?谢谢~~~
    oldman
        5
    oldman  
    OP
       2011-09-11 23:55:12 +08:00
    没人知道么,还是放假了大家都不来了?
    chuck911
        6
    chuck911  
       2011-09-12 10:29:15 +08:00
    为什么说 “PS:应该不属于结对编程和结对测试吧”
    我看过的这本书 《结对编程技术》 http://book.douban.com/subject/1144538/ 好像是有讲到这种案例的
    都是XP极限编程的重要方法,在同一场合结合起来用是很容易理解的嘛,要取名字的话,
    “TDD Pairing”
    Here are the rules:
    1. One person writes a test. If it passes, he must pass the keyboard to the other person who gets to write a test.
    2. If it fails, he passes the keyboard to the other person and they have to implement the required code to make it pass.
    3 .If "the light is green," the person who has the keyboard can choose to perform a refactoring instead of writing a test. In fact, if the implementation given by the other person has some duplication that needs to be removed, they are obligated to do just that. (After which, of course, the other person gets to write a test.)

    google "TDD pairing" 你可以找到很多资料
    chuck911
        7
    chuck911  
       2011-09-12 10:32:29 +08:00
    再看一遍楼主的话,可能我误解了?你说的这两个人是不能坐在一起交谈沟通的吗?
    oldman
        8
    oldman  
    OP
       2011-09-12 13:27:12 +08:00
    @chuck911 可以交流的。基本上你理解对我意思了,应该就是TDD Pairing。不过我印象中结对编程不是一个人写,一个人在旁边看着给纠错么。难道我理解片面了?
    xiaovfight
        9
    xiaovfight  
       2011-09-12 13:47:13 +08:00
    这是TDD吗?印象中不是应该先写单元测试用例,然后再写实现吗?不过,也可能是我记错了。但是如果一个人写接口的实现,一个人写单元测试,不就又增加了交流成本了吗?
    oldman
        10
    oldman  
    OP
       2011-09-12 13:58:26 +08:00
    @xiaovfight 不熟TDD,不知道是不是符合TDD的意思。不过我的意思就是定接口的时候两个人讨论,彼此做好查错工作,这个时候是要做好充分沟通。等编码的时候基本上就不需要沟通了。当然万一编码的时候再发现设计有问题,再回到第一步,如此反复。
    fsw90628
        11
    fsw90628  
       2011-09-12 15:36:02 +08:00
    @xiaovfight 自己写,自己测,下不了狠心啊。
    xiaovfight
        12
    xiaovfight  
       2011-09-12 15:49:21 +08:00
    @fsw90628 是先写测试用例,然后再写实现,不断反馈,不断修改,直到顺利运行
    AntiGameZ
        13
    AntiGameZ  
       2011-09-12 16:33:54 +08:00
    我感觉就是结对编程嘛,适用于师傅带徒弟的场景?
    chloerei
        14
    chloerei  
       2011-09-12 16:35:02 +08:00
    就是结对编程嘛
    chuck911
        15
    chuck911  
       2011-09-12 16:38:26 +08:00
    @oldman 嗯。算是有点片面,结对编程(Paring)泛泛来讲其实就是俩人一起思考、设计、实现、重构,两个脑子一起工作,虽然看上去写代码的时间被浪费了,其实思考变得高效且正确,具体的配合细节由实际情况去定就可以了
    那本书扯了很多东西,什么新手与老手,老手与老手,程序员与架构师,异性结对,来自不同文化的人结对等等的,每种情况都有特别的做法
    TTD Paring = TTD + Paring (废话)
    oldman
        16
    oldman  
    OP
       2011-09-13 12:45:33 +08:00
    OnlyBlue
        17
    OnlyBlue  
       2011-09-15 19:28:40 +08:00
    感觉很遥远,不懂软件工程
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1105 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:31 · PVG 02:31 · LAX 11:31 · JFK 14:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.