软件测试——初识篇


1、什么是软件测试

官方表示:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(包括输入数据与预期输出结果),并利用这些测试用例运行软件,以发现软件错误的过程

简单的理解是:软件测试就是找BUG,发现缺陷。

现实生活中在很多情况下我们都在默默进行测试:
刚新买来一部手机,我们往往需要查看手机的常见功能是否能正常运行,这是在"测试"
一场考试,做完一遍题目之后, 进行一遍检查, 这是在 “测试”
买一台电视,安装好之后打开试试看能不能正常使用,这也是在 “测试”

软件测试就是验证软件产品特性是否满足用户的需求

早期,人们更多的将测试看成是对软件产品"检验",检查软件的每个功能是否运行正常。
1983年,Bill Hetzel将软件测试定义为:软件测试就是一系列活动,这些活动是为了评估一个程序或者 软件系统的特性或能力,并确定是否达到了其预期的效果
从这话我们可以看出以下两点:

  • 测试试图验证软件是"工作的",也就是验证软件功能执行的正确性
  • 测试的活动是以测试人员"预期的结果"为依据,这里的"预期结果"指的是需求定义。

软件测试的特点软件测试只是一个样本试验,具有不可穷尽性

2、软件测试和开发的区别

技能要求
开发要求技能集中,专业度高(深度高)。

例如C++后台开发工程师,不仅需要会使用,还需要了解各种各样的底层原理,这样才能写出好的代码

测试要求技能广泛,专业度低
接口: soupUI postman jmeter
自动化测试: java Python ,unittest ,testNG,robotFramework selenium工具
性能测试工具: loadrunner jmeter
抓包: Charles fiddler (模拟弱网)
APP测试: appium Macaca

扫描二维码关注公众号,回复: 14526971 查看本文章

难易程度:开发广度小,专业度高。测试广度大,专业度低
工作环境:基本类似 薪水 中小企业总体比研发低,自动化等专业测试领域和研发基本无差距。大厂研发测试基本无差 别发展前景 自动化测试、安全测试等领域发展前景和研发基本一致。
繁忙程度: 敏捷模式下差距不大,产品发布前压力比较大

3、软件测试与调试的区别

1.目的

软件调试:程序员验证软件是否实现了他想让软件实现的功能
软件测试:测试人员验证软件是否实现了用户的需求

2.角色

软件调试:开发人员
软件测试:测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行

3.阶段

软件调试:开发阶段
软件测试:贯穿了整个软件开发声明周期,处处有软件测试
(软件测试是在开发完成之后进行的,这句话错误)

4、软件测试岗位

软件测试工程师:工程师的主要工作一般包含需求分析、编写测试计划和测试方案、设计测试用例、执行测试用例、跟踪BUG、编写测试报告等。

测试开发工程师:根据项目的特点来开发一些自动化测试的脚本,或自动化测试的工具,或者是软件测 试工作中用到的提高工作效率的小工具什么的,从而能够更有效地进行测试,提高软件产品的质量。测试开发工程师工作的目的就是为了更高效,更快捷地让测试工程师进行测试工作;测试开发岗位一般 要求一定的开发能力,解决问题的能力尤为重要。

性能测试工程师:针对系统进行性能测试,包括使用工具和编写性能自动化测试脚本。

安全测试工程师:主要分析产品可能会出现的安全问题,做各个方面的渗透测试,提高产品的安全性 其它:系统测试工程师,嵌入式测试工程师,硬件测试工程师。

5、目前IT公司的部门团队人员架构

在这里插入图片描述
一个项目团队中的测试人员组成

1.手工测试人员
2.自动化测试用例开发人员(自动化)
3.自动化工具开发(测试提效)

2和3统称为测试开发人员

6、优秀的测试人员所具备的素质

1.综合能力

  • 沟通能力。含着表达能力、倾听能力和设计能力(形象设计、动作设计、环境设计)。沟通能力看起来是外在的东西,而实际上是个人素质的重要体现,它关系着一个人的知识、能力和品德。
  • 学习能力。就是学习的方法与技巧(并非是学到什么东西),有了这样的方法与技巧,学习到知识后,就形成专业知识;学习到如何执行的方法与技巧,就形成执行能力。
  • 开发能力。有良好的思维逻辑和编程能力。
  • 文字描述能力。能够编写文档,并且能够清晰的描述出BUG

2.测试用例的编写能力

3.自动化测试能力

4.兴趣

5.责任感,抗压力强

6.探索性思维

  • 不被条条框框束缚,发散性思维,能够结合实际想问题

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_56044032/article/details/127029508