软件测试初学

x33g5p2x  于2022-05-16 转载在 其他  
字(2.9k)|赞(0)|评价(0)|浏览(330)

一、什么是测试开发人员?

软件测试包括:自动化测试用例开发人员(自动化)、自动化工具开发(测试提效)。

二、什么是软件测试?

就是测试人员验证软件的功能是否满足用户的需求。
这个用户不单单指的是购买软件的用户。还包括流量用户。
什么是流量用户?比如说我们是微信软件的使用者,我们并没有给钱相应的公司才能使用,但是我们每个人却都能够使用。那公司做一个软件那么多人使用却不收钱,肯定不是做慈善,而是利用众多的用户量,对其它公司收钱来打广告。那么用户量多了,看到广告的人就多了,就能够最大化广告的作用。

对于软件测试人员,不仅要验证软件符不符合用户的需求,并且还要找出不符合的地方。

软件测试人员对软件功能的验证:
1.验证功能是否可以正常运行。
2.验证功能满足用户的需求。

三、软件测试和开发的区别?

1.技能:
开发要求技能集中,专业度高。要了解底层的东西。(深度)
测试要求技能广泛,专业度较低。需要了解各种测试工具。如:

测试人员要求会使用这些工具,来协助测试的工作。工具对于软件测试人员来说只是一种手段,不需要了解底层。
2.难易程度
软件测试较开发简单。
3.薪资、发展前景、工作环境、压力。
薪资跟开发的差不多,发展前景好。工作环境还不错,压力较开发小。
4.软件测试和软件开发当中的调试有什么不同?
(1)目的:
软件调试:程序员验证软件的代码是否实现了他想让软件实现的功能。
软件测试:测试人员验证软件是否满足了用户的需求。
(2)角色:
软件调试:开发人员
软件测试:测试人员+开发人员(白盒测试,跟代码相关)。
(3)阶段:
软件调试:开发阶段。
软件测试:贯穿了整个软件的开发过程,处处都有软件测试。因此,“软件测试是在开发完成之后进行的”这句话是错误的。因为一旦需求有问题,就需要把整个软件都要整改,但是此时已经开发完成了,就到了不可挽回的地步。因此每开发出一个功能,就去测试下该功能是否能够满足用户的需求。

四、为什么要选择软件测试这个岗位?

(1)能力
沟通能力、学习能力、开发能力、文字描述能力
(2)测试用例的编写能力
后面补
(3)自动化测试能力
后面补
(4)兴趣
(5)责任感、抗压能力强
(6)探索性思维
不被条条框框束缚,有发散性思维,能够结合实际情况想问题。
比如说一个实际场景,如何测试和解决每个小场景中的可能存在的问题。

五、什么是需求?

用户的期望和满足合同(文档、规则、标准) 的规定所需要的条件和权限

需求也分为 用户需求 和 软件需求。

软件需求是用户需求转化而来的,它是用户需求的细化,是用户需求的具体实现细节和规范。
用户需求比较粗略,直接实现会有困难,因为没有细节,所以需要软件需求把用户需求细化和规范,把用户需求变成一个具体的可实现的过程文档。

六、基本概念

1.需求是软件测试的依据

验证需求,保证需求正确可实现。细化需求,从需求中提炼出一个个的测试项。
以“用户登录”为例,阐述整个过程:

软件测试人员如何深入了解需求?
从需求分析阶段就开始介入了解需求,要站在用户需求的角度。

2.什么是测试用例?

测试用例就是向被测试系统发起的一组集合,包含测试环境、测试数据、测试步骤、预期结果(还有 重要性、优先级、操作方式、标题等)。

如:

测试点:用正确(已注册)的手机号和密码登录网易邮箱界面,登录成功。
标题: …
测试环境:Chrome浏览器的99.0.4844.51 的PC端 的Win10 系统。
测试数据:用户名:… 密码:…
测试步骤:
(1) 在浏览器打开邮箱登录页面的URL
(2) 输入用户名和密码
(3) 按enter键 或鼠标点击 进行登录。

