测试基础篇--对软件测试、开发的基础认识

面试篇:

1.什么是软件测试?

验证软件是否满足用户的需求

软件测试是按照一定的评判标准(需求)来进行活动的

【注】不运行系统或程序也可以进行软件测试测试

2.软件测试和软件开发的区别?

软件开发:用程序开发的方式把用户的需求实现成一个软件(例如APP,web网站,小程序等) 角色:软件开发人员

软件测试:主要由测试人员进行测试,看是否满足用户需求

(1)软件测试和软件调试的区别?
软件调试发生在软件开发过程

  • 目的不同:
    软件测试是查看软件是否满足用户的需求;软件调试是开发人员检查程序是否实现了他想要程序实现的功能(本质区别)

  • 角色不同:
    软件测试的角色包括软件测试工程师,白盒测试工程师和开发人员(白盒测试:进行单元测试–》对一个模块进行测试 Java junit)
    软件调试的角色则是开发人员

  • 阶段不同:
    软件测试贯穿到了整个软件开发的生命周期;软件调试只是在开发阶段

(2)技能方面:开发要求技术范围小,专业度高;测试要求技术面广,专业度低

3.一个优秀测试人员所具备的素质?

(面试官:为什么选择软件测试这个职位?)

(1)思维方式:逆向思维,发散性思维
(2)兴趣
(面试官:为什么选择测试?是因为简单吗?)

(3)能力:学习能力、语言表达能力、文字能力、编程能力
(4)性格:不浮躁;对问题敏感;批判性思维
(5)有抗压力和责任感


测试左移:需求前调研阶段和需求阶段,测试人员参加

测试右移:产品上线后,系统监控,日志记录和分析

概念篇

1.什么是需求?

满足用户的期望和正式规定的合同、标准、文档所需要的条件和权限
包括:

  1. 用户需求:用户想要软件实现的功能
    boss/实际用户(反馈和要求)/公司的业务人员(针对公司的内部系统) 非常简单,没有实现细节
  2. 软件的需求:用户需求的具体化,时用户需求具体的实现细节,开发人员要根据软件需求进行软件开发

软件需求是用户需求转换而来

2.什么是BUG?

  • 当我们的规格说明(软件需求)存在且合理,如果软件功能和需求规格不符合,说明是软件错误(BUG)
  • 当规格说明不存在,如果用户的需求存在并且合理,如果功能和用户需求不匹配,说明是软件错误(BUG)

3.什么是测试用例?

测试用例就是一个集合,包括测试平台,测试环境,测试数据,测试步骤,预期结果,标题、测试功能模块,前置条件,重要性、优先级、操作方式等

为什么测试工程师要写测试用例?
评估测试的功能的覆盖率,不会进行大量的冗余操作,可以重复使用

4.软件开发的五个模型和软件测试的两个模型?

软件开发的生命周期:需求分析–计划–软件设计–程序编码–软件测试–运行维护

(1)软件开发的模型:

  • 瀑布模型(有去无回):适用于需求稳定的项目,项目前期的风险或错误后期的测试才发现,会失去修正改错的最佳时机
    优点:各个阶段比较独立,看重需求分析和软件测试
    缺点:无法适应需求的变化,测试到编码后才介入,导致前期缺陷无法及时发现,无法及时修正
  • 螺旋模型:适用于项目比较庞大,需求不明确,风险比较大的项目,有利于项目风险的控制
    优点:强调软件质量;每一次迭代进行严格的风险分析,提供讨论项目是否又必要进行下去的机会
    缺点:引入风险管理会投入大量的人力物力
  • 迭代模型
    例如:一个系统有A,B,C,D四个模块的功能需要完成,两周时间
    迭代:
    第一周:完成A,B,C,D四个模块的基础功能,搭好基础框架
    第二周:完成A,B,C,D四个模块的后续功能,做功能完善
    项目风险防空能力比较强
  • 增量模型
    增量:第一周完成A,B模块功能,第二周完成C,D模块功能
    项目风险防空能力比较强
    (一般迭代模型和增量模型一起使用)
  • 敏捷开发模型(轻文档,轻流程,重目标,重产出)
    敏捷开发拥抱变化
    scrum流程😗
    (1)产品发布计划会议(产品经理负责对user story进行排版、讲解,整理出这一期迭代需要完成的user story)
    (2)迭代计划会议(SM ST细化需求,分配任务,具体到任务完成的具体时间)
    (3)开发过程,进行每日站会(三件事,昨天做了什么,今天得计划,以及遇到的问题)
    (4)演示会议(向客户或者老板演示产品成功,期间提出的问题,由产品经理继续整理成user story,放到下一期迭代)
    (5)回顾会议(总结,改进敏捷流程)

scrum流程的三个角色

  • PO:product owner 产品经理 客户的代表方,产品经理将用户需求转化为一个个user story
  • SM: scrum master 项目经理
  • ST:scrum team 研发团队,交付一个高质量可用的软件

问题:测试人员在敏捷开发过程重怎么去完成测试任务?
测试人员核心任务不变----->找bug;
要知道bug问题产生的原因,解决方案

特点:
①短周期开发。

②增量开发。

③ 由程序员和测试人员编写的自动化测试来监控开发进度。

④通过口头沟通、测试和源代码来交流系统的结构和意图。

⑤编写代码之前先写测试代码。也叫做测试先行。
缺点:
①团队的组建较难,人员素质要求较高。

②对测试员要求完全掌握各种脚本语言编程,会单元测试。

(2) 测试模型:

  • 软件测试V模型
    在这里插入图片描述
    单元测试:是模块测试,验证软件的基本组成单位的正确性,是白盒测试
    集成测试:是模块间的测试,测试接口(软件各模块之间的接口和软件与硬件之间的接口)是否正确,是灰盒测试(白盒和黑盒结合)
    系统测试:系统测试包括:冒烟测试 系统测试 回归测试
    (1)冒烟测试:主干流程测试,确认软件的基本功能正常,可以进行后续的测试工作
    (2)系统测试:是检测系统的功能、质量、性能能否满足系统的要求,包括功能、性能、界面、可靠性、兼容性等等,是黑盒测试
    (3)回归测试:修改了旧代码之后重新进行测试,确认修改后的代码没有引入新的错误或导致其他代码产生新的错误
    验收测试:是确保软件的实现能否满足用户的需求或合同的要求

特点:左边的阶段和右边的测试阶段一 一对应,且左边是右边的每一个测试阶段的依据
缺点:测试介入晚,项目前期的风险和错误到后期测试阶段才发现,会失去问题及时纠正的机会;不能用于敏捷开发(拥抱变化),不适用于需求变化的项目

  • 软件测试W模型(双V模型)
    在这里插入图片描述
    特点:测试在项目一开始就介入(需求阶段介入),有利于前期风险的及时发现
    缺点:不能用于敏捷开发(拥抱变化)。不适用于需求变化的项目
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值