软件测试学习笔记——软件测试理论知识

软件测试知识——软件测试理论知识

  1. 什么是软件?
    软件是计算机程序、程序所用的数据以及有关文档资料的集合。
    软件又可以分为两大类:系统软件和应用软件。

  2. 什么是系统软件?
    系统软件是生成、准备和执行其他程序所需要的一组文件和程序。
    如:操作系统Windows、数据库SQL-Server、驱动程序、Java语言系统编译环境等。

  3. 什么是应用软件?
    计算机用户为了解决某些具体问题而购买、开发或研制的各种程序或软件包。
    如:QQ、微信等。

  4. 什么是C/S架构?
    Client/Server,即客户端/服务器架构。
    C/S架构软件有一个特点,就是如果用户要使用此类型产品时,需要下载一个客户端,安装后就可以使用。
    如:QQ 等软件。

  5. 什么是B/S架构?
    Browser/Server,即浏览器/服务器架构。
    Browser指的是Web浏览器, B/S架构类型的产品无须特别安装,通过浏览器即可访问。

  6. 什么是软件测试?
    1983年,IEEE就提出了软件工程的标准术语,将软件测试定义为:使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

  7. 什么是白盒测试?
    基于软件内部设计和程序实现的测试方法。
    不仅仅关注输入与输出的结果是否正确,同时还关注程序是如何处理的。

  8. 什么是黑盒测试?
    黑盒测试是指在测试过程中不关注程序内部的处理逻辑,只关注输入和输出。
    如果输入一个测试数据,输出的结果是正确的,就认为这个功能是正确的,也叫数据驱动测试。

  9. 什么是灰盒测试?
    介于白盒测试和黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况,通过一些表征性的现象、事件、标志来判断内部的运行状态。

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

  11. 什么是静态测试?
    不运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程,

  12. 什么是手工测试?
    由人工手动地去一个一个输入测试数据,然后查看是否符合预期结果的一种测试,属于比较初级但很普遍的一种测试方法。

  13. 什么是自动化测试?
    把以人为驱动的测试行为转化为机器执行的一种的测试方法,用工具或者代码来代替人工,以此节省大量的人力成本和时间成本。

  14. 什么是功能测试?
    测试软件的功能是否符合需求,通常采用黑盒测试方法,一般由测试人员独立执行。

  15. 什么是界面测试?
    也称UI测试,测试用户界面布局是否合理,整体风格是否一致,界面文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等。

  16. 什么是安全性测试?
    验证应用程序的安全等级和识别潜在安全缺陷的过程。
    其目的是为了查找软件自身程序设计中存在安全隐患,并检查应用程序对非法侵入的防范能力。

  17. 什么是兼容性测试?
    兼容性测试是指检查被测软件在不同的硬件平台上、不同的应用软件之间、不同的操作系统中、不同的网络环境中是否可以正常运行的一种测试。

  18. 什么是易用性测试?
    这种测试方法,不是去测试软件能不能用,而是去测软件好不好用,用户学习成本高不高,所以主观性比较强烈。
    一般要根据多个用户的测试反馈信息,才能评价易用性到底好不好。

  19. 什么是冒烟测试?
    这一术语源自硬件测试:测试一个硬件或硬件组件时,先直接加电,如果冒烟了,则无需进行后续测试。
    在软件测试中,冒烟测试就是对每一个编译的软件版本,确认其功能正常,以判断是否可以进行后续的正式测试工作。

  20. 什么是回归测试?
    指错误被修正后或软件功能、环境发生变化后进行的重新测试,确然修改部分不会对其它功能造成影响。

  21. 什么是单元测试?
    主要是测试程序代码,为的是确保个单元模块被正确的编译,比如有具体到模块的测试,也有具体到类,函数、方法的测试等,一般是由开发人员自测。

  22. 什么是集成测试?
    单元测试后,将各单元组合成完整的体系,测试软件单元之间的接口是否正确、数据能否正常传递的测试。

  23. 什么是系统测试?
    把软件系统搭建起来,按照软件规格说明书中所要求,测试软件其功能、性能等是否和用户需求相符合,在系统中运行是否存在漏洞等。

  24. 什么是验收测试?
    用户在拿到软件的时候,在使用现场,会根据之前所提到的需求,以及规格说明书来做相应测试,以确定软件达到预期的效果。

  25. 什么是 Alpha 测试?
    一种前期的用户测试,软件产品刚研发出来前期,公司内部组织员工及部分用户,模拟真实用户操作环境下进行测试。

  26. 什么是 Beta 测试?
    一种后期用户测试,此时系统已经通过内部测试,大部分的错误已经改正,即将正式发行。
    在一个或多个真实用户环境下发布版本,进行测试。

  27. 什么是软件生命周期?
    软件生命周期(Systems Development LifeCycle)是指软件从开始研制到最终废弃不用所经历的各个阶段。
    在不同的阶段里,由不同的组织和人员执行不同的任务。

  28. 什么是瀑布模型?
    它将软件生命周期中的“问题定义及规划”、“需求分析”、“软件设计”、“程序编码”、“软件测试”和“运行维护” 六个基本活动,规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。

  29. 什么是 V 模型?
    V模型包含了这几个阶段步骤:用户需求、需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试。
    由于其模型构图形似字母 V ,所以又称软件测试的V模型。是软件开发过程中的一个重要模型,它通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。

  30. 什么是 W 模型?
    W 模型增加了软件开发个阶段中同步进行的验证和确认活动,由两个V字型模型组成,分别代表测试与开发过程。
    测试的活动与软件开发同步进行,测试的对象不仅仅是程序,还包括需求和设计,可以尽早发现软件缺陷,从而降低软件开发的成本。

  31. 什么是 X 模型?
    X 模型是对V模型不利于迭代的缺点的改进,提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序,然后再对这些可执行程序进行测试。

  32. 什么是 H 模型?
    在H模型中,软件测试的过程活动完成独立,形成了一个完全独立的流程,贯穿与整个产品的周期,与其他流程并发进行,某个测试点准备就绪后就可以从测试准备阶段进行到测试执行阶段。

  33. 什么是原型模型?
    允许在需求分析阶段对软件的需求进行初步为非完全的分析和定义,需要迅速建造一个可以允许的软件系统原型,向用户展示待开发软件的全部或部分功能和性能。

  34. 什么是螺旋模型?
    采用一种周期性的方法来进行系统开发,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。
    软件开发过程没迭代一次,软件开发又前进一个层次。

  35. 什么是敏捷开发模型?
    是一种以人为核心、迭代、循序渐进的开发方法,把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
    这是目前互联网公司最流行的一种模型。

  36. 什么是开发环境?
    开发人员开发时使用的环境,每位开发在自己的分支上干活,提测前或者开发到一定程序,各位开发会合并代码,进行联调。

  37. 什么是测试环境?
    测试干活的环境,一般会由测试自己来部署,然后在此环境进行测试。
    bug 修复后,需要发版更新测试环境来验证 bug 并做回归测试。

  38. 什么是预生产环境?
    测试环境到生产环境的过渡。
    测试环境可能会受到一些限制,一些流程或者数据没有测试到,就可以在预发布环境进行验证,从而保证产品上线质量。

  39. 什么是生成环境?
    即线上环境,真实用户使用的环境。
    由特定人员来维护,一般人没有权限去修改。

  40. 什么是测试需求?
    测试需求主要解决“测什么”的问题,一般来自需求规格说明书中原始需求。
    测试需求应全部覆盖已定义的业务流程,以及功能和非功能方面的需求。

  41. 什么是等价类划分法?
    等价类划分法是一种典型的、重要的黑盒测试方法,等价类是指某个输入域的子集合。
    在该子集合中,所有的输入数据对于揭露软件中的错误都是等效的,一般分为有效等价类和无效等价类。

  42. 什么是边界值分析法?
    边界值分析法是对等价类划分法的一个补充,边界值一般都是从等价类的边缘值去寻找。
    边界值分析的基本思想:正好等于、刚刚大于、刚刚小于边界的值作为测试数据。

  43. 什么是场景法?
    通过场景描述的业务流程或业务逻辑,也包括代码实现逻辑,设计用例来遍历场景,验证软件系统功能的正确性。

  44. 什么是错误推测法?
    基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。
    它的要素共有三点,分别为:经验、知识、直觉。

  45. 什么是因果图?
    因果图即因果分析图,从程序过个说明的描述中找出因(输入条件)和果(输出或程序状态的改变),画出因果图,并通过因果图转换为判定表。
    它适合于检查程序输入条件的各种组合情况。

  46. 什么是判定表法?
    判定表也成决策表,能表示输入条件的组合,以及与每一输入组合对应的结果组合。
    与因果图法相似,判定表法主要侧重输入条件之间的逻辑关系,一般会跟因果图法一起使用。

  47. 什么是正交实验法?
    从大量的(实验)数据(测试例)中挑选适量的、有代表性的点,从而合理地安排测试的一种科学实验设计方法。
    类似的方法有:聚类分析方法、因子分析方法等。

  48. 什么是软件 bug ?
    狭义概念是指软件程序的漏洞或缺陷;
    广义概念是除此之外还包括测试工程师或用户所发现和提出的软件可改进的细节,或与需求文档存在差异的功能实现等。

  49. 什么是测试用例?
    测试用例(TestCase)是为项目需求而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序是否满足客户需要。

  50. 什么是测试计划?
    测试计划,描述了要进行的测试活动的范围、方法、资源和进度的文档,它确定测试项、被测特性、测试任务、谁执行任务、各种可能的风险,可以有效预防项目的风险,保障项目的顺利实施。

  51. 什么是测试报告?
    测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件存在的质量问题提供依据,同时为软件验收和交付打下基础。

你可能感兴趣的:(软件测试)