软件:计算机程序、程序所用的数据以及有关的文档资料的集合。
软件测试:在规定的条件对软件进行操作,以发现错误,对软件质量进行评估。
测试目的:提高软件质量,发现软件缺陷和错误,对软件质量进行评估。
开发模型:瀑布模式、vwxh、螺旋模式
1、瀑布模型
计划,需求分析,设计,编码,测试,运行与维护
优点:上一阶段的变换结果是下一阶段的变换的输入,相邻两个阶段具有因果关系,紧密相联。可用于迭代。
缺点:突出缺点是不适应用户需求的变化。
2、V 模型
规格说明书,需求分析,概要分析,详细分析,编码,单元测试,集成测试,系统测试,验收测试
优点:强调了在整个软件项目开发中需要经历的若干个测试级别,并与每一个开发级别对应
缺点:未明确指出对需求和设计的测试,前期的错误要在验收阶段才能发现。
3、W 模型
1)需求分析,概要设计,详细设计,编码实现,模块集成,系统构建,系统安装
2)需求测试,概要设计测试,详细设计测试,单元测试,集成测试,系统测试,验收测试
优点:有利于尽早发现问题
缺点:不支持迭代
软件生命周期
需求,设计,编码,测试,维护,升级,废弃
软件测试流程
1、需求分析(需求人员,客户,产品组)
2、测试计划(测试老大)
3、测试方案(测试人员)
4、测试用例(测试人员)
5、用例执行(测试人员)
6、测试报告(测试老大和有经验的测试人员)
测试结束条件
需求覆盖率达标,用例执行达标,缺陷遗留率达标,软件质量目标达标。
测试开始条件
软件测试在项目启动、需求分析的时候开始时候随之开始。
软件测试类型
1、按测试阶段进行划分:
1)单元测试(对软件中的最小可测试单元进行检查和验证。对象是代码,程序员自测)
2)集成测试(所有模块按照设计要求组装成为子系统或系统进行测试。对象是模块,程序员或者测试人员)
3)确认测试(目的是向未来的用户表明系统能够像预定要求那样工作)
3)系统测试(目的是验证系统是否满足了需求规格的定义,范围是:功能,安全,兼容,性能,界面,安装卸载,易用性)
4)验收测试(确定产品是否能够满足合同或用户所规定需求的测试)
a.非正式验收测试
А(alpha)测试:软件开发公司组织内部人员模拟各类用户行为对即将上市的产品进行测试。
ß(beta)测试:软件开发公司组织各方面的的典型客户在日常工作中实际使用,并要求用户报告异常情况、提出改进意见,然后公司再进行完善。
b.正式验收测试
有正规的测试过程,需要制定测试计划、定义测试方案、选择测试用例,进行测试,结果提交。
2、按是否运行程序划分:
1)静态测试(桌面检查、代码审查,检查代码、界面、文档)
2)动态测试(实际运行被测试的软件,输入相应的测试数据,检查实际的输出结果是否和预期结果相一致的过程)
3、按是否看代码划分:
黑盒测试(也称功能测试,不管内部逻辑和内部特性,只依据规格说明书检查程序的功能是否符合功能说明。)
白盒测试(也称为结构测试。着重于程序内部结构和算法,不关心功能和性能指标。)
灰盒测试(介于白盒和黑盒测试之间,基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。)
其他类型的测试
回归测试:对软件的新版本测试时,重复执行上一个版本测试时使用的测试用例。
冒烟测试:BVT测试,对象是每一个新编译需要正式测试的版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。
随机测试:猴子测试。
敏捷测试:高度迭代,有周期性,并且能够及时、持续地响应客户的频繁反馈。
黑盒测试方法:或者测试用例的设计方法
1、等价类划分法※(邮箱注册,6~18个字符,可使用字母、数字、下划线,需以字母开头,)2、边界值分析法※(年份选择,1900~2048)
4、场景法※(登陆,基本流,备选流)
5、因果图法
6、错误推断法
7、正交试验方法
测试质量:
1、覆盖需求所有的功能点2、猴子测试(随即测试、自由探索测试)
3、严格执行测试用例
4、时间充足的时候跟同事互测
性能测试:为获取或验证系统性能指标而进行的测试
压力测试:在强负载(大数据量,大并发用户)下的测试
负载测试:模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。