您好,欢迎访问三七文档
软件测试基础知识一、软件测试的描述:测试能提高软件的质量,但是提高质量不能依赖测试;测试只能证明错误存在,不能证明错误不存在;测试的主要困难是不知道该如何进行有效地测试,也不知道什么时候能够放心的结束测试;每个程序员都应当测试自己的程序(份内事),但不能作为程序已通过测试的依据(所以项目需要独立的测试人员);80-20原则:80%的错误聚集在20%的模块中,经常出错的模块改错后还是会经常出错;测试应当循序渐进,不要企图一次性做完。欲速则不达。一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例一个成功的测试是指揭示了迄今为至尚未发现的错误的测试二、软件分类:1)按功能分:系统软件(OS、硬件驱动程序)应用软件(Office、QQ)2)按技术架构分:单机版软件(Office、画图工具)C/S结构软件(客户端Client/服务器端Server,QQ、MSN)B/S结构软件(浏览器Browser/服务器Server,WEB项目)现在软件的主流3)按用户分:产品软件:目标用户是大众用户(win8)项目软件:目标用户是具体用户4)按开发的规模分:类别参与人数开发时间小型10人以下1—4个月中型10—100人1年以下大型100人以上1年以上软件测试的目的:为了发现错误,不能证明程序正确,设计合适的测试用例,用尽可能少的测试用例,来发现尽可能多的软件错误。测试人员的主要工作:1)规划测试任务2)设计测试(包括编写测试用例等等)3)建立一个合适的测试环境4)评估、获取、安装和配置自动测试工具5)执行测试6)撰写适当的测试文档软件测试与软件质量:QA(QualityAssurance),(关注的是过程);QC(QualityControl),即质量控制(关注的是结果)。软件能力成熟度模型(CMM)CMM将软件组织的过程能力成熟度级别分为5个级别:初始级、可重复级、已定义级、已管理级、优化级。SQA(SoftwareQualityAssurance,软件质量保障)测试是在发现问题,SQA是在预防问题ISO/IEC9126国际标准所定义的软件质量包括六个部分,分别为功能性、可靠性、可用性、有效性、可维护性和可移植性。软件测试有两个基本的功能:验证(Verification)和确认(Validation)。验证:指保证软件正确地实现了特定功能的一系列活动。(保证产品的正确性)确认:指保证最终的产品满足系统需求。(保证生产了正确的产品)对于软件缺陷的精确定义,通常全球软件业界普遍认同下列5条规则软件未达到产品说明书中已经标明的功能;软件出现了产品说明书中已经指明不会出现的错误;软件未达到产品说明书中虽未指出但应当达到的目标;软件功能超出了产品说明书中指明的范围;测试专业人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良软件测试的原则:1)Zerobug和Goodenough2)不要试图穷举测试3)开发人员不能既是运动员又是裁判员4)软件测试要尽早执行5)软件测试应该追溯需求6)缺陷的二八定理——缺陷的集群现象或是虫子窝现象7)缺陷具有免疫性软件测试对象概念:软件测试不等于程序测试软件测试贯穿于软件定义和开发的整个过程软件开发过程中所产生的需求规格说明书、概要设计说明、详细设计规格说明以及源程序都是软件测试的对象软件测试分类:1、按照开发阶段划分:单元测试→集成测试→系统测试→验收测试2、按照测试实施组织划分:开发方测试→第三方测试→用户测试3、按照测试技术划分:白盒测试→黑盒测试→灰盒测试软件测试过程模型:V型和W型软件开发过程的八个阶段:①制定计划→②需求分析定义→③软件设计→④程序编写→⑤软件测试→⑥软件运行→⑦软件维护→⑧软件停用搭建软件测试环境还应注意以下几点:真实(尽量模拟用户的真实使用环境)干净(测试环境中尽量不要安装其它与被测软件无关的软件)无毒(测试环境没有中毒,最好安装杀毒软件,以确保系统没有病毒)独立(测试环境和开发环境独立)软件测试工具的使用:软件测试的具体分类:从是否需要执行被测试软件的角度分(是否运行程序):静态测试和动态测试。从测试是否针对软件结构和算法的角度分类分(是否查看源代码):白盒测试和黑盒测试。从测试的不同阶段分:单元测试、集成测试、系统测试和验收测试四个阶段。其他情形划分:回归测试、冒烟测试、确认测试、恢复性测试、探究性测试功能测试:逻辑功能测试、界面功能测试、易用性测试、安装测试、兼容性测试性能测试:性能测试、稳定性测试、负载测试、压力(强度)测试、安全测试其中系统测试有:功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等等。静态测试:是指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程主要形式:审查、评审和走查静态测试包括三个方面代码测试:主要测试代码是否符合相应的标准和规范界面测试:主要测试软件的实际界面与需求中的说明是否相符文档测试:主要测试用户手册和需求说明是否真正符合用户的实际需求动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程动态测试的两个基本要素:A、被测试程序B、测试数据(测试用例)白盒测试(又称结构测试)把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作。(把盒子盖打开,去研究里面的源代码和程序结构)白盒测试主要用于对模块的测试,包括:程序模块中的所有独立路径至少执行一次对所有逻辑判定的取值(“真”与“假”)都至少测试一次在上下边界及可操作范围内运行所有循环测试内部数据结构的有效性等黑盒测试(又称功能测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。(不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果)黑盒测试可用于各种测试,它试图发现以下类型的错误:不正确或遗漏的功能接口错误,如输入/输出参数的个数、类型等数据结构错误或外部信息访问错误性能错误初始化和终止错误单元测试:又称模块测试,指对软件中的最小可测试单元进行检查和验证什么时候进行单元测试常在程序员编码之后,代码已经通过编译后进行单元测试,且在前期就应该做一些准备工作(撰写单元测试计划、编写单元测试用例等)由谁来进行单元测试一般由白盒测试工程师或开发人员来测试单元测试的依据是什么源程序本身,包括代码和注释项目的《详细设计》文档桩模块(Stub):指模拟被测模块所调用的模块驱动模块(Driver):指模拟被测模块的上级模块,用来接收测试数据,启动被测模块并输出结果集成测试:又称联合测试/接口测试,把将通过测试的单元模块组装成系统或子系统,再进行测试,是单元测试的下一个阶段,重点测试不同模块的接口部分(如函数间的参数传递是否正确)什么时候进行集成测试常是单元和集成同步进行在单元测试中先测试几个函数的自身功能,然后再集成测试一下这几个函数的接口(即参数传递)由谁来进行集成测试一般由白盒测试工程师或开发人员来测试集成测试的依据是什么单元测试的模块及《概要设计》文档系统测试:指的是将整个软件系统看作1个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试什么时候进行系统测试在整个系统集成完成后进行测试前期主要测试系统的功能是否满足需求后期主要测试系统运行的性能是否满足需求及系统在不同的软硬件环境中的兼容性等测试工作是前松后紧的,前期只需要写计划、用例及部分单元测试(较松),后期的系统测试工作量很大由谁来进行系统测试黑盒测试工程师系统测试的依据是什么主要依据是《系统需求规格说明书》文档将软件系统作为单一实体,在用户积极参与下以实际数据测试,测试的目的是验证系统能否达到SRS的要求(SoftwareRequirementSpecification软件需求规格说明书--SRS)验收测试:验收测试又分为α测试和β测试,α测试指的是由用户、测试人员、开发人员等共同参与的内部测试β测试指的是内侧后的公测,即完全交给最终用户测试功能测试:界面测试:一般把软件的界面测试用例同软件的逻辑功能测试用例分开写,用一种简化的测试用例形式----检查单(CheckList)易用性测试:指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方安装测试:性能测试:主要有时间性能和空间性能两种时间性能:主要指软件的一个具体事务的响应时间(请求响应间隔时间为3秒)时间性能一般要结合测试环境才有意义,且常是多次测试取平均值响应时间没有统一标准,跟用户的主观感受有关,如电子商务网站的普遍接受的响应时间标准为2(非常有吸引力)/5(比较不错)/10(用户忍受上限)空间性能:主要指软件运行时所消耗的系统资源(某软件安装要求)如某软件在推荐配置下运行时,CPU的利用率为10%,内存占有率为20%负载测试:指让被测系统在其能忍受的眼里的极限范围之内连续运行,来测试系统的稳定性压力测试:指连续不断地给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。回归测试:指对软件的新的版本测试时,重复执行上一个版本测试时的用例冒烟测试:指在对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否可以实现,是否具备可测性随机测试:指测试中所有的输入数据都是都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘的错误当软件发布后,有成千上万的人像猴子一样对软件乱敲乱点(又叫猴子测试)Alpha测试:一种先期的用户测试,此时系统刚刚开发完成。Beta测试:一种后期的用户测试,此时系统已经通过内部测试,大部分错误已经改正,即将正式发行。同Alpha测试一样都由用户进行,场地不同,Alpha测试一般是把用户请到开发方的场地来测试,Beta测试是指在一个或多个用户的场所进行测试。测试用例测试用例:指在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和预期结果。常用的测试用例模板有两种:Excel模板和Word模板软件测试技术:黑盒测试:是一种从软件外部对软件实施的测试,也称功能测试或基于规格说明的测试。其基本观点是:任何程序都可以看作是从输入定义域到输出值域的映射,这种观点将被测程序看作一个打不开的黑盒,黑盒里面的内容(实现)是完全不知道的,只知道软件要做什么。因无法看到盒子中的内容,所以不知道软件是如何实现的,也不关心黑盒里面的结构,只关心软件的输入数据和输出结果。黑盒测试(又称功能测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。(不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果)黑盒测试是依据软件的需求规约,而不考虑程序的内部结构与特性,检查程序的功能是否符合需求规约的要求。黑盒测试可用于各种测试,它试图发现以下类型的错误:不正确或遗漏的功能接口错误,如输入/输出参数的个数、类型等数据结构错误或外部信息访问错误性能错误初始化和终止错误主要的黑盒测试方法有:等价类划分边界值分析因果图决策表场景法比较测试错误猜测等价类划分法1、等价类划分法:等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个中选取少量具有代表性的数据作为测试用例。2、等价类划分可有两种不同的情况:有效等价类和无效等价类。3、常用的等价类划分原则:(1)按区间划分(2)按数值划分(3)按数值集合划分或布尔值划分(4)按限制条件或规则划分(5)细分等价类4、等价类划分设计测试用例的步骤:1)确定等价类:先考虑输入数据的数据类型(合
本文标题:软件测试基础知识
链接地址:https://www.777doc.com/doc-1991443 .html