大家好,又见面了,我是你们的朋友全栈君。
01软件研发流程
1.软件产品
软件产品,是指向用户提供的计算机软件,是信息系统或设备中嵌入的软件,是在提供计算机信息系统集成、应用服务等技术服务时提供的计算机软件。
2.软件工程
有一门学科,它专门研究,如何运用工程化方法,来构建软件,并且要维护软件,使其具备有效性,及其具备实用性,还要确保高质量,而这门学科叫软件工程,它的英文名是SoftwareEngineering 。
软件工程是用于软件的开发的方法,是用于软件的运行的方法,是用于软件的维护的方法,是用于软件的修复的一种系统方法 ,这个定义是相当概括的 ,它主要强调软件工程是系统方法 而不是某一种 神秘的个人技巧 。
3.软件开发过程
软件产品从最初构思到公开发行的过程,称为软件开发过程。
开发过程有各种不同的方法,没有所谓最好的模式。
最常见的4种:
瀑布模式
螺旋模式
快速原型
4.软件生命周期
5.软件研发流程
6.软件流程
需求分析
测试计划
测试方案
测试用例
测试执行
测试报告
7.软件项目成员
推进整体项目的运作,担当制定规划之事,开展人力资源的安排工作,掌控进程的管理情形,做团队事宜协调之类的,实施举足轻重的决策行为。
他身为技术专家,经验是极为丰富的,负责着整个系统的体系架构设计,还负责关键模块的设计。
设计、编写软件,并修复软件中的缺陷。
负责找出软件产品存在的问题并报告。
负责编写软件产品附带的文件和联机帮助文档
程序员所编写的代码,由特定人员予以负责管理,资料工程师所撰写的文档资料,一样由该特定人员负责管理,而后将它们组合成一个软件包 。
质量监管人员
02软件测试基础
1.软件测试概念以及目的(掌握)
测试有着目的,这目的不单单是在于去发现软件方面出现的缺陷还有错误情况,并且它也是针对软件质量展开度量以及评估的行为,以此来达成提高软件质量的结果。
测试是程序的执行过程,目的在于发现错误;
一个好的测试用例在于能发现至今未发现的错误;
一个成功的测试是发现了至今未发现的错误的测试。
2.软件测试质量(了解)
软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”
明确的需求所指的是,软件要符合明确叙述出来的功能以及性能需求,并且要参考文档中明确描述的开发标准;隐含的需求所说是,所有专业开发的软件所应具备的隐含特征的程度 。
3.软件测试原则(掌握)
由于测试的目的在于寻觅软件的错误跟缺陷,对软件质量予以评估以及提升,所以我们提出了这样的一组测试原则,情况如下所示。
1)所有的软件测试都应追溯到用户需求。
2)软件测试者的座右铭,应当是“尽早地进行软件测试”,并且是“不断地进行软件测试”。
3)完全测试是不可能的,测试需要终止。
4)测试无法显示软件潜在的缺陷。
5)充分注意测试中的群集现象。
6)程序员应避免检查自己的程序。
7)尽量避免测试的随意性
4.软件测试对象(掌握)
依据软件的定义,软件涵盖程序、数据、文档,因而软件测试并非仅仅是程序测试,软件测试在整个软件生命周期里贯穿 。
2) 在整个软件生命周期里,各阶段存在不同测试对象,进而形成不同开发阶段的不同类型测试。需求分析阶段,产生需求规格说明文档是测试对象;概要设计阶段,出现概设计说明文档要做测试对象;详细设计阶段,产出详细设计说明文档作为测试对象;程序编码阶段,源程序也属于测试对象。
5.软件测试分类(掌握)
把软件测试按照开发阶段来划分,有单元测试,有集成测试,有系统测试,还有验收测试。
软件测试,按照测试实施组织来划分,可分为开发方进行的测试,用户进行的测试,也就是Beta测试,以及第三方进行的测试。
3)按照测试技术划分:白盒测试、黑盒测试、灰盒测试。
软件测试方法,有着对应的分类,其技术的分类,又和软件开发过程存在关联,它贯穿了软件生命周期,且是贯穿了整个的软件生命周期。
6.软件测试风险(掌握)
软件测试里的软件风险分析,是依据预测软件会出现的风险,来制定软件测试计划,并且排列优先等级,风险分析是针对软件中潜在的问题,去进行识别、估计以及评价的过程。
风险包含进度风险,其中涵盖质量风险,质量风险里涉及人员风险,人员风险中有变更风险,变更风险还关联成本风险等
7.软件测试工程师(了解)
具备的技能:
1)计算机相关知识,能够熟练使用常用的管理工具
开发语言是C,开发语言是Java,开发语言是JavaScript,开发语言是VBScript,开发语言是Shell。
3)数据库,有SQLServer知识,有Oracle知识,有MySQL等数据库知识
操作系统,像Windows 2003,还有,2008,UNIX,Linux,MAC,Solaris等 。
5)网络基本知识,能够独立完成测试环境的搭建。
6) 对于软件工程,有着较深的理解,对于软件生命周期,有着较深的理解,对于测试理论,有着较深的理解,对于测试方式,有着较深的理解。
具备软件测试技术,掌握方法,熟悉流程,会编写测试文档,能够独立设计测试用例,执行测试用例,提交完整的缺陷报告单,编写测试报告。
有测试工具,对于至少一种功能/性能自动化测试工具,能够熟练去使用 。
9)质量把控管理方面的知识,像是CMM,CMMI以及ISO 9001这种等。
职责:
1)配置测试环境
2)执行软件测试
3)报告软件缺陷
4)更新缺陷报告内容
5)验证修正的缺陷
6)报告测试状态
7)完成测试相关的其它任务
03软件测试类型
1.软件测试分类
按阶段划分
1)单元测试:是指对软件中的最小可测试单元进行检查和验证。
2)集成测试:是在单元测试存在的基础之上,把所有模块依照设计要求,像是这种根据结构图的方式,进行组装,使之成为子系统或者系统,进而开展集成测试。
它是这样的,存在一项系统测试 ,这测试要把已然确认的软件 ,计算机硬件 ,还有外设 ,以及网络等别的元素结合到一块儿 ,然后去开展信息系统的各类组装测试 ,再进行确认测试 。
4)验收测试(а、ß测试):
它是一项测试,这项测试是用来确定产品是不是能够满足合同或者用户所规定的需求的,这属于管理性和防御性控制。
b.主要进行确认,确认是不是软件依据合同要求来开展工作,也就是确认软件是不是满足软件需求规格说明书里的要求。
按是否运行程序划分
不能运行那被测试的软件这一状态下,仅以进行如这般,静态的时候开展,针对代码,还有界面,又或者是文档,去做检查的这种方式,被称作静态测试 。
出结果是否和预期结果相一致 。
按是否查看代码划分
黑盒测试,它是这样一种测试方式,将所要测试的软件视作一个黑盒子,完全不去管其内部具备的各种逻辑以及内部呈现出的各种特性,仅仅是依据所给定的规格说明书,来检查程序的功能到底是不是符合功能说明 。
将白盒进行测试,它又被称作结构的测试,着重的是程序内部的结构,其还有是算法,而不在乎于功能以及性能的指标。
灰盒测试,是一种测试技术,它介于白盒和黑盒测试之间,基于程序运行时刻之时的以及情况之下与条件之中的外部表现,同时又结合程序内部逻辑结构,来设计用例,用以测试技术手段当中涉及在执行期间之时的以及情况之下与条件之中的程序,并且采集程序路径执行信息,还有以程序操作当中涉及在执行期间之时的以及情况之下与条件之中的外部用户接口结果的测试技术!
其他划分
回归测试,在对软件新版本进行测试之际,需重复去执行,上一个版本测试之时所使用的测试用例,以此来防止出现,那种“以前应用之时不存在问题,而现在却出现问题了”的状况 。
冒烟测试,也就是BVT测试即BuildVerification Test ,冒烟测试所针对的对象,是每一个新编译且需要正式测试的版本,其目的在于,确认软件的基本功能处于正常状态,从而能够开展后续的正式测试工作。
随机测试,除此之外,其又名猴子测试,测试数据是被随机产生出的。这些数据并不会在测试用例范围之内,仅仅能够作为一个测试的补充 。
敏捷测试,它是由敏捷开发引发的,敏捷测试即Agiletesting,属于测试之中的一种,在原有测试的定义里,是借助执行被测系统来发现问题的,通过测试这样的活动,能够为被测的系统提供度量等概念,而这些概念依然是适用的。
TDD(测试驱动开发)
功能代码开发之前,要先编写测试代码,这是测试驱动开发的基本思想。明确要开发某个功能后,首先动脑思索怎样对这个功能来进行测试,进而完成测试代码的编写工作再编写相关代码去满足各类测试用例,之后添加其他功能循环往复,直至全部功能开发完毕 。
04质量
1.什么是质量
对于不同类型的产品,评价质量好坏的关注点不同
2.软件质量有何价值?
软件质量的价值,依赖于应用情景的重要程度,还取决于应用情景对软件产品的依赖程度。
3.软件质量模型
从内部观点出发的软件产品特性的总体,被称作内部质量,是从内视角考量,为针对其内质量需求,而被测量以及评价的质量。
从外部观点观察的软件产品特性归结起来就是外部 质量,当软件运行时,在模拟环境使用模拟数据基于用外部测量方式进行测试的时候,所被检测和评判的质量便是外部质量 。
站在用户角度出发,来看待,用于特定环境与条件下的软件产品的质量,就是使用质量,它测量的并非软件自身性质,而是用户在特定环境里达成其任务目标的程度,
4.什么是质量保证
为保证产品质量,该质量要充分满足消费者要求,还要进行服务质量的保证,这里的服务质量也需充分满足消费者要求,为此展开的是有计划的活动,并且是有组织的活动。
5. QC与QA的区别
QC的主要区别在于,其目的是保证产品质量符合规定,QA的主要区别在于,其目的是建立体系并确保体系按要求运作,进而提供内外部的信任。
对软件进行测试的人员被称作QC,其工作职责是在极早的时间内,来找出软件所存在的缺陷情形,且要保证这些查出的缺陷能够获得修复,在一些企业当中呢,从事上述测试工作的人员又被叫成SQA 。
QA是流程的监督者,其职责是创建标准和方法,其职责是执行标准和方法,其职责是改进软件开发过程,其职责是防止软件缺陷存在并发生。
6. ISO9000与CMMI的介绍
ISO:国际标准化组织
ISO9000:国家质量管理体系标准
7. CMMI是什么?
Capability, Maturity, Model, Integration的中文是能力成熟度模型综合,,且其英文为Capability Maturity Model Integration 的中文名恰是能力成熟度模型综合,。
该模型提供一套准则,这套准可供公众使用,这些准则描述特性,那些特性属于成功地实施了过程改进的组织 。
该模型用“软件能力成熟度”来衡量这种软件综合能力
面试:杯子怎么测?1
功能测试(Functiontest)
能否装水,
除了装水, 能否装其他液体。比如可乐,酒精
能装多少ML的水
杯子是否有刻度表
杯子能否泡茶,跑咖啡
杯子是否能放冰箱,做冰块
杯子的材质是什么(玻璃,塑料,黄金做的)
界面测试(UI Test)
外观好不好看。
什么颜色
杯子的形状是怎么样的。
杯子的重量是多少
杯子是否有异味
杯子的图案是否合理
性能测试(performancetest)
能否装100度的开水 (泡茶)
能否装0度冰水
装满水,放几天后,是否会漏水
杯子内壁上的涂料是否容易脱落。
杯子上的颜色是否容易褪色或者脱落
被我坦克压下,是否会碎 (这条是开玩笑的哈)
安全性测试(Securitytest)
制作杯子的材料,是否有毒
放微波炉里转的时候,是否会爆炸, 或者杯子是否会熔化。
从桌子上掉到水泥地上是否会摔碎。
杯子是否容易长细菌
杯子是否有缺口,会划坏嘴巴
杯子内壁上的材料,是否会溶解到水中
杯子破碎后,是否会对使用者造成伤害
可用性测试(UsabilityTest)
杯子是否容易烫手
杯子是否好端,好拿
杯子的水是否容易喝到
杯子是否有防滑措施
面试:杯子怎么测?2
需求测试: 查看杯子使用说明书
界面测试: 查看杯子外观
功能度:用水杯装水看漏不漏;水能不能被喝到
安全性:杯子有没有毒或细菌
可靠性:杯子从不同高度落下的损坏程度
可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
使用手册之中,对于杯子的用法,是否有详细描述,对于杯子的限制,是否有详细描述,对于杯子的使用条件,是否有详细描述 ?
取一个杯子,在里面盛入水作为案例一,放置24小时,于此时检查泄漏的时间以及情况以进行疲劳测试;再取该杯子,于内部盛上汽油当作案例二,同样放置24小时,并检查此时泄漏的时间和它相应的情况并且还要做疲劳测试等 。
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透
进行关于杯子加包装还要有填充物的跌落测试,测试的是在何种高度的情形下摔下杯子不会破损 。
关于震动测试,是针对带有包装且有填充物的杯子,进行六面震动测试,则是要检查该产品能不能应对恶劣的铁路运输,以及恶劣的公路运输,还有恶劣的航空运输 。
考量的数据为:测试的数据,具体去编写的地方在此处省略。当中应用涉及到:场景这一方法,等价类划分这种方法,因果图的方法,错误推测的办法,边界值的方法等方式 。
期望输出:该期望输出需查阅国标、行标以及使用用户的需求
05测试需求分析
1.测试需求
什么是测试需求

