软件测试基础知识

一、了解软件测试

①软件生命周期:计划、需求分析、设计、编码、测试、运行与维护
②什么是软件测试:对软件进行操作、对软件质量进行评估。
③软件测试的目的:寻找软件的缺陷、跟踪修正软件缺陷、验证修正的软件缺陷
④软件测试的对象:软件包括程序、数据和文档,所以软件测试不仅仅是程序测试,还应包⑤括数据测试和文档测试。

软件测试分类:

①按照开发阶段分类
单元测试、集成测试、确认测试、系统测试、验收测试
②按照测试实施组织分类
开发方测试、用户测试、第三方测试
③按照测试技术分类
白盒测试、黑盒测试、灰盒测试;也可分为:静态测试、动态测试

软件测试过程模型:

用户需求–需求分析与系统设计–概要设计–详细设计–编码–单元测试–集成测试–确认测试与系统测试–验收测试(v模型)

软件分析设计阶段的测试工作:

分析设计阶段的测试工作是评审与测试相结合的过程,主要包括需求说明书评测、概要设计说明书评测、详细设计说明书评测以及软件编码规范评测等。

开发阶段的测试工作:

单元测试

对软件中的最小可测试单元进行检查和验证。
单元测试的内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试、内存泄漏测试、资源释放测试

集成测试

在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。
集成测试所要考虑的内容:
1、把各模块组装时,在接口间传递的数据是否会丢失。
2、模块间的功能是否会互相影响。
3、各个子模块组装起来,能否达到预期的要求。
4、全局数据结构是否有问题。
5、单个模块的误差累积起来,是否会放大,甚至崩溃。

确认测试

验证软件的功能和性能及其他特性是否与用户的要求一致。
确认测试一般由独立的第三方测试机构进行,主要测试内容包括:进行有效性测试、软件配置复查

系统测试

将通过集成测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际或者模拟运行环境下,对计算机系统进行一系列测试。
目的:通过与系统的需求定义作比较,发现软件与系统定义不符合或矛盾的地方。

验收测试

以用户为主的测试。软件开发人员与质量保证人员也应参加。由用户参加设计测试用例。使用用户界面输入测试数据,并分析测试的输出结果。一般使用生产中的实际数据进行测试。

软件测试信息流:

根据软件配置、测试配置、测试工具对软件进行测试,将测试结果与预期结果进行比对,如果有错误进行排错改正软件的错误;对所检测的数据进行出错率分析,对软件的可靠性进行分析,预测其可靠性。

软件失效分类与管理:

软件错误:软件生产期内的人为错误(编码)。
软件缺陷:软件运行时候在特定条件下出现的错误。
软件故障:运行过程中软件内部出现错误,若不进行适当处理,就会产生软件失效。
软件失效:软件运行时外部出现错误。

软件缺陷与软件错误的严重性:

1、严重:系统崩溃、数据丢失、数据毁坏
2、较严重:操作性错误、错误结果、遗漏功能
3、一般:小问题、错别字、UI布局、罕见故障
4、建议:不影响使用的瑕疵或更好的实现。

软件缺陷与软件错误的优先级:

1、最高优先级:立即修复,停止进一步测试
2、次高优先级:在产品发布之前必须修复
3、中等优先级:如果时间允许应该修复
4、最低优先级:可能会修复,也可能发布

软件测试技术:

①黑盒测试:也叫做功能测试,通过测试来检测每个功能是否都能正常使用,它注重于测试软件的功能需求。
主要关注的方面:功能不正确或遗漏、界面错误、数据库访问错误、性能错误、初始化和终止错误
②白盒测试:也称结构测试或逻辑驱动测试。
测试方法包括静态测试方法和动态测试方法:
静态测试:不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试。
动态测试:通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现错误的过程。

③自动化测试:通过测试工具或其他手段,按照测试工程师的预定计划对软件产品进行自动的测试,它是软件测试的一个重要的组成部分,能完成许多手工无法完成或者难以实现的以下测试工作。自动化测试涉及到测试流程、测试体系、自动化编译以及自动化测试等方面的整合。
自动化测试的优势:提高测试质量、提高测试效率、提高测试覆盖率、执行手工测试不能完成的任务、更好地重现软件缺陷的能力、更好地利用资源、增进测试人员与开发人员间的合作伙伴关系。
自动化测试的劣势:
(1)相对手工测试,自动化测试对测试团队的技术有更高的要求。
(2)自动化测试无法完全替代人工测试找到Bug,也不能实现100%覆盖。
(3)自动化测试脚本的开发需要花费较大的时间成本,错误的测试用例会导致资源的浪费和时间投入。
(4)产品的快速迭代。自动化测试脚本将不断迭代,时间成本很高。
(5)自动化测试能提高测试效率,却不能保证测试的有效性。即使设计的测试用例覆盖率比较高,也不能保证被测试的软件质量会更优。
自动化测试工具的分类:负载压力测试工具、功能测试工具、白盒测试工具、网络测试工具、测试管理工具、测试辅助工具

软件测试不能保证的地方

主要分为三点:不彻底、不完整、间接性
测试的不彻底性:经过测试后的软件不能保证没有缺陷

测试的不完整性:测试无法保证覆盖到每个应该测试的内容、不可能测试到软件的全部输入与响应、不可能测试到全部的程序分支的执行路径

测试作用的间接性:测试不能直接提高软件质量,软件质量的提高靠开发、测试靠早期发现缺陷,督促修正缺陷间接提高软件质量

软件测试流程

软件测试流程

软件测试过程

软件测试过程

软件测试周期

软件测试周期

测试的启动与结束条件

测试启动条件

1、测试计划和测试用例准备完毕
2、错误跟踪工具设置完毕
3、被测试的Build已经可用
4、测试的软件和硬件环境已经准备就绪

测试结束条件

1、所有软件缺陷得到处理(最好目标:0 缺陷)
2、在规定的时间内连续运行软件没有产生死机、系统崩溃和丢失数据的错误
3、完成了测试计划和测试用例指定的测试工作
4、软件经过“项目管理组”讨论,认为能达到客户的合理质量期望值
5、软件到了发布的截止日期

软件测试与开发的关系

测试与开发的关系

软件测试人际关系方法论

1、换位思考,相互理解,相互尊重
2、就事论事,用事实说话
3、不指责、不嘲笑、不卖关子、不打小报告、不搞人格攻击
4、按时完成份内工作,报告测试进度,提出测试存在的问题和改进方法
5、加强交流与沟通(项目会议、电话、书面、口头交流)
6、软件测试人员是项目的服务员
7、谦虚、热情、坚持原则、讲究方式
在这里插入图片描述

先了解软件测试的基础知识,具备基础知识之后在进行系统的、分布的学习,大家一起加油!!!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值