测试之旅------------- 从一点一滴入手......

发布新日志

  • 软件测试基本概念

    2009-02-04 19:16:11

    软件测试基本概念

    1、软件=程序+文档,软件测试=程序测试+文档测试。

    “程序”是指能够实现某种功能的指令的集合,“文档”是指软件在开发、使用和维护过程中产生的图文集合。;

    2、软件的分类

    按功能分:系统软件、应用软件

    按技术架构分:单机版软件、C/S结构软件(C是指客户端, S指服务器端)、B/S结构软件(B是指浏览器)

    按照用户划分:产品软件、项目软件

    按开发规模划分:小型、中型、大型

    3、BUG的定义:软件的BUG指的是软件中(包括程序和文档)不符合用户需求的问题。常见的软件BUG分三种类型:完全没有实现的功能;基本实现了用户需求的功能;实现了用户不需要的功能。

    4、测试环境=软件+网络+硬件。搭建环境:真实、干净、无毒、独立

    5、软件环境的分类:软件开发环境软件生产运行环境

    6、测试用例:指在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和与其结果!测试用例=输入+输出+测试环境。测试用例有两个模板,word和excel,前者适合性能测试,后者适合功能测试。

     

    软件测试分类

    1、黑盒测试:指的是把被测的软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果

    白盒测试:指的是把盒子盖 打开,去研究里面的源代码和程序结构。

    2、静态测试:是指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。

    动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是否运行程序。

    注:同一个测试,既有可能属于黑盒测试,也有可能属于动态测试;既有可能属于静态测试,也有可能属于白盒测试。他们之间也有可能交叉。

    3、单元测试:编译运行程序——静态测试——动态测试

    集成测试:是单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。

    系统测试:指的是将整个软件系统看作1个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。

    验收测试:指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序.

              验收测试又分为α测试和β测试,其实α测试指的是由用户、测试人员、开发人员等共同参与的内部测试,而β测试指的是内侧后的公测,即完全交给最终用户测试。

    4、功能测试:是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。功能测试又可以细分为很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。

    性能测试:软件的性能包括很多方面,主要有时间性能和空间性能两种。时间性能:主要指软件的一个具体事务的响应时间。空间性能:主要指软件运行时所消耗的系统资源。

             软件性能测试分为一般性能测试、稳定性测试、负载测试和压力测试。一般性能测试指的是让被测系统在正常的软硬件环境下运行,不向其十佳任何压力的性能测试。稳定性测试,也叫可靠性测试,是指连续运行内测系统,检查系统运行时的稳定程度。我们通常用MTBF(错误发生的平均时间间隔)来衡量系统的稳定性,越大稳定性越强。负载测试是性能测试的一种,通常是指让被测系统在其能忍受的眼里的极限范围之内连续运行,来测试系统的稳定性。压力测试是性能测试的一种,通常是指连续不断地给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。

             假设一个人很轻松的就能背一袋米,背两袋米很吃力,最多就能背三袋米,那么:

             一般性能测试:我就让他背一袋米

             稳定性测试:我让他背一袋米,但是让他去操场上跑圈,看多久累倒。

             负载测试:我让他背两袋米去操场上跑圈,看多久累倒。

             压力测试:我让他背两袋米,三袋米,四袋米......发现他最多就能背三袋米。

    5、回归测试:是指对软件的新的版本测试时,重复执行上一个版本测试时的用例

    冒烟测试:是指在对一个新版本进行西戎大规模的测试之前,先验证一下软件的基本功能是否可以实现,是否具备可测性

    随机测试:是指测试中所有的输入数据都是都是随机生成的,其目的是模拟用户的真是操作,并发现一些边缘的错误。

    6、关系

    测试工程师

    1、测试工程应该具备的基本职业素质:三心二意一能力。三心:细心、耐心、信心。二意:服务意识、团队意识。一能力:沟通能力。

    2、如何成为一名优秀的测试工程师:内功(基础知识:计算机硬件、网络、操作系统、数据库等)、测试技术(黑盒测试中等价类、边界值、因果图等,白盒测试中的语句覆盖、分支覆盖、路径覆盖等)

    1)、不断学习充电

    2)、阅读原版书籍

    3)、阅读缺陷管理系统中的缺陷报告

    4)、阅读高手写的测试用例

    5)、学习产品相关的业务知识

    3、SQA——软件质量保障,CMM是SQA用来监督项目的一个标准质量模型,SQA按照CMM上面各种规则来检验各种各样的项目。CMM——能力成熟度模型

    4、软件测试的原则:

    1)、Zero bug——指的是软件没有任何bug,没有bug是不可能的,我们只能想方设法把软件的bug数控制在可以忍受的范围之内。Good enough——指的是只要软件达到一定的质量要求,就可以停止测试了。

    2)、不要试图穷举测试

    3)、开发人员不能既是运动员又是裁判员

    4)、软件测试要尽早执行

    5)、软件测试应该追溯需求

    6)、缺陷的二八定理——缺陷的集群现象或是虫子窝现象

    7)、缺陷具有免疫性

    黑盒测试技术

    等价类技术、边界值技术、因果图法、流程图法

    缺陷管理

    1、BUG的分类

    Bug严重级别(Severity,Bug级别):是指因缺陷引起的故障对软件产品的影响程度。由测试人员指定。A
    错误导致了死机、产品失败(“崩溃”)、系统悬挂无法操作;

    B
    功能未实现或导致一个特性不能运行并且不可能有替代方案(包括计算错误);

    C
    错误导致了一个特性不能运行但可有一个替代方案;

    D
    错误是表面化或微小的(提示信息不太准确友好、错别字、UI布局或罕见故障等),对功能几乎没有影响,产品及属性仍可使用;

    E
    建设性的意见或建议。


    Bug优先级(Priority):指缺陷必须被修复的紧急程度。由Bug分配者(开发组长/经理)指定。5
    阻止相关开发人员的进一步开发活动,立即进行修复工作;阻止与此密切相关功能的进一步测试

    4
    必须修改,发版前必须修正

    3
    必须修改,不一定马上修改,但需确定在某个特定里程碑结束前须修正

    2
    如果时间允许应该修改

    1
    允许不修改


    缺陷类型(Type):是根据缺陷的自然属性划分的缺陷种类。Build
    由于配置库、变更管理或版本控制引起的错误。

    Data
    数据、数据库、计算错误等。

    Function
    影响了重要的特性、产品接口、硬件结构接口和全局数据结构。如逻辑,指针,循环,递归,功能等缺陷。

    Interface
    与其他组件、模块或设备驱动程序、调用参数、控制块或参数列表相互影响的接口缺陷。

    Performance
    不满足系统可测量的属性值,如:执行时间,事务处理速率等。

    Requirement
    需求方面缺陷如(不明确、错误、考虑不全面等等)。

    User Interface(简写UI)
    人机交互特性:屏幕格式,页面排版、控件位置等方面的缺陷。

    其它
    未知错误


    Bug状态(Status):指缺陷通过一个跟踪修复过程的进展情况。包括Open、Fixed、Closed及Postponed等Open
    为测试人员新问题提交所标志的状态。为任务分配人(开发组长/经理)对该问题准备进行修改并对该问题分配修改人员所标志的状态。Bug解决中的状态,由任务分配人改变。对没有进入此状态的Bug,程序员不用管。

    Fixed
    为开发人员修改问题后所标志的状态,修改后还未测试。

    Closed
    为测试人员对修改问题进行验证后通过所标志的状态。由测试人员改变。

    Postponed
    1、由于开发时间、进度、重要程度或者技术/设计/需求等方面的原因,认为不能解决、须延期解决、或者本版不做留待到后续版本解决的Bug;

    2、因设计结构问题无法修改。测试人员认为是Bug,不符合逻辑,也不符合用户的要求,但开发人员则认为是按照设计做的、只能如此处理,否则修改代价太大 ,这种问题可以拖后处理

    duplicated
    bug重复提交

    Not error
    测试员理解错,不是bug,测试员提错了


    2、提交BUG注意事项:确保重现、要用最少且必要的步骤描述BUG、简洁准确完整、一个BUG一个报告

    3、常见的BUG管理工具:TD、Track Record、Clearquest、Bugzilla、Mantis、JIRA

    测试管理

    测试周期:计划——测试设计——测试执行——测试评估

    软件测试工具简介

    1、一般软件测试工具分为黑盒测试工具、白盒测试工具、测试管理工具

    2、MI loadrunner——性能测试,MI winrunner——功能测试,MI testdirector——测试管理工具,MI QTP——功能测试工具......
  • 2009年全国计算机等级考试四级软件测试工程师考试大纲

    2009-02-01 21:45:32

    ◆ 基本要求:
      1.熟悉软件质量、软件测试及软件质量保证的基础知识;
      2.掌握代码检查、走查与评审的基本方法和技术;
      3.掌握白盒测试和黑盒测试的测试用例的设计原则和方法;
      4.掌握单元测试和集成测试的基本策略和方法;
      5.了解系统测试、性能测试和可靠性测试的基本概念和方法;
      6.了解面向对象软件和WEB应用软件测试的基本概念和方法;
      7.掌握软件测试过程管理的基本知识和管理方法;
      8.熟悉软件测试的标准和文档;
      9.掌握QESuite软件测试过程管理平台和QESat/C++软件分析和工具的使用方法。
      ◆ 考试内容:
      一、软件测试的基本概念
      1.软件质量的概念。
      2.软件测试的目标和原则。
      3.软件测试的心理学。
      4.软件测试的经济学。
      5.软件质量保证。
      二、软件测试的类型及其在软件开发过程中的地位
      1.软件开发阶段。
      2.规划阶段的测试。
      3.设计阶段的测试。
      4.编码阶段的测试。
      5.验收和维护阶段的测试。
      三、代码检查、走查与评审
      1.桌面检查。
      2.代码走查。
      3.代码检查。
      4.同行评审。
      四、覆盖率(白盒)测试
      1.覆盖率测试。
      2.逻辑结构的覆盖率测试。
      3.路径覆盖率测试。
      4.数据流测试。
      5.程序变异测试。
      6.基于覆盖的测试用例选择。
      五、功能(黑盒)测试
      1.边界值测试。
      2.等价类测试。
      3.基于因果图的测试。
      4.基于决策表的测试。
      5.基于状态图的测试。
      6.基于场景的测试。
      7.比较测试。
      六、单元测试和集成测试
      1.单元测试的目标和模型。
      2.单元测试策略。
      3.单元测试分析。
      4.单元测试的测试用例设计原则。
      5.集成测试基本概念。
      6.集成测试策略。
      7.集成测试分析。
      8.集成测试用例设计原则。
      七、系统测试
      1.系统测试概念。
      2.系统测试方法。
      3.系统测试的实施。
      八、软件性能测试和可靠性测试
      1.软件性能的概念。
      2.性能测试的执行。
      3.软件可靠性的概念。
      4.可靠性预计。
      5.可靠性分析方法。
      6.软件可靠性测试的执行。
      九、面向对象软件的测试
      1.面向对象软件测试的问题。
      2.面向对象软件测试模型。
      3.面向对象软件的测试策略。
      4.面向对象软件的单元测试。
      5.面向对象软件的集成测试。
      6.面向对象软件的系统测试。
      十、Web应用测试
      1.应用服务器的分类和特征。
      2.Web应用系统的特点。
      3.Web应用系统的测试策略。
      4.Web应用系统测试技术。
      5.Web应用系统安全测试。
      十一、其他测试
      1.兼容性测试。
      2.易用性测试。
      3.GUI测试。
      4.构件测试。
      5.极限测试。
      6.文档测试。
      十二、软件测试过程和管理
      1.软件测试过程概念。
      2.测试组织管理。
      3.测试计划的制定。
      4.测试步骤的确定。
      5.测试环境管理。
      6.软件测试风险分析和成本管理。
      7.测试文档管理。
      8.测试的复用与维护。
      十三、软件测试自动化
      1.测试自动化的原理、方法。
      2.测试用例自动生成。
      3.测试执行自动化。
      4.测试结果比较自动化。
      5.测试工具的分类和选择。
      6.测试工具的主流产品介绍。
      十四、软件测试的标准和文档
      1.软件测试的标准。
      2.软件测试的文档。
      十五、软件测试实践
      1.软件测试过程管理。
      (1)软件测试过程管理概念。
      (2)测试的设计。
      (3)测试的准备。
      (4)测试的执行。
      (5)软件问题报告和软件问题生命周期。
      (6)测试的总结。
      (7)QESuite软件测试过程管理平台。
      2.白盒测试实践。
      (1)被测程序说明。
      (2)静态分析。
      (3)被测程序的插装和动态测试。
      (4)QESAT/C++白盒测试工具。

我的存档

数据统计

  • 访问量: 5638
  • 日志数: 5
  • 图片数: 1
  • 书签数: 1
  • 建立时间: 2009-02-01
  • 更新时间: 2009-02-14

RSS订阅

Open Toolbar