2021.7.14
什么是软件测试?
答:本质上就是从各个角度对被测软件进行检查,尽早发现软件存在的问题,并帮助开发人员定位和修复。
什么是软件的生命周期?
答:不同行业的软件生命周期长短不同,生命周期越短,一般质量要求越低。
软件的生命周期包括:1、计划;由项目经理来完成对项目计划的制定;项目计划需要考虑:时间成本、资源投入、预期收益。2、需求分析;如果是特殊的行业需要由对应的业务需求分析人员(BA)来完成,一般是由开发人员来完成,也可由产品经理来完成;需求分析需要整理出软件的具体特性,对应的软件需求说明书(SRS)。3、设计;1)由系统架构师或者资深的开发工程师给出软件的概要设计(HLD),2)高级工程师给出每个函数的详要设计。4、编码;由普通的开发工程师来完成。5、测试;由专门的测试工程师来完成。6、运行维护;由运维工程师来完成。运维工程师主要负责环境的维护、软件的升级/上线、线上问题收集反馈等。
研发的流程是什么?
答:1 ) 串行流程和并行流程;其中串行流程比较简单,对管理的要求低,并行的流程比较复杂,对于管理的要求高。2 )迭代开发和非迭代开发;迭代开发能让用户尽快使用到软件,尽快获取用户的反馈,但是多次迭代开发后软件的质量会下降,软件整体会越来越散,需要隔段时间进行代码重构。
常见的研发流程有:
1)瀑布模型:属于串行、非迭代开发流程,比较适合周期短,功能简单的项目。
2)螺旋模型:属于迭代开发+瀑布模型;适合周期长,业务相关性弱的项目。
3)IPD(集成产品开发):将研发、采购、生产等都放在一起并行开展工作。
从测试阶段来看软件测试分为:系统测试、集成测试、单元测试、验收测试;其中在系统测试中主要使用黑盒测试方法,也可使用白盒测试,针对的测试对象是整个软件;集成测试主要使用灰盒测试,针对的测试对象是模块或者接口;单元测试主要使用白盒测试,但也可使用黑盒测试的方法,测试的对象是函数;验收测试使用的是黑盒测试,测试的对象是整个软件。
从测试工作的阶段和活动来看可分为四个阶段和四个活动;(其中软件测试的工作也是属于软件研发的一部分)
四个阶段主要是指:系统测试、集成测试、单元测试、验收测试;
系统测试一般是由测试工程师来完成,单元测试一般是由开发工程师来完成,集成测试一般是由测试工程师来完成,验收测试一般是由用户或者第三方来完成。
就验收测试来看可分成:1)正式验收测试,由第三方来完成;2)非正式验收测试,由用户来完成;可分为阿尔法测试(比如游戏的内测)和贝塔测试(比如游戏的公测),阿尔法测试是受控的,参与测试的用户是挑选的,用户需要反馈测试结果。
四个活动主要指的是(测试的每个阶段都可细分成四个活动):1、测试计划活动 2、测试设计活动 3、测试实现活动 4、测试执行活动
测试计划活动主要是由项目组长来制定计划,从管理的角度对整个测试工作进行规划和控制。测试设计活动主要是由高级的工程师来制定测试方案,从技术的角度对整个测试工作进行规划和控制。
测试实现主要是由测试工程师编写测试用例。测试执行活动主要是由测试工程师来参与,主要负责1、部署测试环境(包括准备测试用的数据、编写自动化测试脚本等)2、执行测试用例3、提交缺陷报告(需要提交给开发工程师,开发人员修复后,测试工程师进行回归测试)
回归测试需要实现的目标:1、验证开发工程师是否真的修复了bug了2、检查开发工程师的代码修改是否引入了新的bug。
测试的方法是出现在测试方案中,工作中主要涉及到的方法:1、黑白盒测试 2、静态动态测试 3、人工自动化测试
测试用例的格式:1、测试对象2、测试编号3、测试项目4、用例标题5、重要级别6、预置条件7、测试输入8、操作步骤9预期目标