1.测试相关概念:
    1)软件:一系列按照特定顺序组织的计算机数据和指令的合集
    !程序,数据,文件 !

    2)产品:能够供给市场,被人们使用和消费,并能满足人们某种需求的任何东西,包括有形的物品,无形的服务,组织,观念或它们的组合。

    3)项目:指一系列独特的、复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间、预算、资源限定内,依据规范完成。

    4)什么是软件测试:“使用人工和自动手段来运行或测试某个系统的过程, 其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”。

    5)软件测试的目的:对产品质量完成全面评估,为产品的发布、部署、鉴定、决策者提供信息。
    预防缺陷,通过缺陷分析和原因总结,规避后续同类型缺陷的产生再犯。
    验证是否满足用户需求、通过预防缺陷提高软件质量(降低成本)、通过预估软件质量(持续改进),帮助需求定义和设计(提高客户满意度,扩大市场份额)
    6)软件的生命周期:需求调研(此阶段用于收集市场需求),需求分析(此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。),软件设计(此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。),程序编码(此阶段是将软件设计的结果转换成计算机可运行的程序代码。),软件测试(在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。),发布上线,运行维护(用于解决产品使用过程中出现的问题,提供技术支持,实施,运维,技术支持。),下线。
    项目组成员:产品经理,项目经理,设计人员,开发人员,测试人员,配置管理人员,QA(质量保证的重要工作通过预防、检查与改进来保证软件质量),运维,实施,技术支持。
    7)测试对象:文档,程序,数据。
    8)软件开发模型:瀑布型;解析;即从上到下的模型,每个环节结束了才可以开始下一个环节,
    特点:缺点:后期一旦发现问题,维护成本比较高。 强文档,弱沟通。
    图片.png 原型;解析: 通过原型图,提前跟客户沟 通,在需求分析阶段可以在原型图中体现工作完成的样子, 对原型图要求很高 , 一旦完成工作后,原型图就没有存在的价值,原型图需要人力、资源去完成 , 对每一个阶段文档输出没有瀑布模型那么高 。 特点:后期维护成本很高。
    图片.png

    敏捷模型;解析:敏捷开发是一种以人为核心、迭代、循序渐进的开发模型。
    特点:不要求所有文档的质量都达到CMMI认证标准。
    每日立会(站立会):1汇报一下工作进度、2遇到的问题和解决的办法、3今日的任务计划。
    评审会:评审软件是否满足用户需求。
    反思会:总结工作,总结经验和教训。
    弱文档,强沟通。
    图片.png9)软件测试模型:V模型(早期模型);
    图片.pngW模型:
    图片.pngH模型:
    图片.png
    x模型:
    图片.png
    前置模型:
    图片.png10)
    软件测试阶段:
    需求测试,单元测试(单元测试是对软件中的基本组成单元进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。),集成测试(集成测试是对单元之间及单元与第三方接口之间的测试,目的是验证接口是否与设计相符,是否与需求相符。(即检测软件模块对《概要设计说明书》的符合程度)),系统测试(系统测试是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的测试工作)确认测试(又称为有效性测试,它的任务是验证软件的有效性,即验证软件的功能和性能及其他特性是否与用户的要求一致),验收测试,Alpha测试(Alpha测试是由软件开发公司组织内部人员模拟各类用户对即将面世软件产品(称为Alpha版本)进行测试,试图发现错误并修正。俗称“内部测试”),Beta测试(Beta测试是由软件的最终用户们在一个或多个场所进行。定期将这些问题报告给开发者,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。俗称“公开测试)区别,可控性,Alpha具有可控性。,UAT测试(用户接受度测试),回归测试(RegressionTesting:软件在测试或其他活动中发现的缺陷经过修改后进行的测试。目的是验证缺陷得到了正确的修复,同时对系统的变更没有影响以前的功能),冒烟测试(对每一个新编译的需要正式测试的软件版本进行简单的功能测试的过程)
    11)软件测试类型:功能测试,性能测试(负载测试,压力测试,容量测试,稳定性测试。),安全性测试,GUI测试(图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面),可用性测试,安装卸载测试,异常测试,文档测试,网络测试。
    12)白盒测试:白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体功能实现情况。白盒测试是基于程序结构的逻辑驱动测试。白盒测试一般会用到静态分析和动态分析两类技术。(静态分析:控制流分析、数据流分析、信息流分析等。动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等。)
    13)黑盒测试:黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现。黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块,一个子模块、一个函数等。
    图片.png