预期结果:(操作完测试步骤后的结果) 登录成功。

测试用例能够告诉我们测什么?怎么测。
优点:衡量需求的覆盖率(测试用例和需求的对比);复用性;可以用于回归测试;防止遗漏测试需求。

3.什么是bug?

当且仅当,程序规格说明书(软件需求)存在并且合理,如果软件功能和软件规格的说明书不符合,可以认为是软件错误。
当软件需求不存在,用户需求存在并且合理,软件功能和用户功能不匹配,就说明是软件错误。

4.开发模型(5个模型)

软件开发的生命周期:
需求分析——计划——设计——开发——测试——运行维护

4.1 瀑布模型

适用于需求稳定的项目,需求不容易发生变化的项目。

优点:阶段性强,每个阶段比较独立,看重前期的需求分析和后期的测试。

注:测试是在编码之后才进行的。因此有很严重的缺点:导致前期的问题后期才被发现,会失去错误补救的机会。

4.2 螺旋模型

适合于项目庞大,风险大,不是很明确的项目。
特点:强调每一个迭代的测试质量和风险分析。
缺点:风险管控人力物力投入很多,成本比较大。

4.3 增量模型、迭代模型

增量模型:比如说现在要完成A、B、C、D这四个模块,增量模型就是先完成A、B两个模块,再完成C、D这两个模块。

特点:注重质量管理,每一个迭代都会进行风险分析。
缺点:风险分析投入人力,资源,管理成本,这些造成的成本比较高。

迭代模型:也比如说现在要完成A、B、C、D这四个模块,它是先完成A、B、C、D四个模块的基础部分,再完成A、B、C、D中较为复杂的功能。

它们共同的特点是:抗风险能力比较强。

4.4 敏捷模型

特点:拥抱变化。只要项目研发还没有结束,用户就可以修改它的需求,在敏捷的开发当作,开发人员和用户可以有密切的沟通,因此就能够适应需求的变化。
总结:轻文档、轻流程、重目标、重产出。

敏捷模型中有个 scrum流程:
角色:
PO product owner 产品经理,进行需求整理,把用户需求转化成user stroy(或者 软件需求文档)。
SM scrum master 项目经理,管理整个团队,负责敏捷流程各种会议顺利实施。
ST scrum team 各种技能的人组成,有开发,测试,UI 。开发,迭代,定期交付一个高质量可用的软件。

scrum中有几个会议:
1.发布计划会议:产品经理收集需求形成user story,讲解,排出本迭代需要进行开发的user story形成sprint backlog。
2.迭代计划会议:分析user story,把user story 分解成一个个的任务,分配开发人员,制定开发计划。
3.每日站会:昨天干了什么,遇到的问题,今天的计划。
4.产品演示会议:向甲方,用户演示产品,PO把不足的地方收集成user story,下一次迭代改进。
5.回顾计划会议:回顾整个迭代过程,把不足的地方找出,在下一次迭代过程中改进,优化迭代流程。

5.测试模型

5.1 V模型

特点:每一个阶段独立性强,前期的需求分析和后期的测试阶段一一对应。前期的每一个阶段,是后期每一个测试阶段的依据。
它是瀑布模型的变种。
缺点:编码后才进行测试,前期的错误后期才会被发现,会失去错误及时纠错的机会。

5.2 W模型(双V模型)

特点:每一个阶段的独立性强,测试一开始就介入,可以保证前期的问题及时发现和纠正。测试和开发是并行的。
缺点:每个阶段都是串行的过程,一个阶段完了之后才进行下一个阶段,无法适应需求的变化,不支持敏捷。

七、为什么软件测试人员要写测试用例?

(1) 测试用例是测试执行的依据。
(2) 测试用例可以复用,在进行回归测试的时候不用重新编写。
(3) 测试用例可以衡量测试需求的覆盖率。
(4) 后人可以借鉴。
(5) 手工测试用例是自动化测试的依据。

相关文章