一天十道题,跟我一起学习吧!
答案有加个人见解,如有不同见解可以一起讨论学习~欢迎 共同学习、进步
1.阐述软件生命周期都有哪些阶段?常见的软件生命周期
答:
软件生命周期是指一个计算机软件从功能确定、设计、到开发成功并投入使用,并在使用中不断地修改、增补和完善,直到停止该软件的使用的全过程(从酝酿到废弃的过程)。
软件生命周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,也有将以上阶段的活动组合在内的迭代阶段,即迭代作为生命周期的阶段。
常见的软件生命周期模型:瀑布模型,迭代式模型、快速原型模型、螺旋模型。
2.什么是版本控制,常见的版本控制系统你知道哪些?
答:
版本控制是一种软件工程技巧,在开发过程中,确保由不同人所编辑的同一文件都得到更新及历史记录的保存。
Git是一个开源的分布式版本控制系统,可以有效、高效的处理从很小到非常大的项目版本管理,是为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
Git的优缺点如下:
- 适合分布式开发,每一个个体都可以作为服务器。每一次Clone就是从服务器上pull到了所有的内容,包括版本信息。
- 公共服务器压力和数据量都不会太大。
- 速度快、灵活,分支之间可以任意切换。
- 任意两个开发者之间可以很容易的解决冲突,并且单机上就可以进行分支合并。
- 离线工作,不影响本地代码编写,等有网络连接以后可以再上传代码,并且在本地可以根据不同的需要,本地新建自己的分支。
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
优点:
- 管理方便,逻辑明确,操作简单,上手快。
- 易于管理,集中式服务器更能保证安全性。
- 代码一致性非常高。
- 有良好的目录级权限控制系统。
缺点: - 对服务器性能要求高,数据库容量经常暴增,体量大。
- 必须联网。如果不能连接到服务器上,基本上不可以工作,如果服务器不能连接上,就不能提交,还原,对比等等。
- 不适合开源开发。
- 分支的管控方式不灵活。
3.编写测试计划的目的是?
使测试工作顺利进行、使项目参与人员沟通更舒畅、使测试工作更加系统化。
4.测试计划编写的六要素?
why-为什么要进行测试
what-测试哪些方面,需要注意的点,不同阶段的工作内容
when-测试不同阶段的起止时间
where-相关产品文档、prd、需求说明,缺陷的存放位置,测试环境等
who-项目有关人员组成,怎样安排人员进行测试
how-如何去做,使用哪些测试工具以及测试方法进行测试
5.项目版本执行过程中,测试人员如何把控测试进度?
在项目的系统测试过程中,测试负责人要及时了解测试进度,跟踪bug提交、修复及验证情况以及系统的拷机情况。(拷机:拷机(烧机器)一般指新买的电脑,尤其是新攒的电脑让机器不关机运行1-2天来测试硬件的兼容性与系统稳定性。)
在开发初期阶段,测试组执行BBFV(构建模块功能确认BBFV( Building Block Functional Validation),构建模块是指设计单元,例如一个单元电路,一个软件函数,一个结构零件等等。BBFV通常是以设计人员为主,测试人员参加。)时,很多模块、功能点的开发完成进度和原计划会存在一定的偏差,就需要测试负责人动态的刷新WBS计划(WBS:工作分解结构(Work Breakdown Structure), 创建WBS是把项目工作按阶段可交付成果分解成较小的,更易于管理的组成部分的过程。它的基本定义 :以可交付成果为导向对项目要素进行的分组,它归纳和定义了项目的整个工作范围每下降一层代表对项目工作的更详细定义。),根据实际的开发进度调整测试计划。
在开发阶段,存在版本编译不出来导致无法测试,开发人员修复代码太随意导致版本稳定性反复,需求变更过大导致后端测试开发变更严重等现象,会导致测试工作无法正常进行。就需要测试负责人及时反馈出来汇报风险,根据项目自身的特点进行对应的处理。
6.测试人员在软件开发过程中的任务是什么?
寻找bug、避免软件开发过程中的缺陷、衡量软件的品质、关注用户的需求。总目标:确保软件上线的质量。
7.黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系?
黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性,只依据程序的需求说明书来检查程序的功能是否满足它的功能说明。
白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及相关信息、设计或选择测试用例,对程序所有逻辑路径进行测试。
单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。
集成测试:在单元测试的基础上,对单元模块之间的连接和组装进行测试。
系统测试:在所有考虑的情况下,对系统进行测试。
验收测试:第三方的确认软件满足需求的测试。
8.简述常用的bug管理工具或者用例管理工具,并且描述一下工作流程?
常用:JIRA、禅道、QC、testlink、云效(阿里的不知道有人听过没)
jira:产品创建(需求、计划、模块)->项目创建->研发->测试
9.黑盒测试和白盒测试常用的测试方法有哪些?
黑盒测试有等价类划分法、边界值分析法、因果图法、错误推断法
白盒测试有逻辑覆盖法、循环测试路径选择、基本路径测试
10.简述黑盒测试和白盒测试的优缺点?
黑盒测试
优点: - 比较简单,不需要了解程序内部的代码和实现过程;
- 与软件的内部实现无关;
- 从用户角度出发,更容易知道用户会用到哪些功能操作、会遇到哪些问题;
- 基于需求文档,能知道程序实现了文档中的哪些功能;
- 在做软件自动化测试时比较方便;
缺点: - 不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
- 自动化测试的复用性较低;
白盒测试
优点:
- 帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题;
缺点: - 程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。
坚持看到这里的你真的很棒!每天学习一点点~加油 都要成为更好的自己!