文章目录
一、什么是软件测试
最常见的理解是:软件测试就是找BUG,发现缺陷。
软件测试就是验证软件产品是否满足用户的需求。
由开发人员编写好的代码,需要由测试人员检验是否有些地方不符合代码规范/是否符合用户体验等等。为了保证用户的体验、产品的质量,于是就引入了"软件测试"。项目发布给用户之前,一定需要经过测试。但是,测试并不仅仅是在编码结束之后才进行测试,而是贯穿整个软件的生命周期。
生活中的测试:
考试,做完一遍题目之后, 进行检查, 就是在 “测试”
买一台电视, 安装好之后打开试试看能不能正常使用, 也是在 “测试”
软件测试的特点:
软件测试只是一个样本试验,具有不可穷尽性。
二、软件测试和开发的区别
在工作中,开发主要为业务代码,测试人员主要工作内容就是测试。
开发 | 测试 | |
---|---|---|
薪水 | 中小企业总体比研发低,自动化等专业测试领域和研发基本无差距。 | 大厂研发测试基本无差别 |
难易程度 | 开发广度小 ,专业度高。 | 测试广度大,专业度低 |
发展前景 | 自动化测试、安全测试等领域发展前景和研发基本一致。 | |
技能要求 | 测试要求更广泛:业务能力,设计和架构分析能力,测试手段和工具使用,用户模型分析和理解,编程能力 |
三、测试和调试的区别
测试!=调试,但是二者的目的是类似的。
-
测试和调试的目的不同
调试:发现问题并解决问题;
测试:发现问题。 -
参与的角色不同
调试:位于编码阶段(由开发人员来执行)
测试:位于测试阶段(由开发人员+测试人员来完成)。 -
执行的阶段不同
调试:一般在开发阶段。
测试:贯穿整个软件开发生命周期,并不是在编码结束之后才进行测试(重要)
但是,单元测试和集成测试这两个模块,主要是由开发人员进行完成(但不是绝对)。
四、软件测试岗位
- 软件测试工程师: 工程师的主要工作一般包含需求分析、编写测试计划和测试方案、设计测试用例、执行测试用例、跟踪BUG、编写测试报告等;
- 测试开发工程师: 根据项目的特点来
开发一些自动化测试的脚本,或自动化测试的工具,或者是软件测试工作中用到的提高工作效率的小工具什么的,从而能够更有效地进行测试,提高软件产品的质量。
测试开发工程师工作的目的就是为了更高效,更快捷地让测试工程师进行测试工作;测试开发岗位一般要求一定的开发能力,解决问题的能力尤为重要。 - 性能测试工程师: 针对系统进行性能测试,包括使用工具和编写性能自动化测试脚本。
- 安全测试工程师: 主要分析产品可能会出现的安全问题,做各个方面的渗透测试,提高产品的安全性
- 其它: 系统测试工程师,嵌入式测试工程师,硬件测试工程师。
软件测试工程师&软件测试开发工程师。
这两个岗位都是"测试人员",都需要关注软件的质量。
软件测试工程师重点在需求分析、编写测试计划和测试方案、设计测试用例、执行测试用例、跟踪BUG、编写测试报告等,重点在测试。
软件测试开发工程师也是重点在测试,开发效率提升工具为辅。
例如:自动化测试工具、代码覆盖率工具、数据构造工具等等…
为什么测试人员还需要学习开发知识?
测试人员也需要进行代码编写,如自动化测试,性能测试,效率工具等。测试人员能够看懂代码,了解框架,代码中数据的走向能够更好的从代码层面去发现问题。学好开发知识能够提高测试质量。
为什么不走开发岗位而是测试岗位?
1)个人兴趣爱好
2)对测试的理解
3)为什么走测试还需要学习开发知识
五、软件测试人员具备的素质
- 综合能力
- 沟通能力
测试工程师的沟通能力会直接影响事务开展的效率。良好清晰的沟通能力,是一个技术优秀的测是
工程师是否可以获得更好发展的“敲门砖”。 - 快速学习的能力
对不同业务需求和功能的快速学习与理解能力。 对于测试新技术和新方法的学习能力。 - 开发能力
开发能力掌握的越好能够更好的协助提高测试质量。 - 文字能力
编写测试用例,测试报告等。
-
掌握自动化测试技术
-
优秀的测试用例设计能力
测试用例是测试人员执行测试工作的重要依据。测试用例设计能力是指,无论对于什么类型的测试,都能够设计出高效地发现缺陷,保证产品质量的优秀测试用例。
如何提高测试用例设计的能力?
1,掌握设计测试用例的方法
2,积累,总结
3,阅读好的测试用例设计案例
- 探索性思维
探索性思维是指测试工程师在执行测试的过程中不断学习被测系统,结合自己的经验,知识,直觉,进行系统的错误猜测和逻辑推理,整理和分析出更多有针对性的的测试关注点。 - 兴趣
- 有责任感和一定的压力
测试作为产品质量的重要把关者。由于测试工作成效很难衡量,测试用例执行、bug数目的多少都无法说明产品的质量是否合格。所以,责任感是最重要的测试必备素质之一。
测试工作者,特别是属于互联网行业需要能够抗住各种压力。