发布新日志

  • 团队游戏——交换圣诞礼物

    2009-12-05 19:25:36

    在圣诞节即将来临的时候,这样一个小游戏也许能够使你的团队凝聚力更强,关系更融洽。

    假设你的团队有N个成员,每人准备一份礼物,金额控制在一个范围内,譬如50元,上下不超过10元。换句话说就是每人用50元去买一份创意礼物,或者古怪礼物,而且最好能包装得让人无法猜测出是什么。

    在圣诞前的某个工作日下午,周四或者周五,用一到两小时的时间,订一份披萨大餐,开始游戏。

    游戏规则如下:

    1,把大家准备的礼物堆放在会议桌上,每人抽取一个号。可以用任何方便的方式抽号,纸片,扑克牌,乒乓球,或者写一个程序。

    2,抽到1号的最先出来,从一堆礼物里挑选一个,回位,拆开,让大家看到这是什么。

    3,抽到2号的从剩下的礼物里挑选一个,回位,拆开,他可以选择是否和1号的礼物交换。如果他选择交换,1号必须同意交换。

    4,抽到3号的从剩下的礼物里挑选一个,回位,拆开,他可以选择是否和2号或者1号的礼物交换,同样,如果他选择交换,被交换的必须同意交换。如果3号选择了和1号交换,这一轮结束;如果3号选择了和2号交换,交换之后2号还可以选择是否和1号继续交换。

    5,如此继续,每一轮中,号大者可以选择是否和号小者交换礼物,号小者不能交换号大者的礼物,一直到1号被交换,或者某个被交换者不愿意继续交换,该轮结束。

    6,直到最后一轮,抽到N号的拆开最后一份礼物,他可以选择和在他之前的任何一人交换,被交换者继续选择比自己号小的任何一人交换,直到该轮结束,整个游戏结束。

    7,还可以加上一项可选项,大家评选最受欢迎的礼物,最古怪礼物等等。

    如果团队人数在15人以内,没什么问题,如果超过了,最好分成15人以内的多个桌子来玩。至于为什么,我没有尝试过超过15人玩这个游戏,想像一下觉得会很混乱。

    感谢我以前的领导,他给我们带来了这个游戏,现在,我的团队即将玩这个游戏了。

  • 关于left / right / stereo / mono

    2009-11-30 18:34:47

    机顶盒、DVD等类似的家庭娱乐多媒体产品里有音频设置:Left / Right / Stereo / Mono,简单说说在机顶盒里是如何处理的。

    1)如果节目源是立体声(Stereo)的。有左(L)右(R)两个声道。

    1.1)机顶盒设置为Stereo模式。
    机顶盒把左声道数据送到音频输出(譬如莲花端子RCA)的左声道(譬如RCA的白色端口,标记L),把右声道数据送到音频输出的右声道(RCA的红色端口,标记R)。输出到电视上收听时,有立体声效果。

    1.2)机顶盒设置为Left模式。
    机顶盒把左声道数据同时送到音频输出的左右两个声道。这时只能收听到左声道声音。

    1.3)机顶盒设置为Right模式。
    机顶盒把右声道数据同时送到音频输出的左右两个声道。这时只能收听到右声道声音。

    1.4)机顶盒设置为Mono模式。
    机顶盒把左右声道数据复合(我不知道用复合这个词是否准确),同时送到音频输出的左右两个声道。这时,能听到左右声道的声音,但是没有立体声效果。

    2)如果节目源只有左声道音频。

    2.1)机顶盒设置为Stereo模式。
    机顶盒把左声道数据送到音频输出的左声道,右声道没有数据,音频输出的右声道没有声音。

    1.2)机顶盒设置为Left模式。
    机顶盒把左声道数据同时送到音频输出的左右两个声道。右声道输出能听到左声道的声音。

    1.3)机顶盒设置为Right模式。
    右声道没有数据,音频输出的左右两个声道都没有声音。这时听不到声音。

    1.4)机顶盒设置为Mono模式。
    机顶盒把左右声道数据复合,这里等于只有左声道数据,同时送到音频输出的左右两个声道。音频输出的左右声道都有声音。

    下面用两张表来重复描述上述情况。音频输出左和音频输出右分别表示只连接左或者右某一个输出端口测试结果。Y表示有声音,N表示没有声音。

    节目源 STB设置 STB音频输出左 STB音频输出右
    L Left Y(L) Y(L)
    L Right N(R) N(R)
    L Stereo Y(L) N(R)
    L Mono Y(L+0) Y(L+0)

     

     

     

     

    节目源 STB设置 STB音频输出左 STB音频输出右
    R+L Left L L
    R+L Right R R
    R+L Stereo L R
    R+L Mono R+L R+L

     

     

     


     

    参考链接:
    RCA端子:http://zh.wikipedia.org/zh-cn/RCA%E7%AB%AF%E5%AD%90
    关于立体声收音机的“SETREO—MONO”开关:http://blog.sina.com.cn/s/blog_59b9faf10100ag2n.html
    RCA:http://en.wikipedia.org/wiki/RCA
    Sound Systems:Mono versus Stereo:http://www.mcsquared.com/mono-stereo.htm

     
  • 开发算什么呀

    2009-10-13 12:18:25

    有个贴,讨论理想中的测试团队,看到一个回帖,大致是这样:

    作为一个测试团队的负责人,这个问题很有意思,也是我一直思考的问题。

    然后BLA BLA说一大段


    最后有三个PS,第一个:

    PS1:听过MUSP的陆宏杰老师的课,里面他说的一句话,现在还有印象:开发算什么呀,开发的东西测试去做,能做3遍!



    我把这个摘出来,回复:

    最好不要让测试部门有人有“开发算什么呀”这个想法,就如同不要让研发部门有人有“测试算什么呀”这个想法一样。

    然后他还不乐意了,回复:

    补充说明一下:
    基于目前的线装,即大多数的测试团队是对开发团队负责的,因此在沟通中经常有一些低人一等的感觉,提出这个观点,并不是为了造成两个团队的对立,而是试图建立一种平等的沟通关系.

    我回复:

    平等既不是贬低对方,也不是抬高自己。

    正确认识自己,努力提高自己,而不是念经他算什么她也不算什么。

  • defined but not used

    2009-09-29 16:06:51

    为了清除代码里定义不使用的变量,调整一下编译器的WarningLevel,原来是 -W (即-Wextra),编译无warning,已经在9月25日清除。

    增加 -Wunused ,编译,出现1147个warning。把 -Wunused 改为 -Wunused-variable ,496个。

    遇到这样一个问题,在一个 .h 文件中,定义了一个全局变量,还是 static 的,而它仅在两个宏定义中使用,代码如下:

    1. static OS_ID db_v_mutex = OS_INVALID_ID;
    2. #define DB_V_MUTEX_LOCK()       \
    3.         do                                          \
    4.         {                                                 \
    5.                 if(db_v_mutex == OS_INVALID_ID)\
    6.                 {                            \
    7.                         db_v_mutex = os_mutex_create();\
    8.                         ASSERT(db_v_mutex != OS_INVALID_ID);\
    9.                 }                            \
    10.                 os_mutex_lock(db_v_mutex, OS_WAIT_FOREVER_TIME);\
    11.         }while(0)
    12.  
    13. #define DB_V_MUTEX_UNLOCK()     do{os_mutex_unlock(db_v_mutex);}while(0)

    编译器报 db_v_mutex 定义了没有使用。想了一想,情况应该是这样,很多 .c 文件包含了这个头文件,有些 .c 文件使用了 DB_VIEW_MUTEX_LOCK() 和 DB_VIEW_MUTEX_UNLOCK() ,有些没有。用了的文件里不会有问题,没用的文件就会报warning。static 使 db_v_mutex 可以定义在头文件里被多个 .c 文件包含。

    如果要解决这个问题,可以再定义一个宏。

    1. #define USE_V_MUTEX_LOCK static OS_ID db_v_mutex = OS_INVALID_ID

    需要使用 DB_VIEW_MUTEX_LOCK() 和 DB_VIEW_MUTEX_UNLOCK() 的地方加一行:

    1. USE_V_MUTEX_LOCK;

    此法为steedhorse提供,参考ATL的做法。

  • 江平译作《敏捷开发的艺术》

    2009-09-18 10:43:35

  • 360度考评

    2009-09-16 12:39:16

    版主发帖讨论测试团队的考核问题。

    有人提出360度考评。

    我说,这个共评只能作为辅助,而且权重不能太大。以共评为主,会使公司政 治越来越复杂。

    该人回复,基层员工并不复杂,政 治很少存在于基层,中高层才会有比较复杂的政 治,而这一层级是不存在考评的。

    有人的地方就有政 治,认为高层才有政 治那时大片看多了,大片里只有高官间才有勾心斗角、利益纷争。多看看生活片会发现小百姓中也有。人越多,越复杂。参与共评的人越多,就越乱。

    中高层不存在考评?大概是中高层的考评你看不到。

    360度考评如果用在绩效考核上,会在某种程度上把“做对正确的事”变成“取悦于人”。

    还是这句话,只能作为参考,不可作为主要。

    学东西不能只学皮毛。360度反馈评价的主要目的,应该是服务于员工的发展;而不是对员工进行行政管理,如提升、工资确定或绩效考核等。

  • 机顶盒的自动化测试

    2009-09-16 09:51:11

    看到论坛有人问机顶盒自动化测试,这里简单谈一下思路。

    首先,要明确自动化的范围。范围的确定是和成本强相关的。正如我之前的博客举的例子,如果只是每天洗一条内裤,大没有必要整洗衣机。

    那些大量的、重复的过程可以自动化。前提是考察搭建自动化平台的投入和自动化以后节省的劳动(产出),划算再弄,不划算不弄。

    这里不能想当然,论坛里有些朋友做WEB测试的、做应用程序测试的,觉得工作中很多地方自动化都是划算的,必须弄;但同时还有很多行业,很多场景中,是不划算的。

    另外还有一些场景,即便是大量的、重复的过程,但是每一步都是需要人眼来观察结果的,譬如最显然的场景GUI测试,把所有要做的操作录制了、模拟了,但是人还是不能离开,还是要盯着看每一个操作的结果显示。这种情况,如果录制、模拟操作不复杂,可以把双手解放一下,如果代价比较高,还是不要去折腾了。

    然后,回到机顶盒,我们讨论一般中低端的DVB机顶盒,无论是S,C,还是T。存储资源一般是FLASH有2M或4M,MEMORY有8M,16M,32M。

    以2M的FLASH,8M的MEMORY为例,在2M的代码空间里,往往只有大约512K可以给程序代码(二进制代码)。根据应用需要可能有上下64K的浮动,即448K到576K,而实际的二进制程序代码几乎占用了370K。142K的空间,是可以做一些事情的。可以模拟一些操作,打印一些结果。能做的事终究有限,而且机顶盒的测试,除非是长时间的反复做制式切换、换台、进出某菜单、开关机等不用观察过程中结果,其他的操作都是要观察过程中结果的。

    最简单、代价最小的自动化,大概就是买一个继电器,把盒子的开关键、或者换台键接出来,设置好接触断开的间隔时间,下班前开始,让它一晚上不停地开、关、开、关......

  • 书债

    2009-09-15 12:21:23

    收到china-pub送来的《瞬间之美》《Don't Make Me Think》《写给大家看的设计书》。

    《重构》还没看完。

    书债,书债。

  • “白盒测试for循环”的一个讨论

    2009-09-07 11:29:23

    一个帖子,问:白盒测试中,for循环怎样设计测试用例?

    回帖纷纷建议,以

    for(i=0; i<10; i++){ ... }
    为例,测试i值为0,-6,5,9,10。说是用到了等价类、边界值、因果图、错误推测方法。听上去挺复杂的。

    这就有点扯淡了,对于写好的这段程序,循环条件里已写了0-9,拿0,-6,5,9,10去测,这不是测编译器是否按照语言的语法编译程序吗?没事做了去测编译器。

    如果是想知道在这个场景下从0开始,到9,是否正确,那得知道得知道为什么是0,为什么是10,为什么增量是1。

    白盒测试中遇到循环,如何测试这个循环,是和上下文逻辑强相关的。

    拿0,-6,5,9,10去测是白测,该跑的肯定会跑,不该跑的肯定不会跑。否则这个编译器还能用?

  • 洗内裤引发的讨论

    2009-09-01 19:20:49

    对于前一篇博客的一个评论:

    自动化的意义在于,我洗10条短裤,这种重复又没啥技术含量的劳动,就可以交给机器大人去干了。
    而我只要制定出洗一条短裤的流程就好。
    所以用洗衣机洗一条短裤是了为洗10条‘20条短裤而不会出错,所以用洗衣机洗一条也是有意义的,不是直接用手洗吧洗吧可以代替的,也就是你不会用手洗吧洗吧,也是可以做到每天换短裤。
    做如下回复:
    自动化的意义我赞同。而且我从来也没有抹杀过。
    制定出做一次的流程我也赞同。前提是当实际情况确实是需要做很多次的时候。就是说假设你每天都要洗10条20条短裤。
    当你每天不用洗10条20条短裤的时候,不用去挖掘洗衣机洗1条短裤的意义。洗1条,就用手洗,可以了。
    附:所以...所以...不是...也就是...也是,这个逻辑已经不大清楚了。 
  • 关于自动测试工具

    2009-08-31 10:36:16

    看到一个帖子,标题是自动化测试的困惑。

    主贴内容:
    我是个新手,用自动化测试工具难道仅仅是为了录制、回放吗?如果是这样,自动化测试还有什么用。利用自动化测试工具真的能减轻我们的工作量吗?我到现在还没有明白使用自动化测试工具的好处。有谁能给出一个比较好的例子来说明这一点呢?

    我在回复里举了个例子:
    不是在哪都有用的,需要时再考虑用。如果每天只是洗一条内裤,何必用全自动洗衣机,放上一缸子水,轰咚轰咚搅上一个小时呢?

    深入这个话题。

    而且每天洗内裤是好习惯。

    敏捷似乎也提倡这个:每次解决一个bug,但一经发现,尽早解决。

    也就是说,敏捷不提倡攒10条内裤,然后放在洗衣机里转。

  • 上海Ideal科技寻觅一位测试工程师

    2009-08-31 09:59:39

    公司从事卫星电视机顶盒开发、生产。 www.bestdvb.com

    上海分公司从事软件研发,现寻觅一位测试工程师。

    工作性质:全职
    工作地点:上海

    职位描述:
    1 嵌入式系统的软件测试。会有与硬件系统相关的性能测试。
    2 了解客户的需求,配合研发工程师解决系统中出现的问题,以及对系统的优化。
    3 整理管理文档。制定测试流程及计划、方案。

    职位要求:
    1 对学历没有太多要求,专业最好是计算机及相关专业,或者理工科专业。也不排斥任何专业的,只要你
    2 主动、积极,有 细心、耐心,好奇心。
    3 良好的表达和沟通能力。能用简单的语言把问题说清楚。会聆听。
    4 团队精神和合作精神,对工作有热情。
    5 较强的学习欲望和学习能力。要知其然,也要知其所以然。打破砂锅问到底,还要问砂锅在哪里。
    6 不怕看英文SPEC。
    7 excel玩得转。

    女士优先。

    简历请发至 szhang at bestdvb.com

我的栏目

数据统计

  • 访问量: 10577
  • 日志数: 13
  • 图片数: 1
  • 建立时间: 2009-02-12
  • 更新时间: 2009-12-05

RSS订阅

Open Toolbar