软件测试理论基础 | 当前位置: 首页> 学习中心> 小白入门> 详情 |
1、软件的生命周期
计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码(coding)->测试(testing)->运行与维护(running maintrnacne)
2、什么是软件测试,测试的目的是什么
定义:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
目的:测试是程序的执行过程,目的在于发现错误软件测试为了发现程序中存在的代码或业务逻辑错误软件测试为了检验产品是否符合用户的需求软件测试为了提高用户体验 。
软件测试的原则:测试应尽早启动、介入(需求分析阶段),所有的测试应追溯到用户需求,测试证明软件存在缺陷,不可能执行穷尽测试,完全测试是不可能的,测试需要终止。
二八原则,测试发现的错误中80%很可能的起源于20%的模块中。(缺陷存在群集现象)对错误结果要进行一个确认的过程(测试的详细数据,截图,前置条件等),制定严格的测试计划;妥善保管测试过程中的所有文档;程序员尽量避免自己的检查程序;设计测试用例是应该考虑到合法的输入和不合法的输入。
3、测试的流程,测试分为哪几个阶段
获取需求 ->测试方案计划编写 ->测试用例编写与评审 ->用例执行与bug提交验证 ->测试报告编写 ->版本上线与交付
需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价。
制定初步的项目计划。
测试准备:组织测试团队、培训、建立测试和管理环境等。
测试设计:按照测试要求进行每个测试项的测试设计,包括测试用例的设计和测试脚本的开发等。
测试实施:按照测试计划实施测试。
测试评估:根据测试的结果,出具测试评估报告。
一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试。
单元测试:是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。
集成测试:是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。
系统测试:是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。
验收测试:以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。
4、测试有哪些策略
黑盒/白盒,静态/动态,手工/自动,冒烟测试,回归测试,公测(Beta测试的策略)
4.1、单元测试对象,及策略有哪些
单元测试对象是模块内部的程序错误,目的是消除局部模块逻辑和功能上的错误和缺陷。测试依据是模块的详细设计,测试方法是采用白盒测试。逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析。
单元测试测试策略:自顶向下的单元测试策略:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。孤立单元测试策略:最好的单元测试策略。
4.2、集成测试有哪些策略
大爆炸集成、自顶向下集成、自底向上集成、三明治集成(适用于大部分软件开发项目)、基干集成、分成集成、基于功能集成、基于消息集成、基于风险集成、基于进度集成。
大爆炸集成:适应于一个维护型项目或被测试系统较小
自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
4.3、系统测试有哪些策略
数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试
5、测试的原则
追溯到需求
冒烟测试
按照用例全部覆盖测试
回归测试
业务流程测试
发散测试,尽可能的让问题提前暴露出来,避免随意测
6、测试退出的标准
系统测试用例已经通过评审
按照系统测试计划已经完成了系统测试
系统测试的覆盖率达到了100%
系统的功能和性能满足产品需求规格说明书的要求
在系统测试中发现的错误已经修改且各级缺陷修复率达到标准
系统测试中不存在A、B、C类缺陷
D类缺陷允许存在,不超过总缺陷的5%
E类缺陷允许存在,不超过总缺陷的10%
注:以上为比较理想化的退出标准,但实际工作中不可能达到这种程度,尤其是测试覆盖率和缺陷覆盖率不可能是100%,军方标准是达到99%。对于通用软件来说是根据公司实际情况。
7、软件测试类型有哪些
功能测试性能测试(压力测试、负载测试、稳定性测试、并发测试、强度测试等)
安全测试
兼容性测试
配置测试
网络测试(弱网测试)
UI界面测试(分辨率测试)
安装测试
内存测试
文档测试
发散性测试
7.1、什么是兼容性测试?兼容性测试侧重哪些方面?
兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。
兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。
兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。
兼容和配置测试的区别在于,做配置测试通常不是Clean OS下做测试,而兼容测试多是在Clean OS的环境下做的
8、测试的分类
1、按测试技术分类(黑盒测试、白盒测试、灰盒测试)
黑盒测试:主要关注被测软件的功能实现,而不是内部逻辑。在黑盒测试中,被测试对象内部结构,运作情况对测试人员是不可见的。常见黑盒测试:功能性测试、容量测试、安全性测试、负载测试、恢复性测试、标杆测试、稳定性测试、可靠性测试等
白盒测试:对系统内部的结构和工作原理有清楚的了解,并基于该知识设计用例。白盒可以检测代码中每条分支和路径,揭示隐藏在代码中错误。
灰盒测试:一般在白盒测试中交叉使用黑盒测试的方法,在黑盒测试中交叉使用白盒测试的方法,这种测试就称做灰盒测试。
2、按测试方式分类(静态测试、动态测试)
静态测试:指不实际运行被测软件,只是静态地检查程序代码、界面或文档中可能存在的错误的过程。
动态测试:运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
3、diff测试
也可称为一致性测试,通过对比相同输入、相同接口,不同代码的测试,对比其结果的差异,从而发现潜在的bug
4、黑盒测试与白盒测试的优缺点
优点:
黑盒测试:简单、不需要了解程序内部代码的实现。从用户角度触发,自测过程中知道软件实现了哪些功能;
白盒测试:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题
缺点:
黑盒测试:不可能覆盖所有的代码,覆盖率较低,大概质量达到总代码量的30%,自动化测试的复用性较低
白盒测试:程序运行有很多不同的路径,不可能测试所有的运行路径。测试基于代码,只能测试验证代码是否存在错误,无法验证设计正确与否,会存在遗漏功能需求。当系统庞大时,浪费时间。
α测试:是由用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。
β测试:由软件的一个或多个用户在实际使用环境下进行的测试, 开发者通常不在测试现场,Beta测试不能由程序员或测试员完成
9、软件测试的风险
1、测试人员:业务不熟、人员变动、疲态、同化效应、定位效应
2、测试材料:需求变更,质量标准不一样,测试用例或测试数据设计不充分
3、测试环境:测试软件版本、硬件/软件环境等不统一、硬件不到位
4、测试时间:测试时间不足、测试时间延长
5、测试方法:错误或缺失测试方法、场景缺失、测试用例实施不充分
10、测试计划主要包含哪些内容?
背景、目标、范围、测试进度安排、测试组织、测试执行中开始与结束的标准、测试相关的风险
测试目标、测试概要
测试范围:测试计划所包含的测试软件需测试的范围和优先级、测试点(重点测试、无需测试、无法测试、推迟测试)。
重点事项:列出需要测试的软件所有的主要功能和测试重点。
质量目标:制定测试软件的产品质量目标和软件测试目标。
资源需求:测试所需的软硬件、测试工具、必要的技术资源、培训、文档等
人员组织
测试策略:制定整体策略、测试技术和方法
发布提交:按照测试计划进行测试发布后的需要交付的软件产品、测试案例、测试数据和文档
测试进度和任务人员安排
测试开始/完成/延迟、继续的标准测试风险
10.1、做好测试计划工作的关键是什么?
软件测试计划就是在软件测试工作正式实施之前明确测试的对象,并且通过对资源、时间、风险、测试范围和预算等方面的综合分析和规划,保证有效的实施软件测试;
做好测试计划工作的关键 :目的,管理,规范
1)明确测试的目标,增强测试计划的实用性编写软件测试计划的重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确。
2)坚持“5W”规则,明确内容与过程“5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。
3)采用评审和更新机制,保证测试计划满足实际需求测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。
4)分别创建测试计划与测试详细规格、测试用例应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。
更多软件测试相关推荐:
文章来源:网络 版权归原作者所有
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理