1.软件测试的目的是什么?
测试的目的在于,(1)确认软件用正确的方式做了正确的事情(do the right thing in the right way);(2)提供信息,为开发人员或者测试经理提供反馈,方便风险评估;(3)软件测试不只是在于软件产品本身,还在于软件的开发过程。因为如果一个软件开发完成之后,发现很多问题,这就说明软件的开发过程很可能是有缺陷的。软件测试是为了能够保证整个软件开发的过程是高质量的。
也可以说是,软件测试是找到缺陷,为了给用户最好的产品。软件测试目的是在于产品质量是否符合上线要求?因为有些软件都是带着缺陷上线的产品,所以软件测试的目的只是为了找bug的话,那简直就是浪费生命啊。
测试只能证明软件有错,不能证明软件无错。软件测试是为了更好的满足用户的需求,而找bug只是一种手段而不是目的,毕竟软件开发出来是给用户使用的,而不是给软件测试工程师找bug的。
2.什么时候需要软件测试?
软件测试贯穿于软件定义和开发的始终,其存在于软件开发的生命周期的每一个阶段。需求分析、概要设计、详细设计、程序编码等各个阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应该作为软件测试的对象。有限次的测试并不能说明软件在各个情况下都能正常使用,只能说明在某些特定的情况下能够正常使用。
3.根据不同的测试阶段,测试可以分为什么?
根据不同的测试阶段,测试可以分为单元测试、集成测试、系统测试和验收测试,体现了测试由小到大、由内到外、循序渐进的测试过程和分而治之的测试思想。
单元测试,粒度最小,一般采用白盒方式来测试,主要测试单元是否符合“设计”。
集成测试,介于单元测试和系统测试之间,一般采用黑盒加白盒的方式来测试,既验证“设计”,又验证“需求”。
系统测试,粒度最大,一般采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。
验收测试,和系统测试相似,主要区别是测试人员的不同,验收测试由用户来执行。
黑盒测试,一般不考虑程序的内部结构和逻辑结构,主要用来测试系统的功能是否满足需求规格说明书,具体的黑盒测试方法包括等价类划分、因果图、正交实验设计法、边值分析、判定表驱动法、功能测试等。
白盒测试,主要是应用在单元测试阶段,主要是对代码级的测试,针对程序内部逻辑结构,测试手段有:语句覆盖、判定覆盖、条件覆盖、路径覆盖、条件组合覆盖。
集成测试,主要是用来测试模块与模块之间的接口,同时还要测试一些主要业务功能。
系统测试,主要是经过以上测试阶段确认以后,把系统完整的模拟客户环境来测试。
参考链接:https://blog.csdn.net/yongge/article/details/1930230
https://blog.csdn.net/sinat_33718563/article/details/73826381