什么是软件测试?(定义)
顾名思义,就是在规定的条件下对一个产品或程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
发展现状
目前国内软件产业规模越来越大,国内软件行业突破了传统的作坊式生产,从单打独斗的开发模式升级为工业化、流水线式的生产模式,导致专业的软件测试人才需求缺口巨大。
据悉,目前国内软件测试和开发人员比例大约在1:4—1:5,而国外测试和开发人员比例为1:1,可见,国内软件测试人才需求和职业发展潜力巨大。据分析,中国软件测试职业具有以下特征:
-
就业竞争小,工作起点高
信息产业部门发布的报告显示,我国目前软件测试人才的缺口在30万以上,在未来的十年中这一数字还将持续增大,因此从事测试职业所面临的竞争压力将远小于其他职业。而目前单独设立软件测试部门,对测试工程师有强烈需求的企业多是较大规模的软件企业,就业平台是比较高的。
-
薪资待遇好,职业寿命长
随着测试软件行业的兴起,薪资待遇越来越完善,刚入行的软件测试人员,起步月薪就在6000—10000元左右,远高于同龄人的薪资水平,工作2-3年后的薪资更是翻番。质量是产品的灵魂,作为软件质量的把关者,软件测试工程师在企业中的地位也越来越重要,其工作相对更加稳定,而且随着项目经验的不断增长,对不同行业背景了解的不断深入,软件测试工程师的水平将会越来越高,越“老”越吃香。
-
无性别歧视
目前软件开发领域一直趋于男生居多,而且很多公司加班通宵赶项目时常发生,而软件测试人员相对来说前期比较清闲,大多数只有产品上线的时候整个项目团队会加班。
由于工作的特殊,软件测试人员往往更偏好认真、耐心、细致、敏感、等个性元素,而这在一定程度上与女性的个性气质相吻合。据了解,目前很多IT企业中软件测试人员的比例更趋向平衡,甚至出现女性员工成主流的情况。
优秀的测试人员的基本素质
1、参与需求讨论,制订测试计划,确保测试能顺利执行并完成。 2、负责项目的功能性测试、用户体验测试、兼容性测试以及性能测试 3、负责测试用例的编写;编写测试报告和对测试结果分析, 4、与开发人员、产品经理沟通和协作,推动整个项目的顺利进行; 5、负责软件开发团队项目进度管理工作,6.熟悉Linux常用命令,熟悉常用数据库,熟练使用基本的SQL语句; 7.熟练使用Loadrunner,Jmeter等至少一种性能测试工具
软件工程的目的
成本:项目的开销,人工成本,工具成本,设备成本,错误成本(BUG)
进度:时间,计划
质量:软件对顾客需求的满意程度,一个低质量的软件,即使生产成本很低,进度控制良好,顾客也难以接受。
程序测试包含哪些内容
程序测试包括程序逻辑功能,界面,性能,易用性,兼容性,安装等测试,当然文档测试也算,排版,字体大小,也算程序测试的内容
测试环境
测试环境=硬件+软件+网络
硬件环境:笔记本,台式机,服务器
软件环境:不同的操作系统 windows10 windows8 windows7 Linux Mac,
不同浏览器:IE firefox chrom
网络:局域网还是互联网
软件缺陷产生的原因分布
通过大量的测试理论研究及测试实践经验的积累,典型的软件缺陷产生的原因被归纳为以下几种类型:
(1) 需求解释有错误;
(2) 用户需求定义错误;
(3) 需求记录错误;
(4) 设计说明有误;
(5) 编码说明有误;
(6) 程序代码有误;
(7) 测试错误;
(8) 问题修改不正确;
(9) 不正确的结果是由于其他的缺陷而产生。
测试流程
不同测试分类的关系
软件测试的原则
1.应当把“尽早和不断地测试”作为开发者的座右铭。
2.设计测试用例时,应该考虑到合法的输入和不合法的输入,以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。
3.一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。
4.对测试错误结果一定要有一个确认的过程。一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。
5.制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
6.回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。
7.妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。
V模型
V 模型的左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。
V 模型的优点在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发各阶段的对应关系。
V模型的缺陷及解决思路
V模型仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证,需求的满足情况一直到后期的验收测试才被验证。
解决的思路是,当一个软件开发的时候,研发人员和测试人员需要同时工作,测试在软件做需求分析的同时就会有测试用例的跟踪,这样,可以尽快找出程序错误和需求偏离,从而更高效的提高程序质量,最大可能的减少成本,同时满足用户的实际软件需求。
优点:
1 每一个阶段都清晰明了,便于控制开发的每一个过程。
2 既包含单元测试又包含系统测试。
缺点:
1 测试介入的比较晚,对于前期的一些缺陷无从发现和修改。
2 测试和开发串行。
W模型
相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。
优点
1 测试伴随着软件的整个生命周期,例如,在需求分析结束后就可以进行需求分析测试。
2 测试于开发是并行独立进行的。
缺点
1 对有些项目,开发过程中根本没有文档产生,故W模型无法使用。
2 对于需求和设计的测试技术要求很高,实践起来很困难。
软件测试工具
https://zhidao.baidu.com/question/8152959.html
软件测试工具是通过一些工具能够使软件的一些简单问题直观的显示,使测试人员更好的找出软件错误所在。
软件测试工具分为自动化软件测试工具和测试管理(禅道)工具。
软件测试工具存在的价值是为了提高测试效率,用软件来代替一些人工输入。
测试管理工具是为了复用测试用例,提高软件测试的价值。
一个好的软件测试工具和测试管理工具结合起来使用将会使软件测试效率大大的提高。
Bug管理工具: 禅道 Jira(付费),Trac,gitlab
自动化 python+ selenium ,python+ appnium (ui自动化) pytest,unites,Junit (测试用例 单元测试) innerHtml (发送测试报告) request +python+allure 接口自动化
性能测试工具 jmeter ,Loadrunner、
抓包工具 Fiddler ,charles (弱网测试的)
接口工具 postman ,jmeter
录制脚本 bodyboy jmeter
云测 腾讯云 模拟不同的移动端或者是web浏览器
命令 Linux adb monkey
数据库 myql,oracle,redis
语言 python,java,c,c++