发布新日志

  • 软件测试自动化流程与框架设计

    sunshinelius 发布于 2007-12-03 22:31:18

    一. 为何需要软件自动化测试框架
      软件测试框架是软件测试自动化规模发展到一定阶段的必然需求,因为自
    动化测试将会面临如下问题:
    1. 如何定义脚本的规范,使之具有良好的可复用性和可维护性。
    2. 众多脚本的管理问题,如何管理不同版本的测试脚本以及测试脚本之间
    的关联关系。
    3. 众多脚本的执行问题,如何无人值守地执行测试脚本,以节约测试时间
    4. 如何获得最大的自动化测试收益,怎样调整测试策略来达到最高的automation效益。
    目前在微软,IBM等自动化测试比较成熟的公司,都已经实现并应用了软件自动化测试框架。可以说,框架是自动化测试的趋势。

    二.软件自动化测试框架架构思想

    其实MS也好,IBM也好,自动化测试框架虽然形式各有不同,但思想却大同小异。总体来说,成熟的自动化测试框架必须提供以下几个功能:
    1. controller-agent的拓扑结构。此点最妙之处是扩展性极强,在空间上能够兼容各种类型测试程序及脚本,在时间上能够并发执行测试任务。
    2. 内嵌灵活的自动化测试案例的管理策略。此处可根据企业实际具体应用定义相应的测试组件
    3. 强大的测试报告和日志展现。一份好的自动化测试报告能满足不同人的口味和需要,比如给老板以清晰直观的测试图表分析;给开发人员以强大的日志debug分析;给测试人员以bug自动关联作用。

    下面以automation center为例,分析一下自动化测试框架的设计


    展现层:
    给终端用户提供基于Web页面的四大功能模块
    ·  测试任务
     发起安装/测试任务,并对任务状态进行实时监控
    ·  测试结果
     展现测试结果,生成测试报告,邮件通知,提交bug全程自动化
    ·  日志分析
     SMB协议访问日志服务器,轻松获得automation执行时的日志和抓图
    ·  AC管理
       脚本管理策略
       测试组件策略
       测试实例生成
       Agent 资源管理,添加/删除
       Server资源管理,添加/删除
       AC核心设置
    控制层:
    controller是AC核心,负责如下工作
    ·  接收并处理用户发送的任务请求
    ·  管理和控制安装/测试Agent
    ·  分析和整理测试结果
    ·  内嵌测试报表/邮件逻辑
    ·  连接数据库,日志服务器和脚本服务器
    Agent层:
    Agent 安装在任务机上,负责:
    ·  执行安装任务
    ·  执行测试任务
    ·  生成log/抓图数据,供后续分析

    框架应用策略
    1. 自动化测试框架是代码,流程,策略的集合(这句话已经耳熟能详了,但能深刻理解并能成功地用到工作实践中却不容易)
    2. 当你有超过10个自动化测试案例时,就应该开始考虑自动化测试框架的实施了(规范,管理,执行策略等等)
    3. 实现框架的语言以编译语言为优先选择(我看过用vbscrīpt编写的上万行的框架代码,惨不忍睹,维护和扩展那是相当滴困难)
    4. 在设计时,框架和案例要分工清楚明确(框架,纲举目张也,不宜管得太多太细,否则案例丧失了灵活性,框架推广起来就步履维艰了,嘿嘿)

     

  • 我看面试!

    漫不经心 发布于 2008-04-11 17:33:38

          为什么不把面试看成是一场难得的对话?试着更多地把自己定位为一个前来学习人生和工作经验的学生,而面试官作为一个愿意与你分享关于工作、职业发展和 人生经验的前辈。你会发现,抱着这种心态,面试压抑的气氛在不知不觉中从一问一答,而慢慢地变成了一个双向的交流。事实上,甚至应该这么说,能够和杰出的 职场人士如此平等、轻易地交流(特别是想到这些人将来可能会是你好几个级别以上的老板时),面试真是再理想不过的一个机会了。
          对于那些平日忙于在商业世界里打拼的面试官们来说,有机会回想到自己的过去,见到一张张写满渴望、勇气的脸庞,为什么不和眼前的这个看上去聪明、可爱和善解人意的孩子聊聊自己的过去,指点一下他未来的发展,多获得一些崇敬的目光呢?他们当然会这样做,只要你给他们机会。
          对于任何一个富有远见的组织来说,招揽到出色的人才,无论对于公司还是其他机构,都是成功地完成自己的使命的基础。面试对于公司的意义在于,提供一个认识 候选人的机会,从而在此基础上判断,谁是更加适合公司需要的人才。尽管,每家公司的面试组织程序会有所不同,但是它们还是有基本相同的先后顺序。了解这些 基本的程序,能够帮助面试者减少对面试的神秘感,增加信心,更好地设计自己的面试策略。
    通常面试程序可以被分成以下几个部分:
      (1)确定所需要招聘的职位的工作描述、薪酬范围和应聘者所需要的资格。
      (2)通过招聘会、海报、广告等形式,把招聘信息传达给潜在的应聘者。
      (3)收集应聘者的简历,筛选简历得到可以进一步面试的合适数量的应聘者。
      (4)电话面试。一般由人力资源部门或者资历比较浅的分析员或者咨询员打来,在面试中进一步确认应聘者的背景、语言表达能力等。通过筛选得到可以进一步面试的合适数量的应聘者。
      (5)第一轮面试。
      (6)第二轮面试。
      (7)确定入选的候选人,人力资源部门和他们保持联系,推销公司,确保他们接受合同。同时,公司也可能继续和几个作为万一“正选”拒绝接受要约后的“后备”候选人保持“暧昧”的关系。
      (8)人力资源部最后检查应聘者的背景、提供的材料无误。

         你在申请公司的时候不一定会经历所有的程序。比方说,电话面试往往只是那些非常强调英语口语能力的外企才有的步骤,他们希望借此道程序排除一部分口语能力不强的应聘者,国企、私营企业或者政府机关,基本上不会有这道门槛。
            爱因斯坦曾经这样对年轻学生解释过相对论:当你和一个美丽的姑娘坐上两个小时,你会感到好像坐了1分钟;但要是在炽热的火炉边,哪怕只坐上1分钟,你却感到好像是坐了两小时。
         同样,面试可能是世界上最漫长的30分钟,也可能是世界上最短暂的30分钟。当你和你的面试官都有一种频频想看表的冲动时,抱歉,你的这场面试看起来是 失败了。而当你走出面试间,一低头看表,发现不知不觉地已经超出了30分钟时,这往往是证明你刚才的面试进行得很顺利。
         一个面试官就曾经告诉我,当他在面试开始5分钟后,就决定不可能给这个应聘者任何机会的时候,他恨不得立刻就结束这场面试。但是,他不能,因此,他只好盯着手表,等到刚过25分钟的时候,立刻开始问应聘者:你还有什么问题吗?
           对你而言,控制时间和节奏成为了和给出好的答案同样重要的任务,如果前者不是更重要的话。有几个重要的原则你必须记住:
    (1)你必须努力掌握对节奏的控制权,而不要把它交给你的面试官。
       如果你回答问题总是拖沓冗长、毫无逻辑也看不出什么时候能结束,面试官会不得不总是打断你的回答:“我明白你的意思了,那么,下一个问题是……”这种被打断回答的情况往往会带来紧张,出现几次,你就会发现清晰的思维和顺畅的表达就这样被打断了。
       所以,千万不要给面试官这种机会。通常情况下,只要你把握得当,他们也并不会主动地抢。
        然而也有这样的面试,面试官无意或者故意地不断打断你的回答,试图获得面试节奏的控制权。那么,在这种情况下,你必须保持冷静,努力地把节奏感再抢回 来。你可以在面试官突然打断你的回答,插入一个问题时,有意识地保持10秒钟的沉默,装作在思索这个问题,实际上是在冷静,找回自信和节奏,然后用一种和 刚才回答问题不同的语速重新开始。还有的时候,当你觉得你是在回答到关键时刻被打断的话,不要就此罢休,你应该在回答被打断之后的新问题前,有礼貌地说: “在我回答这个问题之前,我觉得我应该对刚才那个问题的回答补充一点……”然后尽快完成你刚才没有机会完成的观点。

    (2)永远不要在一个问题上纠缠太久。
        这15分钟,或者说整个面试,就是一张你无法先看到整张试卷的试题,有点像GRE的机考,更糟糕的是,你实际上连每道题的分值都不知道。在面试的时候, 你不知道你在努力地向面试官说清楚的那个复杂的问题究竟能给你增加多少分,而你花了七八分钟在这个问题上,也可能下一个问题对你来说既简单、分数又多。所 以,当一个问题开始出现你很难说清的情况时,不要纠缠太久,简单地说:“关于这个问题,我想我现在只能说出这么多了。”让面试向你的下个机会走去。

    (3)在15分钟内取得尽量多的共识。
       在一般情况下,面试官不是来寻找一个永远的“持异议者”的。当你在回答一些关于观点、价值、方法方面的问题时,你会发现,也许经常会出现面试官频频点头,或者他面无表情,甚至摇头的情况。点头很大程度上说明你们的共识,而通常,共识比异议更容易给你的表现加分。
       熬过了这15分钟后,接下来是你最后的机会了。面试官通常会问你有没有任何问题问他。永远别说没有,除非他之前告诉你他已经决定录用你了。最后的问题可能毁了你之前的所有的努力,也可能把你从一场失败的面试中挽救回来。
       然而想出一个好的、最后的问题往往比准备一个好的自我介绍还要难。有的时候,你希望通过一个好的问题,让人对你刮目相看。但是通常你会发现,更容易的是问一个面试官有话可回答的问题,然后你加上几句评价,把这个面试画上句号。
        如果你之前的面试进行得都很顺利的话,在最后一个问题上应该保守一些,只要不犯错误就行。所以你可以问问面试官怎么走进这一行的,怎么看待这一行等等。 如果你之前的面试感觉不佳,你希望通过最后一个问题来绝地反击的话,你不妨问面试官一个让他给你出主意的问题,顺带着你可以说出一个你没有来得及在面试中 提起的卖点,加深面试官对你正面的评价。
       比方说,我知道的一个聪明的问题,我的一个好朋友明白自己在面试中的英语口语能力令面试官一 直表现得对她缺乏兴趣,于是她最后问道:“您知道,我在高中的时候一直是学俄语的,进入大学后我才从ABC开始学英语,现在刚刚学了3年。虽然我已经可以 在托福考试中取得630分的成绩,但我知道我的英语口语还需要很大的提高,您能在这方面给我一些好的指点吗?”
       那位香港长大、哈佛毕业的面试官立刻有些羞涩地说:“不、不,你的英语已经很让人满意了。我是中国人,我的中文说得还没有你的英文好。你只学了3年就已经这么好了,应该是你给我一些指点。”
       结果,这个只学了3年英语的女孩子击败了其他学了十几年英文、口语比她好得多的竞争者——我觉得她就只用了这最后一个问题即确定胜势。
  • 面试题目z

    fanjianmin 发布于 2008-09-03 10:58:46

    软件测试专业网站:51Testing软件测试网W:gdo:o
    01. 为什么要在一个团队中开展软件测试工作
    u x X&Lcf'Y136894因 为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工 作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。
    CG)P:d-g:L4U13689402. 您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?软件测试专业网站:51Testing软件测试网 h DQ-_ Zk
    我曾经做过web测试,后台测试,客户端软件,其中包括功能测试性能测试,用户体验测试。最擅长的是功能测试
    G'g6k TC {Z#I"A13689403. 您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同04. 的测试类型的区别与联系(如功能测试、性能测试……)
    I]xk'e](q7p"et136894测试类型有:功能测试,性能测试,界面测试。
    L ]^e3G Ii136894功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。 软件测试专业网站:51Testing软件测试网,B:Pp Sd X'b9u
    性能测试是通过自动化测试工具模 拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作 负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供 的最大服务级别的测试。软件测试专业网站:51Testing软件测试网}.Q3G@-i0{{Y F
    界 面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。 同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实 用强大的功能都可能在用户的畏惧与放弃中付诸东流。
    ,QD-R H$d136894区 别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界 面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前 台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题 的,然后再考虑该功能点的性能测试
    QY Y&l |.}cn13689405.  请试着比较一下黑盒测试、白盒测试单元测试、集成测试、系统测试、验收测试的区别与联系。
    D^G n*~"a2~'J(c136894黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
    NR;|Z2S*p-WcR136894白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
    C8N6]-A7Cu&{136894   软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的 需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:软件测试专业网站:51Testing软件测试网K\r!i*O m*~K+q9|
    1、是否有不正确或遗漏的功能?
    9c,NR8nn1368942、在接口上,输入是否能正确的接受?能否输出正确的结果?
    b&z[]^t h1368943、是否有数据结构错误或外部信息(例如数据文件)访问错误?
    0eXSd'`,i"z4@Z1368944、性能上是否能够满足要求?软件测试专业网站:51Testing软件测试网`"N]4g4E+G s;V5]\se
    5、是否有初始化或终止性错误?软件测试专业网站:51Testing软件测试网m:~c/WI \
       软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或 选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。 白盒测试主要是想对程序模块进行如下检查:
    {]J-fc%v b1368941、对程序模块的所有独立的执行路径至少测试一遍。软件测试专业网站:51Testing软件测试网9^ur+KD.n x
    2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。软件测试专业网站:51Testing软件测试网`!j&AN)M
    3、在循环的边界和运行的界限内执行循环体。
    6A)S0`0K9WTf1368944、测试内部数据结构的有效性,等等。软件测试专业网站:51Testing软件测试网n/|)V|5r&YRn2e`6U
    单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
    9y8u;?E5?)D136894      单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
    X6r8]6a%Cb136894集 成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意 义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将 您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
    o Lk&RO m136894系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)软件测试专业网站:51Testing软件测试网 {!l2J#j C#gdI Y
           系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。软件测试专业网站:51Testing软件测试网&avk} \5{ a%J7f
    验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。软件测试专业网站:51Testing软件测试网l&K+F6Tb,C pX
    验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
    %TL.lX"KI{13689406. 测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
    +d&|,oZ,H+OO`"m136894软 件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助 软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中 的各种变更。软件测试专业网站:51Testing软件测试网 J:v/{7a Y.Ul
    测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)软件测试专业网站:51Testing软件测试网s;C*zD pj9S }cE
    07. 您认为做好测试计划工作的关键是什么?软件测试专业网站:51Testing软件测试网f(a _!Mt}1^)J
    1. 明确测试的目标,增强测试计划的实用性软件测试专业网站:51Testing软件测试网#C"nv N ] L
    编 写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软 件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确
    N+z%wB!h9q;?tY1368942.坚持“5W”规则,明确内容与过程
    &Z({/~l7K[136894“5W” 规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”规 则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的 方法和工具(How),给出测试文档和软件的存放位置(Where)。软件测试专业网站:51Testing软件测试网2\A1?+T$\8A6\'iLCZd
    3.采用评审和更新机制,保证测试计划满足实际需求
    :ln([#?q3I136894测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。
    qSX:r}+}.wz*u1368944. 分别创建测试计划与测试详细规格、测试用例
    :]*{-I x mLO136894应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。 软件测试专业网站:51Testing软件测试网3xF ?+e%@.o~%Q~yW
    08. 您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。软件测试专业网站:51Testing软件测试网0P)^|-RS$C^
    1.等价类划分
    ,V n#f(oPM136894划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
    t8H;B`9W4S1368942.边界值分析法软件测试专业网站:51Testing软件测试网c'dM C _)y
      边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.软件测试专业网站:51Testing软件测试网8j R!NC+[
      使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.软件测试专业网站:51Testing软件测试网;K|,|yHI)SB"l
    3.错误推测法软件测试专业网站:51Testing软件测试网L!L:Z QR V9V
      基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.软件测试专业网站:51Testing软件测试网z I{BuE
       错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块 中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一 行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.软件测试专业网站:51Testing软件测试网:PZj3b;s/H*W/MS
    4.因果图方法
    ;z:F@Vm%V"[N136894   前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会 产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一 种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表.  它适合于检查程序输入条件的各种组合情况. 软件测试专业网站:51Testing软件测试网(@5hV(_&R+bK[ ]
    08.您认为做好测试用例设计工作的关键是什么?
    h5M:~)~w/k.K$f136894白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果软件测试专业网站:51Testing软件测试网Pv S0U r-}&q%wU
    黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题软件测试专业网站:51Testing软件测试网kMg]Y#n
    09. 请以您以往的实际工作为例,10. 详细的描述一次测试用例设计的完整的过程。软件测试专业网站:51Testing软件测试网8|X1d&D;e ^DU
    就说最近的这次网站功能的测试吧
    8~.B1{,gM3]+Pl136894首先:得到相关文档(需求文档和设计文档),理解需求和设计设计思想后,想好测试策略(测试计划简单点就OK了),考虑到测试环境,测试用例,测试时间等问题。
    t$C N-Hq,\g*i136894第 二步:设计测试用例,测试策略是:把网站部分的功能点测试完,然后在进行系统测试(另外个模块呢有另一个测试人员负责,可以进行联调测试),网站模块的测 试基本是功能测试和界面测试(用户并发的可能性很小,所以不考虑):这次的网站的输入数据呢是使用数据库中的某张表记录,如果表中某一数据记录中新加进来 的(还没有被处理的,有个标志位),网站启动后会立刻去刷那张表,得到多条数据,然后在进行处理。处理过程中,会经历3个步骤,网站才算完成了它的任务。 有3个步骤呢,就可以分别对这3个步骤进行测试用例的设计,尽量覆盖到各种输入情况(包括数据库中的数据,用户的输入等),得出了差不多50个用例。界面 测试,也就是用户看的到的地方,包括发送的邮件和用户填写资料的页面展示。软件测试专业网站:51Testing软件测试网h8Y7ihz0X)~%v
    第 三步:搭建测试环境(为什么这个时候考虑测试环境呢?因为我对网站环境已经很熟了,只有有机器能空于下来做该功能测试就可以做了),因为网站本身的环境搭 建和其他的系统有点不同,它需要的测试环境比较麻烦,需要web服务器(Apache,tomcat),不过这次需求呢,网站部分只用到了tomcat, 所以只要有tomcat即可
    UeI:[4r3wb cZ)r136894第四步:执行测试
    YzM;j~~LE13689411. 您以往是否曾经从事过性能测试工作?如果有,12. 请尽可能的详细描述您以往的性能测试工作的完整过程。
    i N/KZY ?!{136894是的,曾经做过网站方面的性能测试,虽然做的时间并不久(2个月吧),当时呢,是有位网站性能测试经验非常丰富的前辈带着我一起做。软件测试专业网站:51Testing软件测试网;e(G5^ @ KM9M|
    性能测试类型包括负载测试,强度测试,容量测试等软件测试专业网站:51Testing软件测试网7@],P&[6~LFJ
          负载测试:负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。软件测试专业网站:51Testing软件测试网t8b0@{1Z W Y%[
          强度测试: 强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。软件测试专业网站:51Testing软件测试网"C}0` z+bxr0L&^;{5c
          容量测试:确定系统可处理同时在线的最大用户数   软件测试专业网站:51Testing软件测试网'^'o&h(Yb]
    在网站流量逐渐加大的情况下,开始考虑做性能测试了,首先要写好性能测试计划,根据运营数据得出流量最大的页面(如果是第一次的话,一般是首页,下载页,个人帐户页流量最大,而且以某种百分比),软件测试专业网站:51Testing软件测试网:}uG9P?9s;wx\%F L
    Web服务器指标指标:软件测试专业网站:51Testing软件测试网I,Hio2Ffjmf
    * Avg Rps: 平均每秒钟响应次数=总请求时间 / 秒数;
    ]2I;}F2b{136894* Successful Rounds:成功的请求;
    (I8s0hN|136894* Failed Rounds :失败的请求; 软件测试专业网站:51Testing软件测试网]9Qj8E {"mvI5_ A
    * Successful Hits :成功的点击次数; 软件测试专业网站:51Testing软件测试网U*^h!ew v,@~
    * Failed Hits :失败的点击次数; 软件测试专业网站:51Testing软件测试网1D/Q~ i(pi#u5T
    * Hits Per Second :每秒点击次数;
    F(B h`/D/cOU136894* Successful Hits Per Second :每秒成功的点击次数; 软件测试专业网站:51Testing软件测试网&Z:F2wZ4]+i0QR;^
    * Failed Hits Per Second :每秒失败的点击次数; 软件测试专业网站:51Testing软件测试网~8T2A"ZL
    * Attempted Connections :尝试链接数;

    13. 您在从事性能测试工作时,14. 是否使用过一些测试工具?如果有,15. 请试述该工具的工作原理,16. 并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。软件测试专业网站:51Testing软件测试网pm[&x6M
    17. 您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?
    :d7Q)TFL H4{$m13689418. 在您以往的工作中,19. 一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
    V @ b0v(\ K a'K13689420. 您以往所从事的软件测试工作中,21. 是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,22. 请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
    &N'VW9xz-s"E13689423. 您认为在测试人员同24. 开发人员的沟通过程中,25. 如何提高沟通的效率和改善沟通的效果?维持测试人员同26. 开发团队中其他成员良好的人际关系的关键是什么?
    uF+?"iv-Pj5W6u13689427. 在您以往的测试工作中,28. 最让您感到不29. 满意或者不30. 堪回首的事情是什么?您是如何来对待这些事情的?
    7|OL;vl,Y4Bd13689431. 在即将完成这次笔试前,32. 您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)软件测试专业网站:51Testing软件测试网(L4HlGga+Psv6f
    33.     你对测试最大的兴趣在哪里?为什么?
    '}6]Q0d'j-a?h136894最 大的兴趣就是测试有难度,有挑战性!做测试越久越能感觉到做好测试有多难。曾经在无忧测试网上看到一篇文章,是关于如何做好一名测试工程师。一共罗列了 11,12点,有部分是和人的性格有关,有部分需要后天的努力。但除了性格有关的1,2点我没有把握,其他点我都很有信心做好它。软件测试专业网站:51Testing软件测试网(H'Q G}8bc&qn!t
    刚 开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着做测试需要很多技能才能做的好,虽然入门容易,但做好很难,比开发更难, 虽然当时我很想做开发(学校专业课我基本上不缺席,因为我喜欢我的专业),但看到测试比开发更难更有挑战性,想做好测试的意志就更坚定了。
    h8@-H3?g.s];O0O136894不到一年半的测试工作中,当时的感动和热情没有减退一点(即使环境问题以及自身经验,技术的不足,做测试的你一定也能理解)。
    :q*g(P^-li5nIZp136894我 觉得做测试整个过程中有2点让我觉得很有难度(对我来说,有难度的东西我就非常感兴趣),第一是测试用例的设计,因为测试的精华就在测试用例的设计上了, 要在版本出来之前,把用例写好,用什么测试方法写?(也就是测试计划或测试策略),如果你刚测试一个新任务时,你得花一定的时间去消化业务需求和技术基 础,业务需求很好理解(多和产品经理和开发人员沟通就能达到目的),而技术基础可就没那么简单了,这需要你自觉的学习能力,比如说网站吧,最基本的技术知 识你要知道网站内部是怎么运作的的,后台是怎么响应用户请求的?测试环境如何搭建?这些都需要最早的学好。至少在开始测试之前能做好基本的准备,可能会遇 到什么难题?需求细节是不是没有确定好?这些问题都能在设计用例的时候发现。软件测试专业网站:51Testing软件测试网|+z+["?"Z3l?d]F
    第 二是发现BUG的时候了,这应该是测试人员最基本的任务了,一般按测试用例开始测试就能发现大部分的bug,还有一部分bug需要测试的过程中更了解所测 版本的情况获得更多信息,补充测试用例,测试出bug。还有如何发现bug?这就需要在测试用例有效的情况下,通过细心和耐心去发现bug了,每个用例都 有可能发现bug,每个地方都有可能出错,所以测试过程中思维要清晰(测试过程数据流及结果都得看仔细了,bug都在里面发现的)。如何描述bug也很有 讲究,bug在什么情况下会产生,如果条件变化一点点,就不会有这个bug,以哪些最少的操作步骤就能重现这个bug,这个bug产生的规律是什么?如果 你够厉害的话,可以帮开发人员初步定位问题。
    v4W`*kd+U~etb*D13689434. 你的测试职业发展是什么?
    FK8J&Ui_136894测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年累积测试经验,按如何做好测试工程师的11,12点要求自己,不断的更新自己改正自己,做好测试任务。
    6vW5['sb13689435. 你自认为测试的优势在哪里?
    J-XJ})v J4t%qmX136894优势在于我对测试坚定不移的信心和热情,虽然经验还不够,但测试需要的基本技能我有信心在工作中得以发挥。软件测试专业网站:51Testing软件测试网!NX]-h.o;HE:B@0{
    36. 你以前工作时的测试流程是什么?
    6O @|'sBt*f-n'v6d136894公 司对测试流程没有规定如何做,但每个测试人员都有自己的一套测试流程。我说下我1年来不断改正(自己总结,吸取同行的方法)后的流程吧。需求评审(有开发 人员,产品经理,测试人员,项目经理)->需求确定(出一份确定的需求文档)->开发设计文档(开发人员在开始写代码前就能输出设计文档)- >想好测试策略,写出测试用例->发给开发人员和测试经理看看(非正式的评审用例)->接到测试版本->执行测试用例(中间可能 会补充用例)->提交bug(有些bug需要开发人员的确定(严重级别的,或突然发现的在测试用例范围之外的,难以重现的),有些可以直接录制进 TD)->开发人员修改(可以在测试过程中快速的修改)->回归测试(可能又会发现新问题,再按流程开始跑)。
    s;j[Y){.uuJ"{13689437. 当开发人员说不38. 是BUG时,39. 你如何应付?软件测试专业网站:51Testing软件测试网1O7~j z3k
    开 发人员说不是bug,有2种情况,一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动,3方商量确定好后再看要不要 改。二是这种情况不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出是BUG的依据是什么?如果被用户发现或出了问题,会有什么不良结果?程序 员可能会给你很多理由,你可以对他的解释进行反驳。如果还是不行,那我可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修 改就不改。其实有些真的不是bug,我也只是建议的方式写进TD中,如果开发人员不修改也没有大问题。如果确定是bug的话,一定要坚持自己的立场,让问 题得到最后的确认。
    H^q.BS[`p13689423.你为什么想离开目前的职务?
    iC_8Nq8eHh? v136894因 为公司运作情况并不理想,公司需要调整部门体系,公司考虑到缩减部门人员,所以大批量的裁员(有6,7个),这是我的第一份工作,对公司也有较深的感情, 因为在这里我找到了职业理想(就是测试),所以公司需要精简人员,我自愿退出。虽然很舍不得,但我将会有新的发挥能力的舞台。
    8R io!L4v136894  24:你对我们公司了解有多少?

      25:你找工作时,最重要的考虑因素为何?软件测试专业网站:51Testing软件测试网/O,] LW7G'})t
    工作的性质和内容是否能让我发挥所长,并不断成长。
    sK#v"s v"V AJ ua13689426:为什么我们应该录取你?
    VJQc fKB"d:[*J136894您可以由我过去的工作表现所呈现的客观数据,明显地看出我全力以赴的工作态度。软件测试专业网站:51Testing软件测试网1~jn)l7nvU|
      27:请谈谈你个人的最大特色。软件测试专业网站:51Testing软件测试网lW@.wHe _
    我的坚持度很高,事情没有做到一个令人满意的结果,绝不罢手。软件测试专业网站:51Testing软件测试网#X8h9rV ~P4N`Ms
    28.白箱测试和黑箱测试是什么?什么是回归测试?
    5E9H)d+[G/Ejb136894    29。单元测试、集成测试、系统测试的侧重点是什么?软件测试专业网站:51Testing软件测试网B] I0O0su P5i D ~
        30。设计用例的方法、依据有那些?软件测试专业网站:51Testing软件测试网-j7W D)FgU7j^1b6w
        31。一个测试工程师应具备那些素质和技能?
    u/gT#Bl4k'J136894    32.集成测试通常都有那些策略?
    YTGa0wqw&F m0E136894    33.你用过的测试工具的主要功能、性能及其他?软件测试专业网站:51Testing软件测试网y:Y4a-@t s
        34.一个缺陷测试报告的组成
    { [Qx tD%@]4bz1_136894    35.基于WEB信息管理系统测试时应考虑的因素有哪些?
    m(j!F-_s#L/Q0Y^13689436.软件测试项目从什么时候开始,?为什么?
    #@ \s4w-O7K.I h136894     37.需求测试注意事项有哪些?软件测试专业网站:51Testing软件测试网(^1Ib!@(?7D
         38.简述一下缺陷的生命周期
    +eS7]u|~#X1S136894     39.测试分析测试用例注意(事项)?软件测试专业网站:51Testing软件测试网1?^b X9[#V l]
    你在你所在的公司是怎么开展测试工作的?是如何组织的?软件测试专业网站:51Testing软件测试网U7R,M UBv-e
    你认为理想的测试流程是什么样子?
    3V5C.\#]*R {136894你是怎样工作的?软件测试专业网站:51Testing软件测试网*vH(B"n2ORP
    软件测试活动的生命周期是什么?软件测试专业网站:51Testing软件测试网 X)d'lqN'i X!KT
    请画出软件测试活动的流程图?
    Wb'^*y7yvh136894针对缺陷采取怎样管理措施?软件测试专业网站:51Testing软件测试网]1u6AJ II5?
    什么是测试评估?测试评估的范围是什么?软件测试专业网站:51Testing软件测试网R-ad2a}6q V&Y^
    如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?软件测试专业网站:51Testing软件测试网3i9Uk'J l#W
    测试结束的标准是什么?软件测试专业网站:51Testing软件测试网/R/B/q'c3fy'vsn)u(T
    软件验收测试除了alpha,beta测试以外,还有哪一种?
    3?h;A^9uCa;uVy136894做测试多久了?软件测试专业网站:51Testing软件测试网 F+}-T6q)Y]X
    以前做过哪些项目?
    $J(f*ALq4bk136894你们以前测试的流程是怎样的?软件测试专业网站:51Testing软件测试网0}sq1?*X7Y y
    <答:测试计划-测试用例设计-测试执行-测试分析报告>软件测试专业网站:51Testing软件测试网7Ie s9oo[O
    用过哪些测试工具?
    *@u7Ht-Tmbjo136894为什么选择测试这行?软件测试专业网站:51Testing软件测试网3k:d'v@s2a[X
    <答:它是一个新兴的行业,有发展潜力,而且很锻炼人,需要掌握更多的技能,比做开发要更难>软件测试专业网站:51Testing软件测试网 w_~Lt
    为什么值得他们公司雇用?软件测试专业网站:51Testing软件测试网 G3@3L TM7n
    如果我雇用你,你能给部门带来什么贡献?软件测试专业网站:51Testing软件测试网B{g[Du'j7S9J
    如何从工作中看出你是个自动自觉的人软件测试专业网站:51Testing软件测试网"l~k:B1\eL"|J$|
    你的工作通常能在时限内完成吗.(我想问一下就是她问这个问题的动机是什么)
    ']GCp,_)u/M136894通常你对于别人批评你会有什么样的反应软件测试专业网站:51Testing软件测试网8Iq%|#R iJ0y d)p
    如果明知这样做不对,你还会依主管的指过去做吗软件测试专业网站:51Testing软件测试网Yq~7i[p C
    如果你接到一个客户抱怨的电话,你确知无法解决他的问题,你会怎么处理软件测试专业网站:51Testing软件测试网e^;Sobhtn `Up
    你觉得什么样的人最难相处
    *C6fF\ p K[8I136894为什么值得他们公司雇用?
    [e0aBlZ3k136894      帮助公司提高软件质量和测试部门的技术水平软件测试专业网站:51Testing软件测试网/P9c{'{smh
    如果我雇用你,你能给部门带来什么贡献?
    OtC`L |;_"baN{136894      分享我的测试经验和测试技能,提高测试部门技术水平软件测试专业网站:51Testing软件测试网bp1x"x5r:Q4{ T"Sp
    如何从工作中看出你是个自动自觉的人 软件测试专业网站:51Testing软件测试网Tr hY9E l
         自动自觉范围太广
    I7f6` ky136894      1. 工作成果软件测试专业网站:51Testing软件测试网"~S/Xx9~
          2. 工作质量  
    ,\bzPg H136894你的工作通常能在时限内完成吗.(我想问一下就是她问这个问题的动机是什么)软件测试专业网站:51Testing软件测试网2Q,[f1?.V
          在有足够的资源和合理的工作量的情况下,完全可以按时完成,并能比一般人做的更好软件测试专业网站:51Testing软件测试网DHA b!P(E&] r O
    通常你对于别人批评你会有什么样的反应
    6i1}`*iQ136894  有错即改,无措勉之软件测试专业网站:51Testing软件测试网-m`)Y iH5X
    如果明知这样做不对,你还会依主管的指过去做吗软件测试专业网站:51Testing软件测试网2S rAk*EJ~
         在公司内部下级是否有申诉渠道?软件测试专业网站:51Testing软件测试网&ft5F M,C uQb1V
    如果你接到一个客户抱怨的电话,你确知无法解决他的问题,你会怎么处理软件测试专业网站:51Testing软件测试网5e!qd6g%u z
        为什么抱怨?是怎么样的问题?软件测试专业网站:51Testing软件测试网 Qd#GsB5[
         如果是客服问题,提交客服部门解决
    "l wx:I#\136894    如果是质量问题,分析原因,下一版本改进软件测试专业网站:51Testing软件测试网P FBD${9N&I'zK
    你觉得什么样的人最难相处 软件测试专业网站:51Testing软件测试网8Ee-wq"L2_T"{
         自以为是的人软件测试专业网站:51Testing软件测试网&\6C6M+a,K$qR9t3Nati(k
    什么叫单元测试?
    (b2xq'X6O136894请就软件测试人员应该具备什么样的基本素质说说你的看法。软件测试专业网站:51Testing软件测试网,tHX^7rpu.Y!U
    请就如何在开发中进行软件质量控制说说你的看法
    O9V@:`~B)C f0U&l136894 简述软件测试的意义,以及软件测试的分类

    1、功能测试,性能测试,界面测试,安全测试(可以简单点,比如只涉及到COOKIES里的内容),压力测试(商业性质的网站) 等等,B/S软件也要根据其具体功能采用不同的测试策略。
    sjY"B:sd!Y)A n6N1368942、态度、责任心、自信、敏锐的观察力、良好的发散思维软件测试专业网站:51Testing软件测试网.sz6N^*U${[] D%U5K
    3、先设计后开发模式,加强单元测试,加强代码走查,有一套完整的白盒测试方法。关键是加强开发人员的质量意识,增进程序员向工程师水平发展。软件测试专业网站:51Testing软件测试网 D7L3|jz z6KR
    4、意义嘛,就自己想吧。软件测试的分类,这个很多人都按各种方法去分。无明确答案给你。

    对测试的理解——基本的测试知识,对测试是否认可? 75。软件测试专业网站:51Testing软件测试网[o3G}vo6N
       3、谈一谈过去自己的工作——了解经历、提供进一步提问的素材,表达能力  
    F+dSGCGmB5pB4E136894测试技能 软件测试专业网站:51Testing软件测试网)GD ?7e b*Tbws
    测试设计的方法并举例说明——测试技术的使用 软件测试专业网站:51Testing软件测试网;R]S"dl t+I
    测试工具——熟悉程度,能否与当前工作匹配?
    )A xJ b,E?-\136894如何做计划?如何跟踪计划?——日常工作能力 软件测试专业网站:51Testing软件测试网.p P9snU6|8}0KUaz
    如果开发人员提供的版本不满足测试的条件,如何做?——与开发人员协作的能力
    #fw4N ? O136894熟悉unix系统、oracle数据库吗?——是否具备系统知识 软件测试专业网站:51Testing软件测试网[F:XJ_ s4@Yt
    做过开发吗?写过哪些代码?——开发技能
    mf&M g3Ch6oi136894阅读英语文章,给出理解说明?——部分英语能力 软件测试专业网站:51Testing软件测试网[;VV+|g
    文档的意义——是否善于思考?(最简单的概念,不同层次的理解)
    W0I(}$W&|[p1Mdu136894假如进入我们公司,对我们哪些方面会有帮助?——讲讲自己的特长
    I Ud ? DQ)I5n3vS.o136894随便找一件物品,让其测试——测试的实际操作能力软件测试专业网站:51Testing软件测试网A-DT#ea^ MX
    软件测试的方法有?软件测试专业网站:51Testing软件测试网uH3o V)H np(oW
    软件测试的过程?软件测试专业网站:51Testing软件测试网Q\ y*R&` g
    有一个新的软件,假如你是测试工程师,该如何做?软件测试专业网站:51Testing软件测试网o,qb?M UAJ
    软件测试分哪两种方法?分别适合什么情况? 软件测试专业网站:51Testing软件测试网3] fn6J w]{i-B C
    2。一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。 软件测试专业网站:51Testing软件测试网S8Rp"jh)X!Si`6N
    3。软件测试的类型有那些?分别比较这些不同的测试类型的区别与联系。 软件测试专业网站:51Testing软件测试网+B;]6@ ~CX
    4。测试用例通常包括那些内容?着重阐述编制测试用例的具体做法 软件测试专业网站:51Testing软件测试网1cHXJ M
    5。在分别测试winform的C/S结构与测试WEB结构的软件是,应该采取什么样的方法分别测试?他们存在什么样的区别与联系? 软件测试专业网站:51Testing软件测试网Q}R;t1\E
    6。在测试winform的C/S结构软件时,发现这个软件的运行速度很慢,您会认为是什么原因?您会采取哪些方法去检查这个原因?
    .\eCyC_ S1368947。描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程 软件测试专业网站:51Testing软件测试网2Y#PEi @.F:W
    你在五年内的个人目标和职业目标分别是什么?
    Q#b.fWL136894  分析这个问题是用来了解你的计划能力的,通过这个问题,面试人同时还可以知道你的目标是否符合企业对你的安排。软件测试专业网站:51Testing软件测试网na\.}r&gb4K
      错误回答我想在将来的某个时候考虑这个问题。如今企业的领导者更换频繁,我认为做太多的个人计划是荒谬可笑的,不是吗?
    (y Om&zU'S;j136894   评论这种回答属于令人反感的一类。首先,当有人想了解你的目标时,"将来的某个时候"这种通俗说法并不奏效。其次,认为企业很脆弱,领导者更换频繁,这 种说法毫无疑问会令人反感,而且也是不合理的。最后,认为做计划可笑,看不起这个问题,而且反问面试人,这些都注定了这样的求职者最终会失败。软件测试专业网站:51Testing软件测试网4m(I.Oq BJ*u3^ pB3Im
      正确回答从现在起的五年之内,我希望能够在一个很好的职位上待几年,而且最好有一次晋升,然后就期待着下一步。不管是向上提升,还是在企业内横向调动,对我个人来说,我希望找到一家企业——一家愿意做相互投入的企业——待上一段时间。软件测试专业网站:51Testing软件测试网"D1kfjSnbz&I/BL3^%W
      评论这个问题没有回答得过分具体(那样可能会产生漏洞),而且它表明你有雄心,并且思考过在企业中的成长方式。通过表达横向调动和向上提升的愿望,表明你是一个有灵活性的人。
    C%]M IE136894 问题23 你怎样做出自己的职业选择?软件测试专业网站:51Testing软件测试网)A9\+g6q)Y)?D0E
      分析 面试人提出这个问题是为了了解求职者的动机,看看他(她)应聘这份工作是否有什么历史渊源,是否有职业规划,是不是仅仅在漫无目的地申请很多工作。软件测试专业网站:51Testing软件测试网 d:S&]!I,~` z
      错误回答 我一直都想在企业界工作。自孩提时代起,我就梦想自己至少也要成为大企业的副总裁。
    5\MVP2Pt(`136894  评论 除了难以令人相信之外,这种回答还存在一个问题:它表明求职者会对副总裁以下的职位不感兴趣。
    &?F5Y^y!SJ)[136894   正确回答 在上大学四年级前的那个夏天,我决定集中精力在某一领域谋求发展。尽管我是学商业的,但是我不知道自己最终会从事哪一行业的工作。我花了一定的时间考虑自 己的目标,想清楚了自己擅长做的事情以及想从工作中得到的东西,最后我得出了一个坚定的结论,那就是这个行业是最适合我的。软件测试专业网站:51Testing软件测试网L'b@!B&G5N*Su
      评论 这种回答表明,求职者认真地做过一些计划,缩小了自己的关注点,而且也认准了前进的方向。这种回答还表明,求职者理解个人职业规划的重要性,并且有能力做出认真的个人决策。
    -z5g*y|E#}1368941. 你都用什么测试方法
    C'i]QpO!F1368942.怎么编写案例
    Ct+b2v7c1368943.怎么才能够全面的测试到每一个点
    Q5i#} b#yT1368941. 你都用什么测试方法软件测试专业网站:51Testing软件测试网B.@O[S,c
    针对不同的产品或者系统或者模块,有不同的测试方法。总体而言有白盒测试和黑盒测试。
    s.j"i7Wm#Hb1368942.怎么编写案例软件测试专业网站:51Testing软件测试网@,]}5Nw [;e{
    案例的编写与测试阶段的定义有很大的关系。系统测试和unit测试的案例可能不同。总体而言测试案例根据系统的需求而定。
    u:B z!|%h1368943.怎么才能够全面的测试到每一个点
    qa @'g3^4x*L|136894测试的全面性主要需要在设计测试计划的时候考虑,从测试策略,产品需求等等多个角度考虑从而定义全部的测试点。
    q8cY6LX!]W1368941、谈谈软件测试技术,以及如何提高软件测试专业网站:51Testing软件测试网7~:[M6Yn2u
    2、谈谈软件测试职业发展,以及个人的打算
    nQL,O!B+o1368943、谈谈软件测试在企业的地位,也可以结合软件生命周期来谈软件测试专业网站:51Testing软件测试网9A? Hm7z U6i
    有可能清晰的思路比确切的答案更重要软件测试专业网站:51Testing软件测试网F bEfv3v-j%B
    在这里,主要说下笔试和面试的问题,希望大家共同参考。软件测试专业网站:51Testing软件测试网g$y7l6X-Gq
        1,一般公司里实际的软件测试流程是什么样的?你们公司又是怎样的?
    pm6j j iR Z136894    2,软件工程师要具有那些素质?
    4E5Xz)H@y&?~:Y136894    3,你会哪些测试工具?怎么操作?软件测试专业网站:51Testing软件测试网.B3Oj]0dQ8Q
        4,你能不能说下你的3到5年的职业计划(规划)软件测试专业网站:51Testing软件测试网G(MeA}?J{
        5,你觉得你来应聘有那些优势?软件测试专业网站:51Testing软件测试网3`{9N-a+{p0|{7gC
    其余的还好说,但就第4个问题,我感到不好说哦!希望大家给个意见软件测试专业网站:51Testing软件测试网-ug6p)nJ
    第一关:首先要自我介绍,自己的性格怎么样,目前的工作经历积累了一些什么经验取得了些什么值得一说的成果。然后要说说对软件测试怎么看?还有对于软件测试有什么自己的想法。为什么会想到要做这行(因为我的简历上的工作经历没有关于测试方面的)。哦,还有期望薪资。
    ~utD5kH136894第二关:认为软件测试人员所要具备的基本素质,如果遇到问题会怎样处理,如果得不到研发人员的配合(就是研发说这个不是问题)你又会怎么处理?然后就是一些基本概念,比如软件测试的流程有哪些?如果我上任了,首先会怎么开始自己的工作计划。
    b | f4D w2f-W136894(前两关通过了后面这个就好过多了)软件测试专业网站:51Testing软件测试网}U2H GCyXw
    第三关:像我介绍了一下公司的情况,告诉我主要针对什么内容的测试,会不会使用数据库。告诉我大概要做哪些内容,详细的可以上岗以后慢慢熟悉。
    Y+KJ-r9X/k(hR0S136894大概就这么多了,这对没有经过这一关的不知道有没有帮助,仅供参考吧
    %])Yr7?#`c"NC136894我觉得就像李波说的,关键是要给对方留下好印象:)

    面试官最后会问你有什么问题要问吗。作为应聘者的你一般不要说没问题问,这会给面试官留下你不太重视这份工作的坏印象。所以如果你想得到这份工作的话应该抓住这最后的表现自己的机会:
    al'h0Dq1P{)Y136894你可以问:
    8?0R*lub4j$d4fN.y1368941.        贵公司近期和远期的发展目标是什么?软件测试专业网站:51Testing软件测试网sX`2h@uRt9t0m9]
    2.        贵公司的主要竞争对手有哪些?
    "P Fo*^[r1368943.        贵公司有多少开发人员有多少测试人员?
    ;u.S3C SVFvV1368944.        贵公司又进一步扩充测试人员的计划吗?
    k3_%D7j-N;qEb#hC1368945.        如果我有幸能进入贵公司的话,我有怎么样的发展?软件测试专业网站:51Testing软件测试网E8W[ j}u8QH
    6.        测试人员的沟通能力很重要,贵公司有规范的沟通渠道吗?软件测试专业网站:51Testing软件测试网eiT:{ i o0G$izp
    7.        请介绍一下贵公司的福利情况。
    0L G@:h$qQ&Xs1368948.        请问我什么时候能知道结果?

  • 国外软件测试经典网站

    zhtao0608 发布于 2008-06-18 22:12:30

    2007-10-09 08:41:25

    http://bdonline.sqe.com/   一个关于网站测试方面的网页,对这方面感兴趣的人可以参考 51Testing软件测试网u'stNk"w
    http://citeseer.nj.nec.com/   一个丰富的电子书库,内容很多,而且提供著作的相关文档参考和下载,是作者非常推荐的一个资料参考网站 51Testing软件测试网$C+iuR~6t
    http://groups.yahoo.com/group/LoadRunner   性能测试工具LoadRunner的一个论坛 51Testing软件测试网zMj^3YhNV6lET
    http://groups.yahoo.com/grorp/testing-paperannou-nce/messages   提供网站上当前发布的软件测试资料列表
    {[ k-Zm VaZv8s0O4K0http://satc.gsfc.nasa.gov/homepage.html   软件保证中心是美国国家航天局(NASA)投资设立的一个软件可靠性和安全性研究中心,研究包括了度量、工具、风险等各个方面
    mL/k2]/P#pIE0http://seg.iit.nrc.ca/English/index.html   加拿大的一个研究软件工程质量方面的组织,可以提供研究论文的下载
    Y"e~&PX U8}_0http://sepo.nosc.mil   内容来自美国SAN DIEGO的软件工程机构(Sofrware Engineering Process Office)主页,包括软件工程知识方面的资料 51Testing软件测试网 cS0sK T-r:o
    http://www.asq.org/   是世界上最大的一个质量团体组织之一,有着比较丰富的论文资源,不过是收费的 51Testing软件测试网#\P%?.D N*m7OKmH
    http://www.automatED-testing.com/ 一个自动化软件测试和自然语言处理研究页面,属于个人网页,上面有些资源可供下载 51Testing软件测试网0r\F.yoB;I
    http://www.benchmarkresources.com/ 提供有关标杆方面的资料,也有一些其它软件测试方面的资料 51Testing软件测试网6tF"t7h0m],R4r5w
    http://www.betasoft.com/ 包含一些流行测试工具的介绍、下载和讨论,还提供测试方面的资料 51Testing软件测试网5H8jm u0x
    http://www.brunel.ac.uk/~csstmmh2/vast/home.html VASTT研究组织,主要从事通过切片技术测试技术和转换技术来验证和分析系统,对这方面技术感兴趣的人是可以在这里参考一些研究的项目及相关的一些主题信息
    Q4K"JX!^i [[LA0http://www.cc.gatech.edu/aristotle/ Aristole研究组织,研究软件系统分析、测试和维护等方面的技术,在测试方面的研究包括了回归测试、测试套最小化、面向对象软件测试等内容,该网站有丰富的论文资源可供下载
    1BZdJ-lT7\0http://www.computer.org/ IEEE是世界上最悠久,也是在最大的计算机社会团体,它的电子图书馆拥有众多计算机方面的论文资料,是研究计算机方面的一个重要资源参考来源
    6wX*D#A_Ql"W(]l(M/BE0http://www.cs.colostate.edu/testing/ 可靠性研究网站,有一些可靠性方面的论文资料 51Testing软件测试网g%ZmN PHX6G,z
    http://www.cs.york.ac.uk/testsig/ 约克大学的测试专业兴趣研究组网页,有比较丰富的资料下载,内容涵盖了测试的多个方面,包括测试自动化、测试数据生成、面向对象软件测试、验证确认过程等
    c+d,NR1D-U0http://www.csr.ncl.ac.uk/index.html 学校里面的一个软件可靠性研究中心,提供有关软件可靠性研究方面的一些信息和资料,对这方面感兴趣的人可以参考 51Testing软件测试网BDY_Cq!Y"c
    http://www.dcs.shef.ac.uk/research/groups/vt/ 学校里的一个验证和测试研究机构,有一些相关项目和论文可供参考
    x6I[6` QU~0http://www.esi.es/en/main/ ESI(欧洲软件组织),提供包括CMM评估方面的各种服务
    w*M@D4Ig0http://www.europeindia.org/cd02/index.htm 一个可靠性研究网站,有可靠性方面的一些资料提供参考
    |%Ae)XSIz0http://www.fortest.org.uk/ 一个测试研究网站,研究包括了静态测试技术(如模型检查、理论证明)和动态测试(如测试自动化、特定缺陷的检查、测试有效性分析等) 51Testing软件测试网.H%b.Y1QG2S | }
    http://www.grove.co.uk/ 一个有关软件测试和咨询机构的网站,有一些测试方面的课程和资料供下载 51Testing软件测试网Mz Uj eP*mh _H
    http://www.hq.nasa.gov/office/codeq/relpract/prcls-23.htm NASA可靠性设计实践资料
    3p|e`;o5p _Cd0http://www.io.com/~wazmo/ Bret Pettichord的主页,他的一个热点测试页面连接非常有价值,从中可以获得相当大的测试资料,很有价值 51Testing软件测试网)l,^b!B:jf,E
    http://www.iso.ch/iso/en/ISOOnline.frontpage 国际标准化组织,提供包括ISO标准系统方面的各类参考资料 51Testing软件测试网H j*T D9]Q"B
    http://www.isse.gmu.edu/faculty/ofut/classes/ 821-ootest/papers.html 提供面向对象和基于构架的测试方面著作下载,对这方面感兴趣的读者可以参考该网站,肯定有价值 51Testing软件测试网f w,rNK i I
    http://www.ivv.nasa.gov/ NASA设立的独立验证和确认机构,该机构提出了软件开发的全面验证和确认,在此可以获得这方面的研究资料
    n3MT0R8Hc3Ht.n0http://www.kaner.com/ 著名的测试专家Cem Kanner的主页,里面有许多关于测试的专题文章,相信对大家都有用。Cem Kanner关于测试的最著名的书要算Testing Software,这本书已成为一个测试人员的标准参考书
    c7X _*RA+Rh k0http://www.library.cmu.edu/Re-search/Engineer- ingAndSciences/CS+ECE/index.html 卡耐基梅陇大学网上图书馆,在这里你可以获得有关计算机方面各类论文资料,内容极其庞大,是研究软件测试不可获取的资料来源之一 51Testing软件测试网] E,K-b.S H!h)C ][8e
    http://www.loadtester.com/ 一个性能测试方面的网站,提供有关性能测试、性能监控等方面的资源,包括论文、论坛以及一些相关链接 51Testing软件测试网j3_Tv1y&aK*?
    http://www.mareinig.ch/mt/index.html 关于软件工程和应用开发领域的各种免费的实践知识、时事信息和资料文件下载,包括了测试方面的内容 51Testing软件测试网4p,N*Bi.u
    http://www.mtsu.ceu/-storm/ 软件测试在线资源,包括提供目前有哪些人在研究测试,测试工具列表连接,测试会议,测试新闻和讨论,软件测试文学(包括各种测试杂志,测试报告),各种测试研究组织等内容
    *{0I8[9p9|3[9F[:{0http://www.psqtcomference.com/ 实用软件质量技术和实用软件测试技术国际学术会议宣传网站,每年都会举行两次 51Testing软件测试网0Z*e j~yu
    http://www.qacity.com/front.htm 测试工程师资源网站,包含各种测试技术及相关资料下载
    {%I X3OYl}F0x0http://www.qaforums.com/ 关于软件质量保证方面的一个论坛,需要注册 51Testing软件测试网*b"m4gE&Z8x/J
    http://www.qaiusa.com/ QAI是一个提供质量保证方面咨询的国际著名机构,提供各种质量和测试方面证书认证
    #l'Vr7C$r4P:\0http://www.qualitytree.com/ 一个测试咨询提供商,有一些测试可供下载,有几篇关于缺陷管理方面的文章值得参考
    _ NG#iwJ(ok0http://www.rational.com/ IBM Rational的官方网站,可以在这里寻找测试方面的工具信息。IBM Rational提供测试方面一系列的工具,比较全面 51Testing软件测试网6C5c1a| O
    http://rexblackconsulting.com/Pages/publicat-ions.htm Rex Black的个人主页,有一些测试和测试管理方面的资料可供下载
    z_h4B+A F-Az4C0http://www.riceconsulting.com/ 一个测试咨询提供商,有一些测试资料可供下载,但不多 51Testing软件测试网]n8g"AE'^y'E1L8i P
    http://www.satisfice.com/ 包含James Bach关于软件测试和过程方面的很多论文,尤其在启发式测试策略方面值得参考
    dQwD`_0G ]0http://www.satisfice.com/seminars.shtml 一个黑盒软件测试方面的研讨会,主要由测试专家Cem Kanar和James Bach组织,有一些值得下载的资料
    \0`])B7N0http://www.sdmagazine.com/ 软件开发杂志,经常会有一些关于测试方面好的论文资料,同时还包括了项目和过程改进方面的课题,并且定期会有一些关于质量和测试方面的问题讨论 51Testing软件测试网 k1b"|2G?es.~J_
    http://www.sei.cmu.edu/ 著名的软件工程组织,承担美国国防部众多软件工程研究项目,在这里你可以获俄各类关于工程质量和测试方面的资料。该网站提供强有力的搜索功能,可以快速检索到你想要的论文资料,并且可以免费下载
    \pjw"[F}0http://www.soft.com/Institute/HotList/ 提供了网上软件质量热点连接,包括:专业团体组织连接、教育机构连接、商业咨询公司连接、质量相关技术会议连接、各类测试技术专题连接等 51Testing软件测试网*^ A2l0^"n7D@
    http://www.soft.com/News/QTN-Online/ 质量技术时事,提供有关测试质量方面的一些时事介绍信息,对于关心测试和质量发展的人士来说是很有价值的 51Testing软件测试网y:b_ w*WInB&b Hh
    http://www.softwaredioxide.com/ 包括软件工程(CMM,CMMI,项目管理)软件测试等方面的资源
    2D@1o!t?VH5[w7\4j0http://www.softwareqatest.com/ 软件质量/测试资源中心。该中心提供了常见的有关测试方面的FAQ资料,各质量/测试网站介绍,各质量/测试工具介绍,各质量/策划书籍介绍以及与测试相关的工作网站介绍 51Testing软件测试网:K3U9ci9i
    http://www.softwaretestinginstitute.com 一个软件测试机构,提供软件质量/测试方面的调查分析,测试计划模板,测试WWW的技术,如何获得测试证书的指导,测试方面书籍介绍,并且提供了一个测试论坛 51Testing软件测试网:L/`P l|M}0z
    http://www.sqatester.com/index.htm 一个包含各种测试和质量保证方面的技术网站,提供咨询和培训服务,并有一些测试人员社团组织,特色内容是缺陷处理方面的技术 51Testing软件测试网W8B-@n-K!X E3f4@
    http://www.sqe.com/ 一个软件质量工程服务性网站,组织软件测试自动化、STAR-EASE、STARWEST等方面的测试学术会议,并提供一些相关信息资料和课程服务
    o N j*w9L/s2|0http://www.stickyminds.com/ 提供关于软件测试和质量保证方面的当前发展信息资料,论文等资源 51Testing软件测试网U1^ S&p_*V'H
    http://www.stqemagazine.com/ 软件策划和质量工程杂志,经常有一些好的论文供下载,不过数量较少,更多地需要通过订购获得,内容还是很有价值的 51Testing软件测试网 v5r$C+^*f+BR[&Z$b
    http://www.tantara.ab.ca/ 软件质量方面的一个咨询网站,有过程改进方面的一些资料提供
    J;EA_OH7N0http://www.tcse.org/ IEEE的一个软件工程技术委员会,提供技术论文下载,并有一个功能强大的分类下载搜索功能,可以搜索到测试类型、测试管理、测试分析等各方面资料 51Testing软件测试网%kvh+q[C$R
    http://www.testing.com/ 测试技术专家Brain Marick的主页,包含了Marick 研究的一些资料和论文,该网页提供了测试模式方面的资料,值得研究。总之,如果对测试实践感兴趣,该网站一定不能错过
    Wc5r2^*f,tc+@vw0http://www.testingcenter.com/ 有一些测试方面的课程体系,有一些价值 51Testing软件测试网uW:WB_{zM
    http://www.testingconferences.com/asiastar/home 著名的AsiaStar测试国际学术会议官方网站,感兴趣的人一定不能错过 51Testing软件测试网Osy Of3w| ls
    http://www.testingstuff.com/ Kerry Zallar的个人主页,提供一些有关培训、工具、会议、论文方面的参考信息
    2K dB A H7U.? t^0http://www-sqi.cit.gu.edu.au/ 软件质量机构,有一些技术资料可以供下载,包括软件产品质量模型、再工程、软件质量改进等 51Testing软件测试网,O5yA-v0p
  • 学会思考,学会做人,学会做事!

    anny_lv 发布于 2008-06-19 22:16:00

        思考、做人、做事这三个词看起来没什么关系,可细细品味让人“回味悠长”!

        进了新公司,很偶然的遇到公司的总裁,很偶然的一个机会听总裁讲设计思路,很偶然的知道总裁不懂软件!

        大家都应该知道,国内很多软件企业的老总不是程序员出生,而我偏偏在一个不是软件公司的公司接受了一堂生动的需求分析课!

        主持会议的是我们的总裁,他从市场的角度分析软件如何才能有“灵魂”。他的思维和反应速度让我震惊,他所说的每句话都让我佩服。一个没有读过《软件工程》的人,竟然能说出那些我们没有注意的细节。是什么让他有如此的学识。思考了一下觉得的把三个词组合一下。

        思考,在做一件事的时候,请思考这件事是否值得你去做,对你以后的发展有何影响。我们拿黑盒测试做个例子吧。“公司让甲测试A功能,甲拿到代码后直接测试花了两天时间测出10个问题;公司让乙测试A功能,乙拿到代码后分析了一天,测试了一天,发现10个问题”,请问在这样的情况下,你会选择谁做你公司的测试?答案显而易见,是乙。那为什么会是乙呢?甲乙花了相同的时间查除了同样数量的问题,这就存在一个思考价值的问题。

        我们是测试(tester),而非工具,我们跟工具不同的是我们有思想,如何让测试用例有“灵魂”,需要我们花费时间去思考,去验证,去修改!这正是我们做事的态度,也就是做“人”。

        “人”这个字看起来简单,很佩服我们的祖先,一撇一那使之平衡,使之稳定。所以说做人不容易呀,稍微不留意,就能摔跤。而做事态度反应出人的本质。

        做事又跟思考分不开,回到我举的那个例子,如果之做事不思考是否能做“好”事呢?

        最近总是在考虑一个问题如何做好测试,测试的范围太广,如何来做好呢?请大家注意三个词“思考”、“做人”、“做事”。

  • 我看“阿里巴巴测试难题”——1

    huior 发布于 2008-06-18 09:26:20

    今天看到了梁兄在博客里发的《阿里巴巴测试难题》博文,非常有代表性,很多是目前测试领域普遍存在的难题。趁着刚上班,还有点空闲,节选其中几道题,简单谈谈我的看法。

    (一) 功能测试

    1 测试环境搭建时编译抛出错误,快速判断是否系代码问题
      

    几年以前我做测试具体工作的时候,这个问题也经常遇到。我的看法是这样,既然测试组已经开始搭建测试环境,此时开发组交付的软件一般情况下应该是能够正常编译并生成可执行文件的,也就是说,我认为这个时候代码存在问题的几率比较小,但并不是说没有。我以前做的主要是c/c++开发的c/s应用,也做过.net平台上使用c#开发的b/s应用,在搭建测试环境时遇到的问题通常有以下几种:

    X 头文件路径问题

    开发组在编写代码时,已经把所有的头文件的正确路径添加到了project settings里,所以他们那边编译没问题,测试组刚开始可能不清楚,对头文件的路径没有添加或者添加不全,导致编译器“找不到头文件”的错误。一般表现形式为“No Such file or directory”。

    这种问题解决很简单了,在类似于project settings添加所有的头文件路径即可。

    X 代码中使用绝对路径,导致头文件或库找不到

    开发不太规范的程序员新手,有时候在代码中使用绝对路径,例如

    #include "c:\xxx\include\t.h"

    #import "c:\xxx\dll\tt.dll"

    测试组在测试机器上搭建环境时,这些文件可能并不在上面提到的绝对路径,此时也会导致compiler提示找不到某个具体文件。

    这个问题的解决方法更简单,直接把这些记录到BUG管理库,算作“编程规则违例”。因为这种写法会给以后的发布部署带来很多意外的困难,坚决避免。

    × 第三方的控件或者第三方的应用没有安装

    现在的网络应用通常是“大集成”,其中用到的很多专业的东东都是外包或者直接购买的,例如水晶报表。测试组搭建环境时,可能对总体的应用还不是特别熟悉,在编译前没有先安装水晶报表的应用或者控件,也会导致编译错误。

    暂时想到这么多。总之,在搭建测试环境时遇到这样那样的问题,也不完全是坏事,所谓“塞翁失马,焉知非福”。在解决问题的过程中,测试人员会进一步加深对被测软件的认识,对以后的测试工作也会有一定的指导作用。

    4(高优先级) 测试数据准备工具(数据库、搜索引擎、cache等持久化或临时数据)
    6 数据准备 如:不同类型账号生成,像生成10中供新单账号, 10个中供服务中账号等等,批量生成而不需要手工完成,否则效率慢了。
    10 海量数据查询结果正确性验证

    在这方面我能给出的建议比较少。我对搜索引擎的测试了解不多,所以下面的几点还是基于以前我对传统的B/S和C/S的认识,主要是向数据库(SQL Server、Oracle)中添加测试数据,可能不一定完全适合梁兄的测试环境。

    × 借助于自动化工具,添加大量测试数据

    使用LoadRunner或者WinRunner等自动化工具,模拟用户业务操作,同时并发数百个用户或者单用户自动循环上千次生成相关数据。

    这么做的好处是测试工程师不需要特别清楚的知道数据表与表之间的复杂关系等细节内容,就可以“傻瓜”式的、事半功倍的,生成大量有效测试数据。

    × 使用SQL语句或者存储过程,自主开发数据生成工具

    测试工程师向DBA求助,在完全了解数据库整个结构的基础之上,利用SQL自主开发数据生成工具,也可以利用数据库本身提供的辅助工具来生成。

    这么做的难点在于测试工程师要对数据库结构搞得特别清楚,而且还要自己开发应用,起点稍高。

    × 使用一些专业的工具帮忙

    以前听中国软件评测中心的讲座时了解过,他们有专业的大数据量生成工具,当时提的是TESTBytes,据说只需要确定生成的数据类型,通过与数据库的连接就可以自动生成数百万行的正确的测试数据。

    我只是听说过,没有实际用过,具体效果尚不太清楚。但我猜想,即便用专业的工具,测试工程师可能也需要搞清楚数据库的结构,这样生成的数据才会正确,我估计工具还没有那么智能。

    另外还有一个工具File-Aid,数据管理工具,看介绍讲,它是一套为帮助开发者、测试人员、质量保证团队更加有效的在开发、测试和支持C/S或者WEB应用中的测试数据管理工具,它提供数据拷贝、构造子集、数据转换、数据编辑、数据浏览、数据生成、数据比较、数据迁移等功能。

    我也没有用过,听起来好像很吸引人。具体使用效果还要各位确认。

    先说这么多,等有空了再继续写。欢迎梁兄,还有各位朋友批评指正。

  • 有关测试的思考(1):决定软件测试的那只无形的手

    Architecturer 发布于 2008-05-07 10:13:25

    我在微软亚洲工程院从事测试工作已经有两年了。两年间走了很多弯路,但也学习了很多无法从书本上知道的知识,有了一些关于测试的思考和心得,于是打算写出来与大家一起分享。这次我想谈论的话题是:是什么在决定着软件测试的设计与决策?

    测试新手的困惑

    读研的时候,我曾经读过一些有关测试的书籍(也许有些人会觉得我奇怪,因为大多数CSEE身的人都更喜欢做开发,而通常会把测试当作“第二志愿”或者根本不予考虑)。但是到了微软以后,我却发现真正的测试工作与那些书上所写的内容总是有些差别。这种差别总是让人感到很茫然,甚至泄气,因为它会影响我们做决策时的信心。特别是被老板或者老资格的员工challenge时,这种缺乏信心的表现就会更加明显。下面举两个典型的有关实际与书本的差别的例子:

    ·         很多测试理论都指出,编写详细而完整的测试文档是测试设计与实现的第一步,也是最重要的一步。通常要求每个测试用例都要有详细的测试用例文档。而实际工作中的测试文档则相对简单了许多,有时只是包括测试用例名称的列表,没有详细的针对测试用例的描述。而与此同时,所有的测试都要求实现自动化,所有的测试用例都包含在测试程序中,而在很多测试理论中,自动化测试只是一种辅助的测试手段,并不是必须的。如果按照一般的测试理论,新手在工作计划中规划很长时间用于编写测试文档,而同时又忽略了测试自动化,那么这个工作计划将很难被认可并通过。

    ·         大多数测试理论都很少对压力测试有太多的论述,从我的理解看来似乎压力测试并不是一种非常重要的测试。而实际工作中,压力测试是仅次于功能测试的一种测试,通常说来程序在经过基本的功能测试并达到一定的测试通过率以后,压力测试便会开始(在此之前压力测试程序必须准备就绪),并且持续不断一直到程序被发布。如果按照一般的测试理论,新手没有给予压力测试足够的重视,或者在时间的安排上过于靠后,那么这个工作计划也将很难被认可并通过。

    不仅如此,不同的测试小组之间对同一种测试的设计和实现通常也会有些许的出入,比如:

    ·         在有些测试小组内,性能测试被当作一项非常重要的测试;而在其他的测试小组内,性能测试只在每个milestone的结尾才会手动的运行一次。

    这些现象都令人非常困惑。我时常会问自己这样一个问题:

    如果有一天我领导一个测试小组接手一个新的产品项目,或者在已有的产品上增加新的功能,我应该如何设计实现针对这个产品的测试?在有争议的问题上我又应该依据什么做出决策?显然,这个时候照搬书本上的或者其他测试小组的best practice是有一定危险的。

    其实,这个问题的实质就是要回答“是什么在决定着软件测试的设计与决策”。

    软件测试背后的那只无形的手 商业利益与商业效率

    针对这个问题,我一直在思索,都没有得到满意的答案。直到有一次我去美国总部出差,在那里我通过和美国总部的同事交谈,得到了答案:

    决定测试的设计与决策的是其背后的商业利益和商业效率的考量。

    简单的说,就是测试工作的投入和产出决定了测试的设计与决策。

    ·         测试的商业利益 = 测试的产出 测试的投入

    ·         测试的商业效率 = 测试的商业利益 ÷ 测试的投入 × 100%

    为了形象的解释这个观点,首先把我们自己想象成一个软件公司的CEO,在俯视公司全景的同时,思考这样两个问题:

    ·         公司为什么要雇佣大量的软件测试工程师,并且人数逐年递增?

    ·         公司为什么每年要为测试部门提供大笔的预算,并且还逐年追加投入?

    原因只有一个,那就是与对测试部门的投入相比,测试部门能够减少费用支出或者避免损失。当然,从另一个角度想这其实就是在创造价值,就是测试的产出,而且这个产出一定要高于对测试部门的投入,并且其商业效率应该不低于软件投资的平均资产增值率。否则,我们将有理由直接将测试部门从公司的部门列表中删掉,并省下这笔投入。

    所以,说测试能够保证软件的质量也好,说测试能够提高客户满意度也好,其实这些都是测试在整个软件商业链条中的一种价值的体现,但并不是软件测试存在的根本原因。如果测试的商业利益是负的,或者测试的商业效率低于平均的软件投资的平均资产增值率,那么这样质量应该没有哪个软件企业愿意去保证,这样的客户满意度也没有哪个企业愿意去提高。

    真实的测试案例

    以下是几个真实的测试设计与决策的案例。一年前,我到美国总部的测试实验室去了解那里是如何在Windows MobileCE上测试射频驱动程序(此驱动程序用于驱动手机或嵌入式设备上的射频电话模块)的。在那里我得到了对这些案例的正确解读。

    自动化测试VS完备文档。

    在实验室中,我见到了我所见过的最大的自动化测试系统。所有的功能测试都是通过这种自动化系统完成的。系统由数量巨大的测试设备和中心测试驱动服务器组成,测试人员只要通过远程的客户端安排自动化测试任务并将之提交到中心测试驱动服务器上即可,其余的工作将由中心测试驱动服务器完成。这个过程包括搜索处于空闲状态的测试设备,启动并控制测试设备,并在测试完成后收集日志数据信息和计算测试通过率。

    这时,我突然想到了我先前的疑惑——为什么与编写完备的测试文档相比,我们在实际工作中更看重测试的自动化?我的美国同事给我的回答是:运行成本的原因。编写完备的测试文档自然是能够帮助测试小组完整的记录所有的测试用例,但是对于一个在操作系统上起着重要作用的驱动程序而言,每周两次的回归测试是才是保证驱动程序质量的根本手段。可以想象,如果没有自动化测试,而是依据文档中的测试用例,这种频繁的回归测试将会消耗多少人力物力。而与此同时,自动化的测试程序和用例使用统一的测试框架,并且辅助以相当的注释,这样测试程序和用例的代码本身已经能够很好的说明测试用例的详细信息,所以在文档中便不再需要重复的详细信息了。

    庞大到不可思议的压力测试系统。

    在实验室中,我见到了我所见过的最大的压力测试系统。这个系统整整摆满了三排铁架子,几乎占了整个实验室的四分之一的位置。架子上除了几台用于日志数据分析的服务器以外,剩下的全都是各种各样的手机或者嵌入式系统。架子上没有测试驱动服务器,因为测试驱动服务是通过网络由中心测试驱动服务器提供的,这种服务是所有测试系统共享的。这些设备自动化的从中心测试驱动服务器得到压力测试用例集,并自动运行13小时左右的压力测试,与此同步的是产生的日志数据将通过中心测试驱动服务器传输给日志分析服务器用于错误分析。当测试结束或者有不可恢复的程序错误或者系统错误出现时,测试设备将停止测试,并由中心测试驱动服务器扑捉这种事件,在经过适当的记录和处理后测试设备将被重置,并且准备进行下一次压力测试。这样庞大的压力测试系统令我产生了疑问——为什么我们需要如此大力度的压力测试?花费如此多的人力物力是否值得?

    我从美国同事那里得到的答案是这样的。其实开始的时候并没有这样庞大的压力测试系统。和许多其他项目的压力测试类似,针对射频驱动程序的压力测试也只是在一两种嵌入式系统上进行,而且根本没有手机参与其中。但是,从后来的用户反馈中发现,在很多手机和嵌入式系统上都存在着长时间反复使用电话功能后电话短信功能失灵的现象,而在已有的压力测试过程中并没有发现类似的问题。来自OEM的压力越来越大,OEM的反馈表明这个问题增加了他们通过入网测试时的难度,使得研发成本增加了很多,与此同时,客户服务部门也在抱怨此类问题加重了他们的日常工作。问题已经变得很严重了,于是这个测试小组做了一个决定,扩大压力测试的范围、频度和力度。从此,很多手机和嵌入式系统就逐步的加入了这个压力测试系统。另外,原先的系统中是没有日志数据分析服务器的,但是随着测试设备的日益增多,在海量的日志数据中捕捉出错信息的工作也变得越来越繁重,测试小组无法再提供更多的人力用于分析这些日志数据。于是又有人提议架设一台能够用于分析日志数据的服务器,程序由测试开发工程师设计和编写,并负责日常维护。后来,随着测试设备的继续增加,一台服务器不能满足其要求了,于是又增加了几台,直到今天的规模。在这个系统投入测试后的一段时间内,很多非常难于发现的bug浮出了水面,在修正了这些bug后先前提到的问题就基本绝迹了。

    很明显,建立如此庞大的压力测试系统的真正原因是OEM和客户服务部门由于驱动程序稳定性差而产生的巨大费用造成的。从测试原理本身或者测试小组对于产品质量的理解出发并不能支持建立这样大的压力测试系统,所以说这个测试系统是商业利益驱动的。

     

    非常简单的性能测试。

    在实验室中另一个让我感到惊奇的是实验室中没有用于测试射频驱动程序性能的任何设备,而就在这个实验室的另外两个架子上却摆满了用于测试另一个模块的性能测试系统。这在驱动程序的测试实践中实在是不多见的。很难想象,一个驱动程序没有自动化的性能测试系统对其进行测试。

    对于这个问题,美国同事的解释是:的确没有自动化的性能测试系统,但是性能测试在每个milestone结束时会由测试小组中的一名测试开发工程师手动完成。如此处理的主要原因是,从以往的测试数据看来,驱动程序不是其所在的功能调用栈中的性能瓶颈,并且射频驱动程序的性能明显比瓶颈的性能高很多。所以在没有很大的结构变动的情况下,性能通常不会成为严重影响程序质量的因素,所以性能测试就如此简单了。当然,如果射频驱动程序是整个功能调用栈的性能瓶颈的话,结果就会大不相同了。

    很明显,简化性能测试的真正原因是对非瓶颈模块的性能测试和优化不会对功能调用栈整体的性能产生贡献,当然这样的投入也几乎不会有大的商业价值的产出,所以,简化性能测试并维持一个最基本的性能测试便是最佳的选择。

    其实,从更高的角度观察,整个软件产业都是商业性的,所以作为其重要组成部分的软件测试也必然带有商业性,但这恰恰是不容易发现的。

     

  • 看自己是否适合走管理路线?

    ccq613 发布于 2008-04-01 17:49:10Top 1 Digest 1

    可从以下几方面来判断:

    1.敬业精神。
    敬业的人会受人敬重,做为一个管理人员,一定首先要敬业。只有敬业的人才会令手下尊重。无论任何时候,当团队中出现问题时,管理人员都一定要出现。不管是客户的问题还是团队内部的问题,管理人员都不能轻视。
    2.压力的承受能力。
    现代社会竞争压力越来越大,管理者要在竞争中取胜,不仅精力充沛,而且心胸宽广、态度乐观,在压力面前不会轻易败下阵来。如果管理人员都受不住压力,更不用说想手下的人如何顶着压力去工作。管理人员不单要面对上司的压力,还要面对项目的随时出现的问题压力,还有客户的各种刁难的压力,要安抚好不好的人群的情绪,使团队继续前行。
    3.思路的敏捷。
    思路敏捷是解决问题的必备要素。一个能成功处理繁杂事物的人必须思维清晰,反应敏捷,能够很快抓住事物的本质,做出判断,使问题迎刃而解。作为一个管理者,应该有敏捷的思路,从相处的员工,客户的问题描述中,找到根源。
    4.个人操守。
    一个人再有学识,再有能力,操守把持上有问题,久之必酿成大错。越是成大事者,越要拘小节。 一个生活习惯良好而有规律的人,才能做事认真讲原则。从一个人生活上的点点滴滴,能够观察到他的未来发展。 
    5.好学创新。
    现代社会竞争瞬息万变,社会高速发展,满足现状就是落伍。作为一个管理人员,也要不停学习新的管理知识,专业知识,业务知识,要不断接受新事物、新观念,善于创新进取,才能求得不断发展。落伍的管理人员,团队也会跟着落伍,公司迟早会去掉落伍的团队。
    6.谈吐得当。
    谈吐应对能够表现一个人的学识和修养。个人修养不是一朝一夕完成的,需要不断努力和完善。当前技术人员,都缺乏与人沟通的能力,只会埋头苦干,要做一个管理者,不但与上司,下属,客户等打交道,如果谈吐不得当,会造成上下有怨言,也就无法做好一个管理者的事情。
    7.适应能力。
    适者生存的法则不光适用于自然界,人类更是这样。一个个性极端的人,即使很有天分,也不一定适合当管理者。一个成功的管理者能够很快适应各种环境,使企业发展壮大。好的管理者,不管什么样的压力,什么样的环境,都要尽快适应。
    8.团队精神。
    管理人员要有团队精神,是刻提醒自己,这是一个团队,不是自己说了算。要认真听取团队中每个队员的意见,尊重他们。不要以为当领导就是一个人说了算,一意孤行必将众叛亲离。善待他人,尊重每一个人,是做好事情的关键。协调、沟通、协商才是管理者需要做的事。
    9.领导才能。
    领导才能不是专业技能,不是学历和文凭,而是学识修养、人生经验、世故阅历等多方面综合素质的反映,集中表现在识人、用人、容人的能力上。使合适的人做合适的事,才是一个领导该做的事。只有很强的专业知识,却不知道如何用人,只会自己所有事情都亲力亲为,那不是好的领导。

  • 软件测试工程师的角色定位

    songwj0806 发布于 2008-04-01 22:37:44

    戏剧舞台上的生、旦、丑是不同的角色,其表演方式具有明显的特征,这是由于角色决定的。同样,软件测试工程师的角色,在软件项目开发中也存在如何定位和表现自身的行为和责任的问题。

        此处讨论测试工程师的角色并非毫无意义。须知,角色不明,责任不清,行为就失去了参照目标,结果就可能很不理想了。轻则降低了工作质量和效率,重则被视为工作能力低下,可能要退出软将项目组的舞台了。

    软件测试工程师承担的任务

        角色决定工作内容和承担的任务。测试工程师的角色应该承担什么任务呢?这没有统一的答案。因为,这与软件公司的规模,软件项目管理制度,公司领导和项目经理的管理风格,以及具体软件项目自身的特点有很大关系。而且,测试工程师也有普通和高级之分。

    笼统的答案列举如下:

    • 设置软件测试环境,安装必要的软件工具。
    • 运行软件,发现和报告软件缺陷或错误。尤其需要快速定位软件中的严重的错误。
    • 对软件整体质量提出评估
    • 确认软件达到某种具体标准
    • 以最低的成本,最短的时间,完成高质量的测试任务
    • ......


        在这其中,最重要的是要明确,程序员的责任和目标。在执行任何具体测试任务前,都要在项目组内对于责任和目标达成共识,以免带来后续工作的相互推诿。


    提高测试质量的要诀


        另外一个值得注意的方面就是工作效率和质量,或许高级测试工程师与普通测试工程师的主要区别在于高级测试工程师可以更快地发现更多软件中的严重错误。对此,有什么可以借鉴的诀窍吗?请尝试以下方法,保证不会是您失望。

    • 首先测试程序的核心功能,然后测试辅助功能。
    • 首先测试功能,然后测试性能。
    • 首先测试常见情况,然后测试异常情况。
    • 首先测试经过变更的部分,然后测试没有变更的部分。
    • 首先测试影响大的问题,然后测试影响小的问题。
    • 首先测试必须测试的部分,然后测试可选或没有要求测试的部分

    软件测试工程师是项目团队中的服务员

        需要强调的一点是,无论你是多么高级的测试工程师,都要明白无论测试需要的工具多么复杂,测试步骤多么冗长,测试工程师在软件项目开发中始终都是扮演服务员的角色,这是由测试工作的特点决定的。任何服务都有被服务对象—客户,软件测试工程师的服务对象有哪些呢?

    • 最重要的客户是软件的用户。测试工程师需要站在客户的使用和需求角度测试软件,报告问题。
    • 项目经理也是客户。测试工程师需要报告测试工作进度和发现的问题,尤其是严重的问题。

    • 程序员是最经常打交道的客户。为了便于程序员重复报告的错误,尽量提供良好的软件问题报告,以便程序员可以更快的修复软件错误。

    • 技术文档工程师、市场开发人员和技术支持工程师也都是测试工程师的服务对象。
    软件测试工程师避免犯的几个错误

        前文已经指出测试工程师应该明确角色,明确任务和责任。知道哪些是自己份内的事,哪些是不属于自己的事。一定要尽最大努力完成份内的事,不要做不属于自己的事情,以免弄巧成拙。

    为了更好的扮演软件测试工程师的角色,尽量避免犯下面的错误:

    • 承诺完成测试的软件没有质量问题
    软件测试只是保证质量的一种方法,软件测试工程师的工作不会直接提高软件质量,因为绝大多数软件错误都需要程序员修复。软件测试只能证明软件存在错误,不能保证软件没有错误,不可能找出全部软件错误。个人的能力和对质量的影响范围很小,软件质量的提高要靠软件项目团队全体成员的共同努力。  

    • 承担软件的发布权利
    不要因为软件中存在还没有修复的错误,而试图提出更改软件发布的计划。也不要认为已经完成了测试计划,自己决定可以发布软件。因为,改变软件发布计划可能要失去进入市场的良机和很多客户,对此造成的经济和公司市场的损失将不是测试工程师能够承担的。另外,软件发布后,如果用户发现了新的软件错误,公司领导或项目经理可能将过错加在软件测试人员的头上,因为他们同意发布软件。通常软件发布的权利由产品经理、项目经理、测试经理、市场经理共同集体讨论决定。  

    • 扮演过程改进成员的角色
    软件测试工程师必须报告错误,有时也要分析错误的类型、特征和产生错误的原因。但是,不要主动提出改进软件过程的具体改进措施,更不要直接干涉程序员的工作方式,以免出力不讨好,影响今后的愉快合作。软件过程改进的方法是软件质量控制部门的事情,这是他们的本职工作
  • 一位前辈工程师职业发展的忠告

    漫不经心 发布于 2008-04-03 21:20:13

    [1]好好规划自己的路,不要跟着感觉走!根据个人的 理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深 入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地 动荡不是上策,最后你对哪个行业都没有摸透,永远是新手!

    [2]可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因为技术只不过是你今后前途的支柱之一,而且还不是最大的支柱,除非你只愿意到老还是个工程师!

    [3]不要去做技术高手,只去做综合素质高手!在企业里混,我们时常瞧不起某人,说他“什么都不懂,凭啥拿那么多钱,凭啥升官!”这是普遍的典型的工程师的迂腐之言。

    很牛吗?人家能上去必然有他的本事,而且是你没有的本事。你想想,老板搞经营那么多年,难道见识不如你这个新兵?人家或许善于管理,善于领会老板意 图,善于部门协调等等。因此务必培养自己多方面的能力,包括管理,亲和力,察言观色能力,攻关能力等,要成为综合素质的高手,则前途无量,否则只能躲在角 落看示波器!技术以外的技能才是更重要的本事!!从古到今,美国日本,一律如此!

    [4]多交社会三教九流的朋友!不要只和工程师交往,认为有共同语言,其实更重要的是和其他类 人物交往,如果你希望有朝一日当老板或高层管理,那么你整日面对的就是这些人 。了解他们的经历,思维习惯,爱好,学习他们处理问题的模式,了解社会各个角落的现象和问题,这是以后发展的巨大的本钱,没有这些以后就会笨手笨脚,跌跌 撞撞,遇到重重困难,交不少学费,成功的概率大大降低!

    [5]知识涉猎不一定专,但一定要广!多看看其他方面的书,金融,财会,进出口,税务, 法律等等,为以后做一些积累,以后的用处会更大!会少交许多学费!!

    [6]抓住时机向技术管理或市场销售方面的转变!要想有前途就不能一直搞开发,适当时候 要转变为管理或销售,前途会更大,以前搞技术也没有白搞,以后还用得着。搞管理可以培养自己的领导能力,搞销售可以培养自己的市场概念和思维,同时为自己 以后发展积累庞大的人脉!应该说这才是前途的真正支柱!!!
    [7]逐渐克服自己的心里弱点和性格缺陷!多疑,敏感,天真(贬义,并不可爱), 犹豫不决,胆怯,多虑,脸皮太薄,心不够黑,教条式思维。。。这些工程师普遍存在的性格弱点必须改变!很难吗?只在床上想一想当然不可能,去帮朋友守一个 月地摊,包准有效果 ,去实践,而不要只想!不克服这些缺点,一切不可能,甚至连项目经理都当不好--尽管你可能技术不错!
    [8]工作的 同时要为以后做准备!建立自己的工作环境!及早为自己配置一个工作环境,装备电脑,示波器(可以买个二手的),仿真器,编程器等,业余可以接点活,一方面 接触市场,培养市场感觉,同时也积累资金,更重要的是准备自己的产品,咱搞技术的没有钱 ,只有技术,技术的代表不是学历和证书,而是产品,拿出象样的产品,就可技术转让或与人合作搞企业!先把东西准备好,等待机会,否则,有了机会也抓不住!

    [9]要学会善于推销自己!不仅要能干,还要能说,能写,善于利用一切机会推销自己,树 立自己的品牌形象,很必要!要创造条件让别人了解自己,不然老板怎么知道你能干?外面的投资人怎么相信你?提早把自己推销出去,机会自然会来找你!搞个个 人主页是个好注意!!特别是培养自己在行业的名气,有了名气,高薪机会自不在话下,更重要的是有合作的机会...

    [10]该出手时便出手!永远不可能有100%把握!!!条件差不多就要大胆去干,去闯出自己的事业,不要犹豫,不要彷徨,干了不一定成功,但至少为下一次冲击积累了经验,不干永远没出息,而且要干成必然要经历失败。不经历风雨,怎么见彩虹,没有人能随随便便成功。

Open Toolbar