软件测试基础知识1

一、软件测试(Software Testing)的定义

经典定义:在规定的条件下对程序进行操作,以发现错误,也是对软件质量进行评估的一个过程;

二、软件质量的定义

  软件满足规定或潜在用户需求的能力,具体说,软件质量是软件符合明确叙述的功能和性能需求,文档中明确描述的开发标准,以及所有专业开发的软件都应该具有的和隐含特征相一致的程度;

三、软件测试与软件质量的区别

  质量保证(QA):

  主要工作是通过预防,检查与改进来保证软件质量,它所关注的是软件质量的检查与测量,着眼软件开发活动中的过程、步骤及产物,而不是对软件进行剖析进而找出问题。

  软件测试:

  测试关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析,测试人员要执行软件,对过程中的产物—开发文档和源代码进行走查,运行以找出问题,报告质量,测试人员也必须假设软件存在问题,所以所做的操作都是为了找出更多的问题,而不仅仅验证每一件事是正确的。

四、软件测试内容

  根据测试定义,测试是贯穿于整个软件生命周期中,在开发的不同阶段,需要测试不同的内容,包括文档,源代码和数据等;

五、软件测试的分类

  开发阶段:单元测试、集成测试、系统测试和验收测试;

  测试实施单位:开发方测试、用户测试和第三方测试;

  测试技术:白盒、黑盒和灰盒测试;

六、软件测试常用的种类描述 

  功能测试:对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。

  黑盒测试:把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试数据驱动测试。

  黑盒测试方法包括:等价类划分、边界值分析、因果图分析、错误推测法、功能图分析等。

  白盒测试:是对软件的过程性细节做细致的检查。是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试逻辑驱动测试。
白盒测试方法包括:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等。

  单元测试:是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。一个软件单元的正确性是相对于该单元的规约(详细设计)而言的。因此,单元测试以被测试单位的规约为基准。

  单元测试方法包括:控制流测试、数据流测试、排错测试、分域测试等。

  集成测试:是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种

  系统测试:是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软件系统测试方法很多,主要有功能测试、性能测试、随机测试等。

  回归测试:是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,回归测试的困难在于不好确定哪些内容应当被重新测试。

  验收测试:由客户或最终用户执行,旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。这是软件在投入使用之前的最后测试。

  Alpha测试:由用户在开发者的场所进行,并在开发者对用户的“指导”下进行测试,开发者负责记录发现在错误和使用中遇到的问题,总之,它是在受控的环境中进行的;

  Beta测试:由软件的最终用户们在一个或多个客房场所进行。与Alpha测试不同,开发者通常在Beta测试的现场,因Beta测试是软件在开发者不能控制的环境中的“真实”应用。用户Beta测试过程中遇到的一切问题(真实在或想像的),并且定期把这些问题报告给开发者。接收到在Beta测试期间报告的问题之后,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。

  冒烟测试:可以根据其名称理解为该种测试耗时短,仅用一袋烟功夫足够了;其实是对软件基本的功能进行测试,测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本的功能正常,保证软件系统能跑的起来,可以进行后续的正式测试工作。

  随机测试:主要是根据测试者的经验对软件进行功能和性能抽查。它是根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。

  动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。所谓软件的动态测试,就是通过运行软件来检验软件的动态行为和运行结果的正确性。目前,动态测试也是公司的测试工作的主要方式。

  静态测试:是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

  UI测试:指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等;用户界面(UI)测试用于核实用户与软件之间的交互。UI测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI测试还可确保UI中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操作性测试。UI测试比较主观,与测试人员的喜好有关。

  自动化测试:利用软件测试工具自动实现全部或部分测试,它是软件测试的一个重要组成部分,能完成许多手工测试无法实现或难以实现的测试;正确、合理的实施自动测试,能够快速、全面的对软件进行测试,从而提高软件质量,节省经费,缩短软件发布周期。

  性能测试:是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

时间: 2024-12-07 06:16:21

软件测试基础知识1的相关文章

软件测试基础知识

软件测试基础知识 1.  软件质量与软件测试 软件测试:在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成过程的文档.数据以及程序进行测试 软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力 2.  软件测试与质量保证 软件测试只是质量保证工作中的一个环节,软件质量保证与软件测试是软件质量工程的两个不同层面的工作: 质量保证:通过预防.检查与改进来保证软件质量,采用全面质量管理和过程改进的原理来开展质量保证工作,主要关注软件质量的检查与测试,主要着眼于软件开发活动

软件测试基础知识(摘)

