目录
一、什么是软件测试
软件测试就是验证软件产品是否满足用户的需求。
由开发人员编写好的代码,需要由测试人员检验是否有些地方不符合代码规范/是否符合用户体验等等。为了保证用户的体验、产品的质量,于是就引入了"软件测试"。项目发布给用户之前,一定需要经过测试。
但是,测试并不仅仅是在编码结束之后才进行测试,而是贯穿整个软件的生命周期。
二、测试和调试的区别是什么
先说一下:测试!=调试。
但是,二者的目的是类似的,先看一下调试与测试的目的是什么:
测试和调试的目的不同
调试:发现并且解决软件当中的缺陷;
测试:发现软件当中的缺陷。
参与的角色不同
调试:位于编码阶段(由开发人员进行参与的)
测试:位于测试阶段(由测试开发人员+测试人员完成的)。
但是,单元测试和集成测试这两个模块,主要是由开发人员进行完成(但不是绝对)。后面的文章会提到这两个测试模块。
测试和调试的执行阶段不一样
调试:在编码阶段进行的。
测试:测试贯穿软件的整个生命周期,并不是在编码结束之后才进行测试(重要)。
总结一下,测试与调试的区别是什么:
参与角色 | 执行阶段 | 目的 | |
测试 | 测试开发人员+软件开发人员 | 整个软件的生命周期 | 发现软件当中的bug |
调试 | 软件开发人员 | 编码阶段 | 发现并且解决软件当中的bug |
三、测试有哪些岗位
去网上搜索一下:
软件测试工程师&软件测试开发工程师。
这两个岗位都是"测试人员",都需要关注软件的质量。
软件测试工程师,重点在于排查项目的bug。
软件测试开发工程师,并不是开发软件,而是开发测试软件的工具。
例如:自动化测试工具、代码覆盖率工具、数据构造工具等等......
四、软件测试开发工程师&软件开发工程师的区别(重点)
工作内容:
开发:主要负责软件的开发(以开发为主)。
测试:主要负责软件的测试,以测试为主,开发为辅。
难易程度:
开发的专业度更高,例如需要掌握很多程序的底层的实现等等。
测试人员要求掌握内容的广度要更广,但是专业度不像开发那么高。
作为测开人员,既要懂得开发的流程,也需要熟悉测试的流程。
五、测试人员需要具备的素质(6个主要)
快速学习的能力:
可能工作当中会要求使用其他的语言(例如python),那么就要注重快速学习的能力。
沟通能力:
需要和开发的人员进行良好的沟通。
对于测试的需求,需要和开发的人员进行良好的沟通。
文字能力:
快速阅读文档、编写测试的文档的能力。
开发能力:
熟悉软件开发的流程。
探索性思维:
测试工程师在执行测试的过程当中不断学习被测系统,结合自己的经验进行系统的错误猜测和逻辑推理,提出更多有见解的测试思想。
有责任感和压力承受能力:
责任感是任何工作都需要的,对于测试工作者而言:
测试往往是产品质量的最后把关者。对于开发工作者而言,他们的工作是"建房子"。而测试的人员,主要负责的是"拆房子"。测试这个房子的各个功能。
优秀的测试用例设计能力:
设计良好的测试用力
六、软件测试的发展(了解)
初级测试:
测试定义、测试方法、测试生命周期、测试执行、测试管理工具(禅道)。
中级测试:
测试用例、linux、mysql、loadrunner、测试管理工具、selenium、appium(界面自动化工具)、jenkins等。
高级测试:
要掌握自动化测试的有关技能(例如:自动化测试框架、web、app等)
还涉及性能测试、安全测试、功能测试等等,后面的文章会详细介绍。