测试工程师指理解产品的功能要求,并对其进行测试,检查软件有没有缺陷(Bug),测试软件是否具有稳定性(Robustness)、安全性、易操作性等性能,写出相应的测试规范和测试用例的测试工作人员。
简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时发现软件问题并及时督促更正,确保产品的正常运作。按其级别和职位的不同,分为三类。
分类
按级别和职位不同,分为三类:
高级软件测试工程师:熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估;
中级软件测试工程师:编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务;
初级软件测试工程师:通常按照软件测试方案和流程对产品进行功能测验,检查产品是否有缺陷。
发展
测试分为三个阶段:手工测试、自动化测试、性能测试。这是一个逐步提升的过程。最初工作可能做手工测试,也是绝大部分测试人员所从事的工作。
自动化测试是测试的发展趋势,且自动化测试人员急缺、薪资很高。最稀缺的是性能测试人员,待遇比同等经历的开发可能还要高。
手工测试:比较普及,大多数测试都还停留在手工测试阶段。
自动化测试:是趋势,但目前用自动化测试的还比较少,需要适当的代码编写工作。做一段手工测试后,积累经验可逐步转入自动化测试,熟练后月薪与开发相当。
性能测试:属于稀缺人群,能做好性能测试的人员,月薪一般高于开发。
工作职责
软件测试就是使用人工或自动手段,运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求,或弄清预期结果与实际结果之间的差别。
开发工作的根本是尽量实现软件用户的需求,测试工作的根本是检验软件系统是否满足用户需求。
软件测试工程师具体工作:
使用各种测试技术和方法测试并发现软件缺陷。测试技术主要分为黑盒测试白盒测试两大类:
黑盒测试:等价类划分法、边界值法、因果图法、状态图法、测试大纲法等;
白盒测试:语句覆盖、分支覆盖、判定覆盖、基本路径覆盖等。
测试工作贯穿整个软件开发生命周期,包括:单元测试、集成测试、确认测试、系统测试
将发现的缺陷编写成正式缺陷报告,提交开发人员确认和修复,保证缺陷可重现。
分析软件质量:根据测试结果分析缺陷率、分布、修复趋势,度量功能性、可靠性、易用性、安全性、时间与资源特性,给出是否可发布结论。
制定测试计划:包括测试资源、进度、策略、方法、工具、风险等。
设计测试用例,形成测试用例报告,这是保证测试质量的核心工作。
学习并使用自动化测试工具,编写测试脚本,开展性能测试等,提升效率与水平。
持续改进测试过程,提升测试水平,进行测试队伍建设等。
探索更多内容