测试需求主要解决的是“测什么”这一问题,也就是,指明在被测对象里,什么是需要进行测试的 。
测试需求,通常是通过对软件开发需求进行分析,在此基础之上,经过对开发需求的细化,及对开发需求的分解,进而形成可测试的内容。
对于测试需求而言,其应当将已定义的业务流程,进行全部覆盖,并且还要去对功能方面的需求,以及,和非功能方面的需求,予以覆盖 。
测试需求的特征
所制定的测试需求项应当必然是能够得以核实的,也就是说,它们必定得具有一个凭借观察能够知晓、依靠评测能够明确的结果,而那些不能够进行核实的需求并非属于测试需求;
测试需求,应该指明,能够满足需求的,正常的前置条件,与此同时,也需要指明,当不满足需求的时候,会出现的出错条件;
测试需求,并不涉及具体的测试数据,测试数据设计,乃是测试设计环节应当解决的内容;
为什么要测试需求
软件测试需求是开发测试用例的依据;
有助于保证测试的质量与进度;
测试需求是衡量测试覆盖率的重要指标;
2.测试需求分析过程
需求采集
需求采集的过程,是把软件开发需求当中,那些具备可测试性的需求,或者特性提取出来,进而形成原始测试需求,
测试需求分析
测试要点是,针对原始测试需求表当中的,每一条开发需求进行细化,再予以分解,进而形成的,可测试的,分层描述的软件需求;
3.测试需求评审
完整性审查,要确保测试需求能够充分涵盖软件需求的各类特征,着重关注功能要求方面,关注数据定义方面,关注接口定义方面,关注性能要求方面,关注安全性要求方面,关注可靠性要求方面,关注系统约束等方面,与此同时,还应当关注是否覆盖了开发人员遗漏的需求,是否覆盖了系统隐含的需求;
准确性审查,要确保所描述内容能获相关各方一致理解,各项测试需求不存在矛盾冲突,各项测试需求在详尽程度上维持一致,每一项测试需求均可作为测试用例设计依据。
06 测试计划
1.测试计划的定义
测试计划是对所有要完成的测试工作做描述,其中涵盖被测试项目的背景,还有目标,以及范围,包括方式,包含资源,涉及进度安排,有测试组织,另外还有与测试有关的风险等方面内容 。
2.测试计划的作用
1)测试过程提供指导
测试目标
测试内容
测试方法
测试时间周期
2)改善测试任务与测试过程的关系
3)提高测试的组织、规划和管理能力
3.如何制定测试计划
4.测试计划的内容
1)测试项目简介
2)需要测试的特征
3)不需要测试的特征
4)测试的方法(测试人员、测试工具、测试流程)
5)测试环境(软件、硬件、网络)
6)测试环境是测试人员为进行软件测试而搭建的环境
7)测试开始条件和结束条件
8)测试者的任务、培训
9)测试进度与跟踪
10) 测试风险与解决
11) 测试计划的审批与变更方式
5.测试风险与解决
07测试方案
1. 测试方案的目的
在方向上明确要测什么、怎么测,以及达到什么样质量标准。
2. 测试计划与方案的区别
3. 如何制定有效测试方案
1)测试需求分析
2)测试策略
3)测试资源
4)测试进度计划
5)风险管理
6)质量
4. 测试策略
制定测试策略:测试资源、测试进度计划、风险管理、质量
测试类型:
1)功能测试
2)界面测试
3)安全测试
4)本地/国际化测试
5)数据库测试
6)可靠性测试
7)集成测试
8)兼容性测试
9)自动化测试
10) 性能测试
11) 回归测试
08 黑盒用例设计方法
1. 黑盒测试的概念
黑盒测试,被称作功能测试,又被叫做数据驱动测试,还被叫做基于规格说明书的测试,它是一种从用户观点出发的测试。
2.黑盒测试主要测试的错误类型有
①不正确或遗漏的功能;
②接口、界面错误;
③性能错误;
④数据结构或外部数据访问错误;
⑤初始化或终止条件错误等等。
3.黑盒测试的实施过程
测试计划阶段
测试设计阶段
测试执行阶段
测试总结阶段
4.黑盒用例设计技术(重点)
1)等价类划分方法(重点)
2)边界值分析方法(重点)
3)场景法 (重点)流程分析法,是业务流程
基本流(正常流)
备选流(异常流)
4)错误推测方法
根据经验以及直觉去推测程序里所有有可能存在的形形色色的错误,进而有针对性地设计测试用例的办法。
5)因果图方法
思考输入条件彼此之间相互组合,有可能会出现一些新的状况,然而要去检查输入条件的组合并非是一件容易办到的事情,就算将所有输入条件划分成等价类,它们之间的组合情形也是相当多的。
6)判定表驱动分析方法
判定表,也就是Decision Table,是用于分析以及表达好多逻辑条件之下执行不一样操作的工具哟 ,它能够将繁杂的逻辑关系,还有多种条件组合的情形,表达得既具体又明确呢。
7)规则及规则合并
有两条规则,有一条规则,有另一条规则,它们具有相同的动作,并且,其条件项之间,存在着一种极为相似的关系,这种关系就是规则合并所涉及的 。
8)正交试验设计方法
它是依照正交性,从全面试验之中选出部分具有代表性的点来开展试验,这些具有代表性的点拥有“均匀分散,齐 整可比”的特性,它是一种具备高效率、快速以及经济特点的实验设计方法。
5.等价类划分方法
能够将所有输入数据,合理地划分成若干等价类别,在每一个等价类别当中,选出一个数据当作测试的输入条件,如此一来,便能够借助少量具有代表性的测试数据,获取较好的测试结果。
有效等价类
满足输入条件
无效等价类
不满足输入条件
超范围数值
空值
特殊字符
空格 (trim 去除空格)
6.边界值分析方法:是对等价类划分方法的补充
7.测试方法选择的综合策略
首先,开展等价类划分,涵盖输入条件以及输出条件的等价划分,通过这一举措,把无限测试转变为有限测试,而这是降低工作量以及提升测试效率最为有效的办法。
在任何情形之下,都务必得运用边界值分析之方法,经验已然表明,借助这种方法去设计处测试用例,其发现程序错误之能力乃是最为强大的 。
3)用错误推测法再追加一些测试用例。
对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,若未达到要求的覆盖标准,那就应当再补充足够的测试用例。
5) 针对业务流清晰的系统,能够借助场景法穿梭于整个测试案例进程之间,且于案例内里全方位运用各类测试方法。
实际进行测试时,常常是要综合去运用各类方法,如此才能够有效地提升测试效率,以及测试覆盖度。
09 测试用例设计
1. 测试用例的主要构成要素
测试用例,是一份测试文档,其中描述了输入,描述了动作,还描述了一个期望的结果,其目的在于确定(应用程序的某个特性是否按照正常的状态进行工作) 。
2. 设计测试用例的原则
用语简洁清晰,但不能过于简单
用语无歧义,尽量少用过长的句子
用例的各个基本要素要齐备,不能缺失
用例的步骤应该足够详细,操作应该明确
容易被其它测试工程师读懂,并能顺利执行
3. 用例的粒度
粒度,它所指乃是粗细程度,粒度大,这意味着一个用例所覆盖的关注内容比较,多相反若是粒度小,则这个相应的用例所涉及的关注内容自然而然也就要变,少反之同理 。
2)用例的粒度大,则总的用例数就少,用例看起来也简洁
3)用例的粒度小,单条用例关注的测试点就很集中,不容易遗漏,而且执行需要的时间比较好估计,
4. 执行结果
1)当用例还尚未被执行时,是New未执行状态
2)当执行结果与预期结果相符时,是Pass通过状态
3)当执行结果与预期结果不符时,是Fail失败状态
4)若软件存在缺陷从而对用例步骤的执行造成妨碍,并且这个缺陷并非属于我们的测试点,那么此用例处于Block阻碍状态 。
5),当用例处于正在执行的状态时,然而,却是需要耗费较多的一段不短的时间去做一番观查其相应的结果的举止行为,从而,此刻,是处于Investigate观察的那种状态之中 。
5. 编写元素
拿用来举例时的编号,当作例子的标题,作为例子的级别,作为前提的条件,作为操作的步骤,作为预期的结果,作为编写的人,作为备注的内容 ,
11 测试执行
1.测试执行
1)什么是执行测试用例
依据已有的那些测试用例,依照其中的步骤,一个步骤接着一个步骤地去执行,去查看预期结果跟实际结果是不是一致 。
2)测试执行过程注意事项
ü 搭建测试环境事项
ü 注意前提条件和特殊说明
ü 测试用例要全部执行
ü 不要忽视任何偶然现象
ü 加强测试过程记录
ü 详细预期与实际的不一致
ü 提交缺陷时与开发的关系处理
ü 提交一份优秀的问题报告单
ü 及时更新测试用例
2. 软件缺陷
缺陷又名为BUG(臭虫)
并非所有的缺陷都需要修复
a)没有足够的时间
b)不算真正的软件缺陷
c)修复的风险太大
d)不值得修复
3. 缺陷的流程
4. 缺陷生命周期—状态
5. 缺陷的等级
6. 测试报告
测试报告的主要内容
数据统计
遗留bug情况
测试风险
测试对象评估
测试结论
测试中做总结,要回顾整个项目测试流程整个过程,去复盘后再总结个人经历积累中的成长经验,关于成绩方面取得了什么,不足上所存在涵盖哪些,好的经验以及方法有哪些是能够和大家分享的呢这均需要进行梳理,还要针对工作展开一个理性的分析以及相对应的思考 。
本文来自作者[admin]投稿,不代表芝麻开门立场,如若转载,请注明出处:https://aizmkm.com/zshi/202509-7719.html
评论列表(3条)
我是芝麻开门的签约作者“admin”
本文概览:软件研发流程涵盖产品、工程、开发过程等要素,软件测试包括概念、目的、原则、对象、分类等基础内容,还介绍了测试需求分析、计划、方案、用例设计、执行及报告等方面...
文章不错《软件研发流程全解析:软件产品、工程及开发过程介绍》内容很有帮助