1.什么是软件测试?
软件测试就是软件测试人员验证软件是否满足用户的需求。(测试的时候要测试满足和不满足的数据)
2.软件测试和软件开发的区别?
(1)本身:
开发:广度小,专业度高;
测试:所需技能比价广泛,但是专业度低;
(2)软件测试和软件调式:
目的:软件开发人员要确保程序做了他想让程序实现的功能;
软件测试是测试人员确保程序实现了它应该实现的功能(用户需求);
角色:测试是测试人员和开发人员共同完成的;开发是开发人员完成的;
(3)阶段:
软件测试贯穿到了整个软件开发的生命周期;
软件开发:开发阶段;
3.为什么要选择软件测试
(综合能力:沟通、学习、开发、文字;自动化测试技术;编写测试用例的能力;探索性思维;兴趣;责任感;压力等各个方面。)
4.什么是需求?
需求就是用户的希望和满足合同(文档、规则、标准)的规定多需要的条件和权限。
用户需求和软件需求。
软件需求是用户需求转换而来的,它是用户需求的细化,使用户需求的具体实现细节和规范。
用户需求比较粗略,直接实现会有困难,因为没有细节,所以需要软件需求把用户需求细节实现和规范,把用户需求变成一个具体的可实现的过程文档。
- 需求是软件测试的依据
验证需求,保证需求正确可实现。细化需求,从需求中提炼出一个个的测试项。
- 软件测试人员如何深入的了解需求?
从需求分析阶段就开始介入了解需求(站在用户需求的角度)。
- 测试用例:
测试用例就是向被测试系统发起的一组集合,包含测试环境、测试数据、测试步骤、预期结果(重要性、优先级、操作方式、标题等)
例如:用正确(已经注册)的手机号和密码登录网易邮箱界面,登录成功。
测试环境:Chrome 版本99.0.4844.51 PC端 Windows系统
测试数据:用户名、密码
测试步骤:1)在浏览器打开邮箱URL;
2)输入用户名和密码
3)登录
预期结果:(操作完测试步骤后的结果)登录成功
5.测试用例告诉我们测什么、怎么测
优点:衡量需求的覆盖率;复用性、借鉴意义;可以用于回归测试;防止遗漏测试需求;
6.什么是BUG(软件错误)
当且仅当,程序规格说明书(软件需求)存在且合理,如果软件功能和软件规格说明书不相符合,我们就说是软件错误;当软件需求不存在,用户需求存在且合理,软件功能和用户功能不相符合,就说明软件错误。
软件测试的阶段:整个软件开发的生命周期,需求阶段介入。
7.开发模型(5个)
软件开发的生命周期:需求分析---计划---设计---开发---测试---运行维护
(1)瀑布模型
start--需求分析--计划--设计--编码--测试--end
特点:阶段性强,每个阶段比较独立;看重前期的需求分析和后期的测试
缺点:测试在编码后才开始介入,导致前期的问题后期才发现,会错失错误补救的机会。
(2)螺旋模型
适合于项目庞大,前期风险大,不是很明确的项目;
特点:强调每一个迭代的测试质量和风险分析
缺点:风险管控人力物力投入很多,成本较大
(3)增量模型,迭代模型
同一个系统的四个模型 A B C D
增量模型:第一周开发A B功能模块;第二周开发C D功能模块
迭代模型:第一周先开发A\B\C\D的基础功能,第二周再在第一周的基础之上完成其他的功能
特点:抗风险能力强
(4)敏捷模型
个体与交互重于过程和工具;可用的软件重于完备的文档;客户协作重于合同谈判;响应变化重于遵循计划;
特点:轻文档、轻流程、重目标、重产出
(5)测试模型
(1)V模型
特点:每一个阶段独立性强
缺点:编码后才进行测试,前期的错误后期才发现,会失去错误及时纠正的机会
(2)W模型(双V 模型)
特点:每一个阶段独立性强;测试一开始就介入了;可以保证前期的问题及时发现和纠正;测试和开的并行
缺点:每一个阶段都是串行的过程;一个阶段完了之后就进行下一个阶段;不支持敏捷开发