【软件测试】测试经验:IT 软件测试技术系统化学习方法

目录

一、IT 软件测试技术的介绍

(1)相关职称证书

① 「中级」软件评测师

②「高级」项目管理师

(2)背景

(3)作用 

(4)行业应用 

(5)技术概况 

二、系统化学习的前置准备

(1)学习目标

(2)学习计划 

(3)学习工具

(4)学习资料

三、系统化学习软件测试技术

(1)建立基础知识 

(2)构建 XMind 学习路线

四、技术学习与巩固



一、IT 软件测试技术的介绍

(1)相关职称证书

① 「中级」软件评测师

[中级] 软件评测师(软考笔记)icon-default.png?t=N4P3https://gusanshang.blog.csdn.net/category_11206925.html「中级」软件评测师

  • 中级软考『软件评测师』是软件测试行业唯一的软考职称证书,只有中级,无初级和高级,因此在软件测试工程师中,也是最基础和最高级的职称证书,测试执行和测试管理均可考取。
  • 软件评测师是中国软件行业技术职称认证中的一个级别,是评价软件评测人员技能、知识和经验的一种标准和认证。
  • 『软件评测师』职称证书是评价软件测试工程师在软件评测领域达到中级水平的证明,在软件开发和测试领域具有一定的行业影响力。
  • 软件评测师(Software Evaluator)是指负责对软件进行全方位评测、测试和分析,以便为用户提供有关软件功能、质量及应用等方面的准确信息和建议的专业人员。

软件评测师的主要职责:

  1. 制定测试计划:测试计划是整个软件测试质量保证过程的基础。软件评测师要负责基于需求分析和测试策略的相关书面材料,制定测试计划并定期汇报测试计划执行进度,实时更新测试进展情况。

  2. 测试用例设计:测试用例是验证软件是否符合预期规范的手段。软件评测师需要根据测试计划和测试策略进行测试用例的制定,覆盖有效需求,并映射至需求跟踪矩阵,以便跟踪每个需求单元测试的覆盖和执行情况,及时发现缺陷。

  3. 执行测试:软件评测师需要执行测试用例并记录相关结果和问题,发现系统中的各种异常和问题。同时,需精细化测试管理,包括测试数据管理、测试环境管理、测试数据安全管理等方面。

  4. 缺陷管理及跟踪:对测试中发现的所有开放的缺陷进行记录等管理,包括代码问题,性能问题,UI设计问题,等等。同时还需把缺陷进行归类,确定优先级和缺陷处理方案,持续监控缺陷修复进度,直到缺陷全部解决为止。

  5. 测试报告编写:要规范化地编写测试报告为QA阶段提供测试报告,根据测试的各项结果写出对应的图标、表格和文字说明,同时也为项目决策提供可靠的依据。

要成为一名合格的软件评测师,需要具备以下技能和能力:

  1. 扎实的测试基础知识:了解软件测试的基本概念、方法和测试类型,包括黑盒测试、白盒测试、冒烟测试、回归测试等测试技术。

  2. 能力和经验:具备良好的测试能力,包括测试方法设计、测试计划编制、测试用例覆盖率评估、缺陷跟踪、测试报告生成及分析等方面的能力。

  3. 测试自动化:熟悉测试自动化工具和测试脚本的编写,如Selenium、JUnit、TestNG等,能够设计、开发和维护自动化测试框架和自动化测试脚本。

  4. 软件开发知识:对软件开发的基本原理有一定的了解,如软件开发方法、需求分析、系统设计、编程、调试和维护等方面的知识。

  5. 技术能力:熟悉数据库和操作系统等有关技术,对测试数据的生成、处理和管理有一定的了解,了解不同平台和网络环境下的测试需要。

  6. 沟通和协作能力:能够与开发人员、项目经理、测试人员等多个相关方有效沟通,能够协调项目各方面问题和矛盾,并具备一定的决策能力和责任心。

  7. 统筹规划和总结能力:能够对测试项目进行有效的规划和计划安排,进行测试团队管理和成员考核,并对测试项目及测试成果进行总结和反馈,持续改进测试流程和方法。