一.软件测试基本概念 1.软件=程序+文档,软件测试=程序测试+测试文档. "软件"是指能够实现某种功能的指令集合,"文档"是指软件在开发.使用和维护过程中产生的图文集合. 2.软件分类 按功能分:系统软件.应用软件 按技术架构分:单机版软件.C/S结构软件.B/S结构软件(B指浏览器) 按使用的用户分:产品软件.项目软件 按规模分:小型.中型.大型 3.BUG的定义 软件的BUG指软件(包括程序和文档)中不符合客户需求的问题.常见三类BUG:完全没有实现的功能:基

软件测试基础知识大全

1.   软件生命周期(SDLC)的六个阶段 1.问题的定义及规划       此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性. 2.需求分析       在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析.需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础."唯一不变的是变化本身.",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行. 3.软

软件测试入门随笔——软件测试基础知识(二)

POINT one:软件测试生命周期--V模型 V模型左边为开发阶段,右边为测试阶段.单元测试和功能测试应检测程序的执行是否满足程序设计的要求:系统测试应检测系统功能.性能的质量特性是否达到系统要求的指标:验收测试确定软件的实现是否满足用户需要或合同的要求. 单位测试:对单元模块的功能.性能进行测试,比如能不能完成登录功能等等.主要由开发人员完成,要求具备一定的读.改代码的能力,有静态测试方法(代码分析)和动态测试方法(白盒.或黑盒) 集成测试:以<软件概要设计说明书>为依据,检验软件单元和已

软件测试基础知识 day 1

软件缺陷   只有符合下列5个规则才能叫做软件缺陷 软件为达到产品说明书标明的功能. 软件出现了产品说明书指明不会出现的错误. 软件功能超出了产品说明书指明范围. 软件未达到产品说明书里未指出但应达到的目标. 软件测试人员认为软件难以理解.不宜使用.运行速度缓慢,或者最终用户任务不好. 软件测试员的目标是发现软件缺陷   黑盒测试和白盒测试 在黑盒测试中,软件测试人员只需要知道软件要做什么即可 —— 而无法看到盒子中是如何运作的.只需要进行一些输入,就能得到某种输出结果,他不知道软件如何运行,为

软件测试入门随笔——软件测试基础知识(四)

about 测试流程 一般公司测试流程 评审需求 分解需求 制定测试计划 设计测试用例 执行测试 提交bug报告 回归测试.验证bug 书写测试报告 经验总结 测试过程模型 瀑布过程模型 以文档驱动,自由度低.实际开发过程中,各部分之间都有某种程度的重叠,造成这种重叠的原因是,任何一个阶段都不可能在下一个阶段开始之前结束. 快速原型过程模型 先做出一个可运行的.功能简单的原型系统,交由客户试用看是否满足客户期望,并根据客户反馈进行修改增补. 优点:关注用户需求,降低由于需求不明确导致项目出错的风

软件测试基础知识的总结

希望每个阶段都对自己的收获做一个总结,让自己不断地提升. 一.软件测试概述 1.软件的定义 软件是计算机系统中与计算机硬件相互依存的一部分(程序+数据+相关文档) 程序:按照事先设计的功能和性能要求执行的指令序列:数据:使程序能够正常操纵信息的数据结构:文档:与程序开发.维护和使用有关的图文资料. 2.软件的生命周期 问题的定义(用户需要计算机解决什么样的问题)->可行性研究(进行多方面的可行性分析)->需求分析(用户对软件的需求)->概要设计->详细设计->实现->集

软件测试基础知识——测试用例设计方法

软件测试的分类: 1.按软件功能测试分类:基于规格说明的测试(传统黑盒测试.基于规格说明测试).基于控制流的测试(白盒测试) 传统黑盒测试:边界值.等价类.决策表.因果图 白盒测试:语句覆盖.判断覆盖.条件覆盖.MC/DC覆盖.基本路径覆盖. 基于规格说明测试:状态机.UML.Petri网.Z规约 其他测试:冒烟测试.随机测试.错误猜测测试.故障树测试.基于蜕变的测试 2.根据测试阶段分类: 单元测试:对软件中最小的可测单元进行验证,可以是一个函数.一个类.一个类的方法. 集成测试:将单元模块组

软件测试基础知识题目

基础题(65分) 1.什么是需求?需求有哪些来源?(3分) 答:需求的分类:直接需求(用户直接需求告知要求)和间接需求(行业需求要求):需求的定义:准确的描述用户需求: 来源:行业.用户.团队.运营.客服.自己(调研反馈.数据分析.竞品分析):数据分析:产品功能使用情况,如行业报告.产品后台数据等挖掘用户需求:调研反馈:通过市场调研或用户调研等方式挖掘用户真实需求:竞品分析:确立竞品分析的目的,然后分析竞品的功能和内容都有什么,通过与竞品的对比得出自身产品的需求: 直白点说:01:来源客户要求: