-
测试之我见!!!
2007-05-25 15:59:51
《软件测试》
一:什么是软件测试?
软件测试是通过人工或自动手段来测试在程序运行的过程中来发现程序代码或软件系统的缺陷和错误。
二:软件测试的目的?
软件测试的目的是为了发现软件的缺陷和错误,以确保软件程序运行正常从而提高软件的质量。。
三:软件测试的原则?
软件测试从不同的角度出发会派生出两种不同的测试原则,从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品,从开发者的角度出发,就是希望测试能表明软件产品不存在错误,已经正确地实现了用户的需求,确立人们对软件质量的信心、
四:测试人员在软件开发过程中的任务:
1、寻找Bug;
2、避免软件开发过程中的缺陷;
3、衡量软件的品质;
4、关注用户的需求。总的目标是:确保软件的质量
五:软件测试的对象?
软件测试并不等于程序测试。软件测试应该贯穿整个软件定义与开发整个期间。因此需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规应该是软件测试的对象。
六:软件测试类型:
1 .单元测试 2.集成测试 3.系统测试 4.确认测试 5.验收测试 6.开发方测试 7.用户测试
8.第三方测试
七:软件测试方法
1.动态测试 2.静态测试
3.白盒测试 4 .黑盒测试 5 .灰盒测试 6..功能测试 7.性能测试,8..ui测试,9.配置测试,10.安装测试
11.α、β测试,
就测试方法模式而言,可分为两中:百盒测试(White Box Testing)和黑盒测试(B
Lack Box Testing)。着两中方式的测试方向不同的,白盒测试以深度为主,而黑盒测试的广度为主。:
一:白盒测试:
白盒测试也称为机构性测试有时候因为牵涉到内部机密的问题,这种测试大多在公司内部进行,很少委托给其他公司或个人。严格开说,白盒测试有两大方面:数据流面和控制流面。数据流面就是测试资料进出系统的程序所经过的流面,控制流面就是测试程序在执行过程中每个阶段的流程。
1.语句覆盖:每一个程序句述都被执行到。
2.分支覆盖:每一个程序的进出点都至少被执行过一次。
3.条件覆盖:分支覆盖再加上所有的判断情况都至少被执行过一次。
4.条件组合覆盖:不同是组合的判断情况都至少被执行过一次。
二:黑盒测试:
测试人员并不需要对软件的结构有深层的了解,所进行的测试着重于软件的功能面,所以也称为功能测试。这样的测试除了在公司内部进行之外,同样也可以委托给其他人员或公司去执行。为了控制黑盒测试发执行,测试人员必须按照测试用例逐一进行,所以设计的好坏就会直接影响到测试结果。
1.测试用例覆盖:Test Cases的每一个用例都被测试过。
2.输入覆盖:测试过程中所输入发数据或资料必须一再地试验,如在程序安装中输入用户名时,测试者必须反复输入不同长度的中,英文或数字来做测试。
3.输出覆盖:测试过程中程序所产生的行为,反应及数据都必须在再的试验,如不情况的对话窗口的内容,运算结果数据都必须反复地测试审核。
八:软件问题分类:
1. 软件错误
2. 软件缺陷
3. 软件故障
4. 软件失效
九:测试类型的分类:
1. 功能测试
2. 自动化测试
3. 性能测试
十:QA与QC有什么不同?
严格来说,质量保证(QA)与质量控制(QC)都属于质量管理的一环。QA的目标是防御缺陷和错误的发生,而QC则是找出缺陷和错误。这两种方式在运做上的方向是有所不同的,QA属于预防性发方法。而QC采取主动出击的方法。
十一:软件测试的种类:
- 测试形态
- 测试技术
- 测试模式
0.1测试形态:
以测试形态分类的话,可以分为建构性测试,系统测试,及专项测试这三大项。建构性测试属于前置性的测试,它主要偏重与程序端的功能测试,以确保程序运行正常。系统测试是属于中后期的集成测试,所进行的测试以使用者的观点为主,也就是秘方外界使用者会如何使用产品。至于专项测试指的是所进行的测试需要花费更多的时间和人力才能完成。
0.01.建构性测试:
建构性测试又称开发测试,顾名思义,就是当程序还处于开发阶段时所进行的测试。
单一步骤测试:根据程序步骤逐一地进行测试。
尝试性测试:在看法过程中,为了系统的某一个功能而构建出初步的成品所进行的尝试性测试。
单元测试:所谓的单元就是将系统切分为细小的个体,单元测试就是针对这些个体来做测试。
组建测试:组建是由一个或多哥单元组成的,组成测试的界限会比单元测试大得多。
集成测试:在软件开发过程中,开发人员是各自开发不同模块的,一旦这些模块编写完成,开发人员必须将这些模块集成在一起来做一个测试。
0.02.系统测试:
在经过开发人员的集成测试后,可正常将软件编译构建成初步的测试版本,之后要进行的测试就是系统测试。系统测试是针对系统的测试,这包括所应支持的软件,硬件,操作系统及所应集成的第三方软件。
集成测试:专注于系统的稳定度及功能上的测试,特别是集成了内外部的子系统及所应支持的第三方软件。
前哨测试:每次编译构建的测试版本,必须通过前哨测试决定这个版本是否可以提供给QA人员进行系统测试。通常开发人员在修改Bugs后有可能引起其他更多的并发问题,通过前哨测试可以推断出问题是在测试版本的第几版发生。
功能测试:针对软件在功能上所做的测试,以确保系统达到功能上的要求。
设置测试:只要是软件都会提供设置功能供使用者做设置,不同的使用者会有不同的设置,不同是设置就有不同的排列组合测试。
发行测试:这个测试确保软件发表版本可供使用者正常部署,安装和使用,而且功能上必须达到要求。
验收测试:所谓的验收测试就是项目客户制定一些合格的标准来验收产品。
0.03专项测试:
所谓的专项而是,就是需要额外的人力及资源来进行的测试活动。
回归测试:尽管软件的某些部分做了完全测试,但为了避免并发症的发生,之前完成测试部分还要在作一定程度的测试,这在大型的项目中是有不要进行的。
性能测试:这是对测试软件在使用一段时间后所呈现的状态及所耗用的资源所做的测试,这些资源包括内存容量,CPU使用率,网络代宽及其他相关的项目,等等。
压力测试:测试软件所能承受的极限,例如系统是否在3000位使用者同时上线的情况下能正常运行,是否可以同时处理超过10000笔的资料先观的测试。
兼容性测试:和设置测试不同,因为主控制全在使用者手上,所以不同是使用者会有使用是环境,这类测试就是确保不同的使用者在不同的使用环境中可以正常使用
Alpha和Beta测试:软件开发是过程会构建Alpha和Bet的里程碑来标明进度,供内部或外部使用者做阶段性测试。这种测试的好处是能够尽早发现软件在使用中所产生的问题,另一方面也可以检测所开发的软件是否符合市场需求。
十二:软件测试流程
审批
审批
回归测试
完成
测试
不论是什么软件工程模型,总是少不了图1.1中的各个环节。本书擗开具体的软件工程模型,顺序讲述人员管理、项目管理、可行性与需求分析、系统设计、程序设计、测试,以及维护与再生工程。其中程序设计部分以C++/C语言为例。十三:软件工程
1:什么是软件工程?
软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
- 测试形态