总之,软件评测师是一个需要全面的综合能力的职业,在工作中,需要做到良好的测试技术水平、大量应用和实践经验,同时还需要具备一定的项目管理和领导团队的能力,这样才能更好的评估和判断软件质量和可靠性,并为企业提供有益的服务,软件评测师是一项专业性很高和责任性很大的工作。

②「高级」项目管理师

「高级」项目管理师

  • 高级项目管理师是中国软件行业技术职称认证中的一个级别,是评价项目管理人员技能、知识和经验的一种标准和认证,项目管理师有中级和高级区别,可直接考取高级,测试管理可考取此证书,测试管理没有专门的职称证书,因此此证书可用于测试经理就业加分,同时也可用于从测试管理转岗项目管理。
  • 高级项目管理师职称证书是评价某人在项目管理领域达到高级水平的证明,在项目管理领域具有一定的行业影响力。 

高级项目管理师的主要职责包括:

  1. 项目计划:负责项目计划的制定和实施,包括项目预算、时间表和关键节点等,确保项目在约定时间内、符合预算、达到客户要求和技术标准。

  2. 项目组织:负责项目组织架构的建立和管理,确保每个人掌握清晰的职责和任务,并与团队成员建立有效的沟通和协作机制。

  3. 项目实施:负责项目实施的监控和控制,跟踪项目的进展和完成状态,预测和处理项目困难、风险和问题,管理团队资源和预算,推动项目向目标方向发展。

  4. 项目交付:负责项目结果的验收和交付,检查项目交付物的质量和符合程度,确保项目离职客户有所贡献。

  5. 项目总结:对项目执行的过程和结果进行审查和总结,并提出改进建议,提高项目管理水平和团队绩效。

要成为一名合格的高级项目管理师,需要具备以下技能和能力:

  1. 项目管理知识:掌握项目管理的理论、方法、流程和工具,理解项目生命周期和管理过程,具备项目管理中的规划、组织、指挥、控制和收尾等方面的技能。

  2. 沟通和协调能力:能够良好地理解并解决各类项目团队和合作伙伴之间的沟通和协调问题,建立信息沟通渠道并实现团队合作。

  3. 领导和管理技能:具备领导和管理团队的效果,关注人才培养、团队建设和职业生涯规划,还能够激励团队成员发挥自身力量,合力推动项目实施。

  4. 问题识别与解决能力:能够识别和评估可能出现的问题,并快速采取解决方案和措施,以解决或规避影响项目准时、准质、准量生产的问题。

  5. 技能培养和自我提升能力:不断学习相关知识与技能,积极参加各种培训、技能和经验分享,加强自信,在实践中提升技能水平。

  6. 人际交流和紧急决策能力:拥有较强的决策能力和团队形成力,能够有效处理突发情况,协调相关方以保证项目顺利进行。

总之,高级项目管理师是一个非常重要的专业角色,能够确保项目按时、按质、按量完成,为企业的发展提供有力支持,通过高级项目管理师职称认证,获得相关技能和认证证书能够帮助职场人士更好地发展自己的职业生涯,其核心素质是贯穿项目管理的规划性、计划性、协调性和管理性,需要具备全面的专业技能和管理器材,有效推动项目管理和组织团队,使所有方向朝向项目成功的方向推进。


(2)背景

       随着信息技术的迅速发展,软件应用广泛,软件质量的要求也越来越高。软件测试的主要目的是在软件交付前,通过一系列测试活动,尽可能发现和解决软件中存在的缺陷和问题,提高软件的质量。这样能够有效地降低软件问题可能带来的风险,保护用户的权益和利益。

  1. 技术深度:软件测试工程师的年均工资往往与其技术深度相关。因此,具备扎实的编程和测试技术,以及良好的测试思维能力和问题解决能力等加强软件测试工程师的竞争力。

  2. 行业背景:随着人工智能和物联网等技术的发展,软件测试逐渐成为了一个日趋重要的领域,因此,在相关产业中拥有丰富的工作经验和深度的领域知识将是软件测试工程师薪资的重要因素之一。

  3. 地域因素:不同的城市、地区和国家由于经济、文化等各方面的原因,对软件测试工程师的需求和薪资也具有较大的差异性。

