-----突破自我,突破思维定势,突破昨天! 在才智和智慧不相上下的人群中,你拥有更高的热情,并能坚持下去,那么成功便在更大程度上属于你。

发布新日志

  • 常见测试类型的区别与联系。

    2008-09-25 09:57:52

          请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。

     

    ²  白盒测试:关注软件内部结构和程序的设计实现,主要测试依据是设计文档.

    ²  黑盒测试:不关心软件内部结构,只关心输入输出,主要测试依据是需求文档.

    ²  单元测试:一般由开发小组采用白盒方式来测试,主要测试单元是否符合详细设计规格说明书的要求。

    ²  集成测试界于单元测试和系统测试之间,起到桥梁作用,一般由测试小组或开发小组采用白盒+黑盒的方式来测试,主要测试模块接口,及集成后的整体功能,验证与概要设计规格说明书的符合度。

    ²  系统测试:一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合需求规格说明书的要求。

    ²  验收测试与系统测试非常相似,主要区别是测试人员不同,验收测试由用户代表或最终用户执行。

     

  • 您所熟悉的软件测试类型都有哪些?

    2008-09-25 09:40:15

    1.   功能测试:完全不考虑程序内部逻辑结构,针对软件界面和功能进行测试。检查程序功能是否符合需求规格说明书的规定。

    2.   性能测试:是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。

    3.   负载测试:测试一个应用在不同负荷下的表现,例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败。

    4.   强迫测试:在交替进行负荷和性能测试时常用的术语。也用于描述在异乎寻常的重载下的系统功能测试之类的测试,如某个动作或输入大量的重复,大量数据的输入,对一个数据库系统大量的复杂查询等。

    5.   可用性测试:对“用户友好性”的测试。显然这是主观的,且将取决于目标最终用户或客户。用户面谈、调查、用户对话和录象及其他一些技术都可使用。程序员和测试员通常都不宜做可用性测试。

    6.   安装/卸载测试:对软件的全部、部分或升级安装/卸载处理过程的测试。

    7.   恢复测试:测试一个系统从异常中能否很好地恢复,如遇到系统崩溃、硬件损坏或其他灾难性问题。

    8.   安全测试:测试系统在防止非授权的内部或外部用户的访问或故意破坏等情况时怎么样。这可能需要复杂的测试技术。

    9.   兼容测试:测试软件在一个特定的硬件/软件/操作系统/网络等环境下的性能如何。

    10.  比较测试:与竞争伙伴的产品的比较测试,如软件的弱点、优点或实力。

    11.  Alpha 测试:在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试一般由用户代表完成,测试员记录问题。

    12.  Beta 测试:当开发和测试完成后对Beta版本所做的测试,这种测试一般由最终用户完成,不能由程序员或测试员完成。

  • alpha和beta测试都不属于验收测试

    2008-09-10 21:29:35

     

        经常有人会认为alpha和beta测试属于验收测试,甚至一些测试书籍上也没有明确说清楚,但我们测试培训中心的老师讲, alpha和beta测试都不属于验收测试,我认为比较有道理.老师讲解意思如下:

        对于软件项目来说,在系统测试后,有验收测试(有用户参与);
        对于软件产品来讲,在系统测试后,有 alpha和beta测试:

        alpha测试是测试环境尽量真实,由软件公司内部人员模拟各类用户对即将面世的软件产品进行测试, 测试人员在一旁记录发现的问题和缺陷.

        beta测试是由典型用户在日常工作中实际使用beta版本,并要求用户报告异常情况,提出意见.

  • 一套面试题

    2008-09-10 20:54:47

    以下是我个人做的,仅供参考,有不同的请大家一起讨论,共同进步!

    一、判断
    1. Beta测试是验收测试的一种。(N)
    2. 项目立项前测试人员不需要提交任何工作。(Y)
    3. 负载测试是验证要检验的系统的能力最高能达到什么程度。(N)
    4. 代码评审员一般由测试人员担任。(N)
    6. 集成测试计划在需求分析阶段末提交。(N)

    二、选择
    1. 软件验收测试的合格通过准则是:(ABCD)
       A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求
       B. 所有测试项没有残余一级、二级和三级错误
       C. 立项审批表、需求分析文档、设计文档和编码实现一致
       D. 验收测试工件齐全

    2. 软件测试计划评审会需要哪些人员参加?(ABCD)
       A. 项目经理   B. QA   C. CMO   D. 测试组

    3. 下列关系alpha测试的描述中正确的是(A)
       A. alpha测试需要用户代表参加
       B. alpha测试不需要用户代表参加
       C. alpha测试是系统测试的一种
       D. alpha测试是验收测试的一种
       
    4. 测试设计阶段的任务(BC)
       A. 制定测试计划          B. 设计测试用例
       C. 设计测试过程、脚本    D. 评估测试活动

    三、问答
    1. 什么是软件测试?
       软件测试就是使用人工或自动化的手段运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别.

    2. 系统测试的策略有哪些?
       系统测试的策略主要指系统测试方法和目标.系统测试方法包括功能测试、性能测试、压力测试,容量测试,安全性测试,GUI测试,可用性测试,安装测试,配置测试,恢复性测试,备份测试,健壮性测试,文档测试,在线帮助测试,网络测试,稳定性测试。

    3. 什么是白盒测试、黑盒测试、回归测试?
       白盒测试就是将被测程序看做一个打开的盒子,根据程序的内部结构进行测试用例设计,检验内部操作是否按规定执行.
       黑盒测试不考虑程序的内部结构和内部特性,根据程序的外部特性或输入输出进行测试用例设计和执行.
       回归测试就是验证修改完提交的缺陷或增加了新功能等进行的程序修改后是否导致原有正常功能失效或引起新的bug.
    4. 分别给出增加、删除、修改、查询的SQL语句基本结构
       增加:insert into <表名>[<属性列1>,...]
           values(<常量1>,...);
       删除:delete from <表名>
            [where <条件>;]
       修改:update <表名>
            set <列名>=<表达式>
            [where <条件>;]
       查询: select * from 表名
              [where <条件>]
              [group by <列名1>]
              [order by <列名2>];

    5. 进程间的通讯方式有哪些?
       消息传递、同步、共享内存区、过程调用

    四、逻辑思维
    1. 7个人用7小时挖了7米的沟,以同样速度在50小时挖50米的沟要多少人?
        7人
    2. 一个屋子有一个门(门是关闭)和3盏点灯,屋外有3个开关,分别与这3盏灯相连。你可随意操纵这些开关,可一旦你将门打开,就不能变换开关了。如何确定每个开关具体管哪盏灯?
       开一灯5分钟,换另一个,进去,,一灯热、一灯亮、一灯原始状态。
     
     
  • 如果能够执行完美的黑盒测试,还需要进行白盒测试吗?

    2008-09-09 11:26:52

       黑盒测试:从用户角度出发,根据规格说明设计测试用例,并不涉及程序的内部特性和内部结构,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。黑盒测试有两个显著特点:

       (1)黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以用。

       (2)黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。

        黑盒测试主要是为了发现以下几类错误:

       1、是否有不正确、遗漏或额外的功能实现?

        2、在接口上,输入是否能正确的接受?能否输出正确的结果?

        3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

        4、性能上是否能够满足要求?

        5、是否有初始化或终止性错误?

      白盒测试:已知程序的内部结构,检查内部操作是否按规定执行。主要对程序细节进行严密检验,针对特定条件和循环设计测试用例,对程序的逻辑路径进行测试。通过在程序的不同点检查程序状态,确定实际状态是否与预期的状态一致。

        白盒测试主要是想对程序模块进行如下检查:

       1、程序的所有语句至少执行一次。

        2、对所有的逻辑条件都能至少执行一次。

        3、在循环的边界和运行的界限内执行循环体。

        4、测试内部数据结构的有效性,等等。

       从以上可以看出就算执行了完美的黑盒测试也是无法测试程序内部特定部位,另外当规格说明本身有误,也不能发现问题。而白盒测试能对程序的内部特定部位进行覆盖测试,所以黑盒和白盒测试为互补关系,结合起来进行测试用例的设计更为合理。

    经验表明,通常在进行单元测试时采用白盒测试方法,集成测试采用灰盒测试方法,系统测试采用黑盒测试方法。

      

     

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

    2008-09-09 10:37:27

       软件缺陷的主要类型有:

    1、功能、特性没有实现或部分实现

    2、设计不合理,存在缺陷

    3、实际结果和预期结果不一致

    4、运行出错,包括运行中断、系统崩溃、界面混乱

    5、数据结果不正确、精度不够

    6、用户不能接受的其他问题,如存取时间过长、界面不美观。

    一般来说,问题越严重的,优先级越高,越要得到及时的修复。软件公司对缺陷严重等级划分不尽相同,但一般分为四个等级:

       1.致命错误(fatal):造成系统或应用程序崩溃、死机、系统挂起,或造成数据丢失,主要功能完全丧失,导致本模块以及相关模块异常等问题。

       2.严重错误(critical):功能和特性没有实现导致严重的问题或致命的错误声明。问题局限在本模块,导致模块功能失效或异常退出。

       3.一般错误(major):次要功能丧失,提示信息不太准确,或用户界面差,操作时间长、模块功能部分失效等。

       4.建议问题(suggestion):由问题提出人对测试对象的改进意见或测试人员提出的建议、质疑。

     

  • 一个常见的测试面试题

    2008-09-09 09:27:21

       给你一个软件,你测试了一个月都没有发现bug,这说明什么?你怎么办?

    看到这个题目,一时之间真不知道如何回答,因为的确没有遇到过这样的情况。我的看法是:

    1.说明软件已经没有bug了.严格说应该是说明软件中残留的bug已经很少了且是隐藏比较深的.尤其是一个经过大量使用的成熟软件,但对于一个新软件来讲,很少会遇到测试了一个月都没有发现bug的情况.

    2.说明测试用例设计的太少或不够好,需要补充新的测试用例.尤其需要补充一些覆盖无效等价类的测试用例.

    3.测试人员需要突破思维定势,打破常规.常见的情况可能是测试人员和程序员合作一段时间后,也更容易发现程序员容易犯的错误,但随着程序员对这些常犯错误的总结逐渐成熟起来,在写代码的时候,根据以前多次修改BUG的经验,已经在自觉的规避可能出错误的代码写法,从而写出的代码更规范更可靠。若测试人员还按照惯性思维去测试,当然就不太容易再发现BUG了。这时候,测试人员就应该突破思维定势,打破常规!多和别的测试人员交流,不断学习新的测试技术和方法,积极的实践!

Open Toolbar