日历

« 2008-09-07  
 123456
78910111213
14151617181920
21222324252627
282930    

统计信息

  • 访问量: 133
  • 日志数: 2
  • 建立时间: 2008-05-28
  • 更新时间: 2008-05-28

RSS订阅

测试ing......

我的最新日志

  • 测试心得

    2008-5-28

    测试也有一年多了,偶尔也会静下心来思考一些问题,但很多思考的结果都似灵光一现——过后就忘掉了,实在可惜,以后就记在这里吧。
    正文:
    技术类思考
      软件工程的任何一个部分——从需求分析、架构设计到最后的Debug——都能引入Bug,有时候是单个引入,而有时候则是一窝一窝地引入。所以,优秀的测试员理应掌握丰富的软件工程知识。很难想象一个不懂材料力学和结构力学的工程师能够验收刚刚建好的大厦。
      测试员不但需要学习编程,而且需要学习各种编程。初级测试员可以站在用户的角度上去观测和使用软件,以期找出Bug所在,但高级程序员更需要借助程序的原理来剖析更深刻的东西。毫不夸张地说:如果想深度测试Web程序,你应该学学Hacker;如果想研究.NET的程序,你应该学会MSIL;如果想深度Debug原生代码,你应该学习汇编、了解PE文件格式;如果想深度测试软件的安全性,你应该学学破解;如果……总之,理想的测试员应该比程序员更深一个层次。
      保持对软件的喜欢和热情。小到FlashGet大到3DS Max,如果有机会都要上手玩一玩。这样做好处多多,一来可以丰富你的软件使用经验、无形中建立你对软件逻辑的把握;二来丰富你的行业软件知识,比如你让一个长期测Outlook的人去测Photoshop,那测试出来的结果肯定和一个长期使用Photoshop作图的人测出来的结果相去甚远。
      深入理解操作系统,包括Windows系列(包括.NET平台也可以理解为是操作系统的一部分),Linux系列(JDK算是操作系统的一部分),Macintoch系列。一来,软件其实就是扎根在操作系统上的树木和花花草草(通过系统开放给程序员的API与系统血脉相连);二来,很多软件是跨平台的,要求你有丰富的多平台操作经验才能玩转,比如Adobe公司的很多优秀产品就是跨Windows和Mac平台的,这两个平台的API完全不同,为什么软件“看上去”却一模一样呢?再比如IBM公司的很多产品是跨Windows和Linux平台的等等。


    行为类思考
      软件测试不是万能的,所以测试员也不是万能的。测试员不是救世主。这至少说明两个问题:一,一个设计很烂、编码很烂的软件,你再怎么测试它也成不了优秀的软件。二,测试员(或者说软件质量保证人员)没有权利在团队里趾高气扬、四处挥动粘满Bug的大棒以图通过测试结果证明自己的英明神武——大家都是平等的。平等的观念在中国人的思想中尤其缺乏,特别要注意。
      测试员应该是一个冥想者。所以,测试团队应该有一间独立的,安静的,没有计算机的屋子,以供进行深度而缜密的思考。


    管理类思考
      不要不懂装懂。你不懂不会,不足以让组员瞧不起你;你不懂装懂,所有组员都会瞧不起你。管理就是管理,是把项目做好,不是让你练擒拿格斗,一定要制服组员。勇于上问、不耻下问,快速学习,这才是团队学习之道。
      作为Lead,如果没什么重要事情,到点就走人——不然你的组员会碍于面子而陪着你。你有没有想过他还有可能要陪父母、妻子和儿女呢?如果你经常这么干,建议你看一看《二十美元的故事》这则小寓言。
      要做权威,不要做学霸。我想说的是:下属进谏的速度和广度决定于你的心胸与宽容度。正因为大多数初级管理人员心胸狭窄、宽容度低,才导致了团队习惯性的“绝对上下一致”。据我所知,印度程序不是这样的风格,属下和领导、新手和权威可以心平气和地讨论分歧而不必面红耳赤。我的建议是:在团队中,不要等级观念,要平等;不要讽刺刻薄,要尊重;不要放不下架子,要宽容;不要目中无人,要谦虚。总之一句话:大家都是普通人,谁能跟谁差哪儿去呢? 

  • 面试题

    2008-5-28

    一、判断题

    1.软件测试的目的是尽可能多的找出软件的缺陷。(Y)

    2.Beta 测试是验收测试的一种。(Y)

    3.验收测试是由最终用户来实施的。(N)

    4.项目立项前测试人员不需要提交任何工件。(Y)

    5.单元测试能发现约80%的软件缺陷。(Y)

    6.代码评审是检查源代码是否达到模块设计的要求。(N)

    7.自底向上集成需要测试员编写驱动程序。(Y)

    8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N)

    9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N)

    10.代码评审员一般由测试员担任。(N)

    11.我们可以人为的使得软件不存在配置问题。(N)

    12.集成测试计划在需求分析阶段末提交。(N)


    二、选折

    1.软件验收测试的合格通过准则是:(ABCD)

    A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。

    B. 所有测试项没有残余一级、二级和三级错误。

    C. 立项审批表、需求分析文档、设计文档和编码实现一致。

    D. 验收测试工件齐全。

    2.软件测试计划评审会需要哪些人员参加?(ABCD)

    A.项目经理

    B.SQA 负责人

    C.配置负责人

    D.测试组

    3.下列关于alpha 测试的描述中正确的是:(AD)

    A.alpha 测试需要用户代表参加

    B.alpha 测试不需要用户代表参加

    C.alpha 测试是系统测试的一种

    D.alpha 测试是验收测试的一种

    4.测试设计员的职责有:(BC)

    A.制定测试计划

    B.设计测试用例

    C.设计测试过程、脚本

    D.评估测试活动

    5.软件实施活动的进入准则是:(ABC)

    A.需求工件已经被基线化

    B.详细设计工件已经被基线化

    C.构架工件已经被基线化

    D.项目阶段成果已经被基线化

    三、添空

    1.软件验收测试包括:正式验收测试,alpha测试,beta测试。

    2.系统测试的策略有:功能测试性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦)

    3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。

    4.对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。

    5.(这题出的有问题哦,详细的5步骤为~~)通过画因果图来写测试用例的步骤为:

    (1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。

    (2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。

    (3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。

    (4)把因果图转换成判定表。

    (5)把判定表的每一列拿出来作为依据,设计测试用例。


    四、简答(资料是搜集整理的,感谢前辈的解题)无

    1.区别阶段评审的与同行评审

    同行评审目的:发现小规模工作产品的错误,只要是找错误;

    阶段评审目的:评审模块 阶段作品的正确性 可行性 及完整性

    同行评审人数:3-7人 人员必须经过同行评审会议的培训,由SQA指导

    阶段评审人数:5人左右 评审人必须是专家 具有系统评审资格

    同行评审内容:内容小 一般文档 <  40页, 代码 < 500行

    阶段评审内容: 内容多,主要看重点

    同行评审时间:一小部分工作产品完成

    阶段评审时间: 通常是设置在关键路径的时间点上!


    2.什么是软件测试

    为了发现程序中的错误而执行程序的过程


    3简述集成测试的过程

    系统集成测试主要包括以下过程:

    1. 构建的确认过程。

    2. 补丁的确认过程。

    3. 系统集成测试测试组提交过程。

    4. 测试用例设计过程。

    5. 测试代码编写过程。

    6. Bug的报告过程。

    7. 每周/每两周的构建过程。

    8. 点对点的测试过程。

    9. 组内培训过程。


    4 怎么做好文档测试

    仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。P142

    检查文档的编写是否满足文档编写的目的

    内容是否齐全,正确

    内容是否完善

    标记是否正确



    5 白盒测试有几种方法

    总体上分为静态方法和动态方法两大类。

    静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义

    动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。


    6系统测试计划是否需要同行审批,为什么

    需要,系统测试计划属于项目阶段性关键文档,因此需要评审。


    7Alpha测试与beta的区别

    Alpha测试 在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。


    Beta测试 当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。


    8比较负载测试,容量测试和强度测试的区别

    负载测试:在一定的工作负荷下,系统的负荷及响应时间。

    强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。

    容量测试:容量测试目的是通过测试预先分 析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。


    9测试结束的标准是什么?

    用例全部测试。
    覆盖率达到标准。
    缺陷率达到标准。
    其他指标达到质量标准


    10描述软件测试活动的生命周期?

    测试周期分为计划、设计、实现、执行、总结。其中:

    计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等;
    设计:完成测试方案,从技术层面上对测试进行规划;
    实现:进行测试用例和测试规程设计;
    执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。

    总结:记录测试结果,进行测试分析,完成测试报告。


    11软件的缺陷等级应如何划分?

    A类—严重错误,包括以下各种错误: 1. 由于程序所引起的死机,非法退出 2. 死循环 3. 数据库发生死锁 4. 因错误操作导致的程序中断 5. 功能错误 6. 与数据库连接错误 7. 数据通讯错误


    B类—较严重错误,包括以下各种错误: 1. 程序错误 2. 程序接口错误 3. 数据库的表、业务规则、缺省值未加完整性等约束条件

    C类—一般性错误,包括以下各种错误: 1. 操作界面错误(包括数据窗口内列名定义、含义是否一致) 2. 打印内容、格式错误 3. 简单的输入限制未放在前台进行控制 4. 删除操作未给出提示 5. 数据库表中有过多的空字段

    D类—较小错误,包括以下各种错误: 1. 界面不规范 2. 辅助说明描述不清楚 3. 输入输出不规范 4. 长操作未给用户提示 5. 提示窗口文字未采用行业术语 6. 可输入区域和只读区域没有明显的区分标志


    E类—测试建议

    大体是这样,还会有一些变动,同时最后一道题出的是画流程图和控制图的题,等腰三角形那个,好了,仅供参考

Open Toolbar