具体到广州市的软件测试岗位而言,根据过去几年的数据和市场趋势,2023 年广州市软件测试工程师的年薪平均水平估计会在 15-25 万元人民币左右。当然,这个数字还是受到一些因素的影响,比如说:

  1. 技能要求:软件测试工程师需要具备扎实的编程技能、丰富的测试经验以及良好的沟通技巧等,这些要求也将影响其薪资水平。

  2. 行业背景:对于一些发展较好的行业,如人工智能、游戏测试、物联网等,在该领域拥有丰富经验的软件测试工程师薪资可能会更高。

  3. 市场供需关系:就业市场的供求关系同样也会影响工资。如果广州市软件测试工程师的供应量较高,而需求量相对较低,那么其薪资水平可能会受到一些抑制。这两年疫情影响之后,IT 岗位大量裁员,软件测试岗位就业比往年艰难很多。

  4. 学历水平:这两年学历要求全日制本科且学信网可查的企业越来越多,因此学历是一个比较重要的参考因素,大厂正编基本要求重本学历起。

  5. 英语水平:金融行业、跨境电商等行业,要求需英语四级以上证书,无英语证书可能只能就职外包工作,无法转正编,哪怕技术达标也不行,是某些行业的硬性要求。

  6. 年龄性别:这一行男 35 ,女 30 后就很难继续测试执行岗位,管理岗需特别优秀,同时考虑孕假情况,有些行业潜规则在内,说是加班影响反而少,毕竟基本男女都得加班,主要是女 25 以上婚姻与备孕情况比较影响就业面试。

  7. 加班忍耐性:部分行业 996 情况十分严重,并且是无偿加班,用餐补抵,一晚上 15-30 元左右,严重通宵加班,周日加班才一比一调休,大小周等等,对加班的忍受性也是就业的一个重要参考因素,毕竟这一行猝死率挺高的。

  8. 空窗期间隔:空窗期影响挺严重的,比如我 2020 年 7 月因公司倒闭裁员之后,疫情影响之下,选择回家搞家里房子装修,期间技能提升与本科自考也不间断,但由于空窗近 1 年,基本简历投不出去,能面试更是寥寥无几,比较难有机会面试。

总的来说,2023 年广州市软件测试工程师的年薪水平会在 12-25 万元人民币的范围内,但具体到不同的企业和岗位,其工资水平还可能会有所区别。


(3)作用 

软件测试是软件开发生命周期中重要的一环,其主要作用有:

  1. 发现缺陷:软件测试是发现缺陷的主要手段,结合测试用例设计与测试技术进行测试,发现并反馈软件开发过程中的缺陷和问题,使缺陷能够被及时更正。

  2. 验证功能和需求:软件测试用例是针对各种各样需求的验证方法,能够确认软件是否按照用户需求的设想一样工作。

  3. 保证软件质量:软件测试覆盖了所有模块和手段,以保证软件应用的质量和稳定性,避免客户投诉及节省保存和维护成本。

  4. 促进改进:软件测试能够分析并统计缺陷类型、缺陷产生原因和缺陷分布等数据,为软件开发过程提供改进方案和依据。

  5. 安全保障:软件测试能够对软件的数据安全、算法安全、系统安全和网络安全进行风险排除,并为安全方面提出保护措施与方案。

总之,软件测试是一项非常重要的任务,可以确保软件实现所需的功能,发现软件中的所有错误和潜在缺陷,改善功能、提升性能并提高用户满意度、实现快速上线、降低成本与风险。


(4)行业应用 

软件测试的应用行业领域非常广泛,以下是几个主要的行业领域:

  1. 金融行业:银行、证券、保险等金融机构往往需要进行大量的软件开发,需要对各种金融产品和相关软件进行测试以保证其质量、安全、正确性和合规性。

  2. 电商行业:各类电子商务平台依赖稳定的软件系统来进行业务活动和交易,需要进行各种软件测试以保证其稳定和安全。

  3. 游戏行业:游戏行业一直是一个需要高度测试的领域,游戏需要稳定、流畅且趣味性强的游戏操作体验,同时需要对游戏数据进行安全监控。

  4. 医疗行业:医疗行业中的软件应用需要通过软件测试确保能够正确处理患者信息和医疗数据,在保证患者隐私与远程病历管理等方面安全可靠。

  5. 航空航天行业:在航空航天行业中,开发的软件常常应用于航班控制、飞机性能测试等方面,性能和正确性是极为重要的,软件测试在该行业中的作用不可逊色。

  6. 网络通信行业:在网络安全行业中,软件测试能够发现软件技术上的漏洞与缺陷,保证各种安全设备和隐私框架能够得天独厚的完成软件安全检测的任务,为打造安全、高效、稳定和可靠的软件系统奠定基础。

  7. 人工智能行业:软件测试对于智能AI行业的发展和应用至关重要,通过对不同类型的智能 AI 系统和技术的测试与验证,可以保证其能够准确、可靠和安全地运作。

总之,几乎所有行业都涉及到软件开发、系统集成等方面,在保证软件质量、正确性、稳定性和安全性的过程中,软件测试的作用不可小觑。同时,纯软件测试会趋于社会岗位淘汰,而软硬件结合测试的岗位会越来越受重视。


(5)技术概况 

IT 软件测试技术是一种用于评估软件质量的技术,常见软件测试技术分类如下:

  1. 功能测试:即手动测试,其黑盒测试技术是最基本、最常见的一种测试方式,它是通过人工操作软件,模拟不同的情景,发现软件的缺陷和问题。此类测试是针对软件系统功能需求的测试,测试人员在系统运行时通过使用正样本和负样本等场景来测试系统的正确性和完整性。

  2. 接口测试:接口测试是一种测试软件之间的接口是否能够正常地交互信息的测试方式,用来确保不同的应用程序之间的交互是可靠的。

  3. 性能测试:性能测试是一种测试软件系统的负载承受能力的测试方式,主要是测试软件在高负载下的响应时间、并发能力、稳定性等方面。通过测试软件应用程序在各种负载和条件下运行的能力,包括负载测试、稳定性测试和容错测试等等,以测试软件性能指标,如响应时间、吞吐量、并发用户数等。

  4. 自动化测试:自动化测试是一种通过机器执行测试用例,自动化模拟手动操作,来发现软件的缺陷和问题的测试方式,这种测试方式效率和可靠性更高,可以节约测试时间和成本。

  5. 渗透测试:即安全测试,是一种测试软件系统的安全性和保密性的测试方式,主要是测试软件在面对外部攻击和恶意行为时的能力。测试人员根据其模式和方式(如黑盒、白盒、灰盒等)来检查软件系统的安全性,以评估其是否易受攻击和满足安全准则。

  6. 兼容性测试:此类测试是测试系统与不同平台、浏览器、操作系统、数据格式等的兼容性,以确保系统在不同环境和设备中的兼容性。

  7. 可用性测试:通过用户调查、任务脚本、用户行为分析等,测试人员评估软件是否易于使用,以及对用户体验的满意度。

  8. 软硬件结合测试:软硬件结合测试是在软件和硬件之间进行测试和验证的过程,这种测试可以确保软件和硬件之间的交互正常,并且系统能够在各种不同的环境下正常运行。

总之,IT 软件测试技术在软件开发和发布周期中起着至关重要的作用,了解不同的测试技术和方法,可以有效提高软件测试的效率和准确性,进一步保障软件系统的质量和稳定性。 



二、系统化学习的前置准备

(1)学习目标

  1. 了解软件测试的基本概念和流程:学习软件测试的基本概念、软件测试的生命周期和流程,了解测试各阶段的工作和技术。

  2. 掌握软件测试分析技术:学习测试需求分析和测试设计方法,如边界值分析、等价类划分、场景法等。

  3. 掌握测试工具:学习各种测试工具的使用,如 JMeter、抓包工具、Linux、数据库工具等。

  4. 掌握自动化测试技术:学习各种测试工具的使用,如 Selenium、TestNG 等,熟悉自动化测试技术,掌握脚本编写方法等。

  5. 掌握质量管理:学习测试计划、测试用例管理、测试报告撰写和缺陷管理等测试管理技术。

  6. 实际项目实践:参与真实项目的测试,了解并实践各种测试方法和技术,熟悉整个软件开发流程,并获取实践经验。

  7. 职称考试:系统化学习 IT 测试技术后,考取相关的软考职称证书。

