软件测试是什么?
使用人工和自动手段来运行或测试某个系统的过程,其目的在于验证它是否满足规定的需求或弄清预期结果与实际结果的差别。
为什么做软件测试?目的是什么?
- 发现软件存在的代码或业务逻辑错误
- 检验产品是否符合用户需求
- 提供用户体验
软件测试划分
测试技术划分
- 按测试技术划分:白盒测试、黑盒测试
- 被测试对象是否运行划分:动态测试、静态测试(文档检查、代码走查)
- 按不同的测试手段划分:手工测试,自动化测试
- 测试包含内容划分:功能测试,界面测试,安全测试,兼容性测试,易用性测试,性能测试
- 其他测试:冒泡测试,回归测试,探索性测试/自由测试
按测试阶段划分
单元测试:主要测试程序代码,确保各单元模块被正确编译,比如有具体的模块测试,也有具体到类,函数,方法的测试等——一般开发来完成
集成测试,单元测试后,将各单元测试合成完整的体系,测试软件单位之间的接口是否正确,数据能否正常传递。——比方说注册和充值这两个功能是否能够联通
系统测试:把软件系统搭建起来,按照软件规定说明书中所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞等。(计算机程序结合外设+网络等其他元素进行测试)——根据测试用例,进行完整的系统 将已经确认的软件、
系统测试:软件、硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试 和确认测试,系统测试是针对整个产品的测试。
验收测试:主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做相应测试,以确定软件达到符合效果的。——用户对软件进行验收
测试分为哪几个阶段?
一般来说分为4个阶段:单元测试、集成测试、系统测试、验收测试
验收测试中的两种测试
alpha测试:把用户请到开发方对软件进行测试,测试环境受开发方控制,测试人不多,测试时间比较集中 执行人员:用户 公司内部人员
beta测试:测试环境不受开发方控制,测试人员比较多,测试时间不集中
功能测试:验证软件的业务功能是否符合需求,包括对原定功能的检验以及测试软件是否存在冗余功能、遗漏功能。
界面测试:被测系统的界面与原型图是否一致,测试用户界面是否友好,系统设计是否合理、界面位置是否正确等问题。
安全测试:对被测试系统的安全进行测试,防止非法入侵的能力(多次输入用户名密码,是否允许输入,sql注入)
兼容性测试:在不同的平台、不同的工具软件或者相同工具软件不同的版本下的兼容性。
易用性测试:是否操作方便、是否容易理解、是否容易上手
性能测试:某个特定时间,用户数据剧增,软件是否正常。性能是否满足用户需求,即在特定的运行条件下验证系统的能力状态。主要是通过自动化的测试工具模拟正常、峰值、异常负载状况、对系统的各项性能指标进行测试。(负载测试、压力测试)
文档测试:主要检查内部或外部文档的清晰性和准确性。
冒烟测试:在进行正式测试前对主要功能核心功能进行测试 一般是开发人员 测试主管来负责
回归测试:开发对存在问题的功能进行修改后,再一次进行的测试 bug给开发 开发改bug 测试对Bug再一次验证
探索性测试:根据自己的项目经验而进行的随缘测试