总之,系统化学习软件测试需要从基础出发,先了解概念和流程,再深入掌握测试方法和技术,学习测试工具和自动化测试技术,掌握测试管理技术,并通过实际项目实践不断提高自己的技能和经验。


(2)学习计划 

阶段一:软件测试基础(2 周)

  1. 了解软件测试的基本概念和流程。
  2. 学习测试文档的形式和内容,如测试计划、测试用例、缺陷报告等。
  3. 掌握软件错误和缺陷的定义、分类和管理方法。

阶段二:软件测试分析技术(4 周)

  1. 学习测试需求分析的方法和技术,如边界值分析、等价类划分、场景法等。
  2. 学习测试设计方法的基本原则,如黑盒测试、白盒测试、灰盒测试等。
  3. 学习静态测试方法和技术,如代码评审、故障模式和效应分析等。

阶段三:软件测试工具与自动化(8 周)

  1. 学习测试工具的使用方法,如 Selenium、JMeter、TestNG 等。
  2. 熟悉自动化测试技术,包括脚本编写、执行自动化测试脚本等。
  3. 学习性能测试技术和工具的使用,如 LoadRunner 和 JMeter 等。

阶段四:软件测试管理(2 周)

  1. 学习测试计划、测试用例管理、测试报告撰写和缺陷管理等测试管理技术。
  2. 了解测试队伍组织和管理的方法,如团队角色划分、培训和沟通等。

阶段五:实际项目实践(4 周)

  • 参与真实项目的测试,了解并实践各种测试方法和技术、开发流程和管理方法,并获取实践经验。

(3)学习工具

  1. 视频教程和在线教育平台:像 CSDN 、哔哩哔哩、腾讯课堂、虎课网、风变编程、慕课网、51CTO 学堂等在线教育平台提供有关软件测试课程的视频教程和学习资源。它们提供高质量的教育资源,并覆盖从基础知识到高级主题的学习内容。

  2. 文档、书籍和学习指南:包括各种软件测试书籍、标准、白皮书、指南、文章等学习材料,如 ISTQB 认证考试指南、《软件测试实战》、《软件测试方法》等。

  3. 测试工具:像 Selenium、JMeter、Gauge、TestNG 等可视化的测试工具,它们提供了测试自动化、性能测试和功能测试的解决方案,并提供丰富的在线学习资源和社区。

  4. 综合学习平台:像 TAPD、TestFairy、TestRail、TestLink、SpiraTest、Zephyr、QASymphony 等综合测试学习平台,它们提供包括测试计划、跟踪、控制、分析等方面的测试全过程管理功能,并有测试用例、实时数据报告和集成测试工具。

  5. 社区和博客:像 CSDN、helloworld、gitcode、 runoob、博客园、简书、数据大咖等社区和博客平台,上面有许多热情的测试专家和从业者,他们分享自己的经验和知识,提供问题解答和技术指导。


(4)学习资料

  1. 建议阅读的书籍:《软件测试基础》、《软件测试方法与技术》、《软件测试实践》、《白盒测试》。

  2. 免费的在线课程和教育资源:CSDN 、哔哩哔哩、腾讯课堂、虎课网、风变编程、慕课网、51CTO 学堂等在线教育平台提供有关软件测试课程的视频教程和学习资源;ISTQB(国际软件测试资格委员会)官方学习材料、Coursera(电子学)软件测试课程、edX(哈佛大学与麻省理工学院的在线课程合作平台)的软件测试课程、Udacity(学术在线教育机构)软件测试课程、Apple iTunes U(应用程序)的 ISTQB 软件测试课程。

  3. 测试工具和框架文档和教程:Selenium、Appium、JUnit、TestNG、JMeter 等测试工具文档和教程,以及 Cypress、Protractor、Robot Framework、Gauge 等测试框架的文档和教程。

  4. 软件测试标准、规范和协议:ISTQB 测试标准、IEEE软件测试标准、TMMi(测试能力成熟度模型集成)等。

  5. 学术论文和技术博客:各种会议记录,例如 ATC、STC、GTAC、USTC、软件测试学术杂志、测试技术博客等,如 CSDN、ThoughtWorks、TestProject、telerik 、博客园、简书等。

  6. IT 软件测试技术电子书:线上资源获取,比如数据大咖,我的电子书还在分类整合,后续再整理分享,在学习过程中要记得分类与分配优先级,便于节约时间快速自学。

  7. 网盘软件测试相关视频教程:线上资源获取,我的教学视频还在整理中,后续整理分享,在学习过程中要记得分类与分配优先级,便于节约时间快速自学。



三、系统化学习软件测试技术

(1)建立基础知识 

推荐学习《软件评测师教程(第2版)》,全书学习较为系统化


(2)构建 XMind 学习路线

【软件评测师】软件评测师教程(第2版):目录脑图icon-default.png?t=N4P3https://gusanshang.blog.csdn.net/article/details/118734326【Python】自动化测试技术:概述icon-default.png?t=N4P3https://gusanshang.blog.csdn.net/article/details/120283094第 1 个是 IT 测试技术总学习路线,第 2 个是章节学习路线示例,每章节均需整理章节学习脑图大纲,边学习边用 XMind 脑图记录,事半功倍,也便于构建系统化的学习知识点,我的章节脑图会分散于对应的技术专栏,用于概述或介绍,而我的 CSDN 专栏从上而下的顺序就是该专栏技术的学习路线,从基础到进阶。

【软件测试】测试经验:IT 软件测试技术系统化学习方法_第1张图片



四、技术学习与巩固

形成更系统和清晰的 IT 软件测试技术知识体系,必须:

  1. 不断学习和探索新的测试方法和技术:在掌握传统软件测试技术的基础上,要紧跟技术发展的步伐,了解最新的软件测试技术,如机器学习和人工智能等,而且要不断思考如何将这些技术引入到实际测试工作中。
  2. 搭建和维护结构化的学习框架和体系:将测试技术知识体系分类整理,构建知识库系统,整理 XMind 脑图,建立结构化的链接,并指定相应的学习路径和方向,保证知识内容的体系化。
  3. 定期回顾和总结自己的测试知识体系:在日常的测试工作和学习过程中,不断更新测试知识,及时总结和汇总知识的关键要点,形成体系化的内容,并记录在文档或笔记本中,以便后续的回顾和巩固。

进行知识回顾和巩固的方法:

  1. 关注并更新软件测试领域的发展动态:包括关注技术博客、论文、会议、在线培训、webminar 和在线社区的新发布的内容等等,及时整理和归纳、记录新的技术知识和相关的实践经验,并建立回顾机制。
  2. 建立软件测试知识库:将重要的链接、博客、网站、论文、书籍等收集起来,建立起一套完整、具备标准化的知识体系,比如我用 CSDN 专栏博客记录系统化知识点碎片,同时会用硬盘分类整理收藏不便于公开的知识文档,以前也会用印象笔记记录,微信收藏资源碎片、浏览器收藏夹收藏知识链接等,更好地掌握和回顾自己掌握的知识内容。
  3. 不断进行实践与总结:在日常实践中,通过编写和执行测试计划、记录测试案例、开发接口测试、利用各种测试工具反复测试代码等方式巩固和提高测试技术水平,总结工作中的经验和教训,形成可运用和恰当的推广经验,从而加深和提升对软件测试领域的认知;
  4. 定期书写总结并回顾和巩固已经掌握的知识:将之前笔记、各种资源和文化资料整理,进行梳理,巩固和回顾之前学到的软件测试技术,且确定自己测试知识的差异和优点。并让之后的学习更具针对性和高效性。

总之,将不断学习新的知识和技术视为每个高级测试工程师的使命之一,并在日常测试工作中不断实践、总结和巩固,形成自己的系统和清晰的软件测试知识体系,并提升自己的技能水平和专业性。

你可能感兴趣的:(【软件测试】测试理论与经验,软件测试)