浅谈测试开发工程师

浅谈测试开发工程师

1.什么是测试开发工程师?

测试开发工程师(Software Development Engineer in Test,简称SDET)是指那些即可以称作是开发人员,同时也负责软件开发阶段和测试周期的测试工作的技术人员。一个专业的SDET更关注软件产品的可测性,稳健性和性能。他们还可以在生产软件的设计初期发挥推波助澜或审阅的作用。测试工程师可以通过开发的手段开发出易于使用的测试工具供普通测试工程师使用,比如针对一些重复程度高的一些测试项目,还有一些手工测试无法完成的工作,如容量测试、压力测试、并发测试等,开发出自动化测试工具,从而提高测试效率。这有一个前提,即在保证产品质量的前提下。

2.SDET做什么?

通常情况下,测试工程师(STE)主要职责:他们是在系统界面上执行测试,发现bugs,针对发现的问题,在bug追踪管理工具上报告具体的失败的测试用例。而SDET更像是包揽了软件生命周期和测试生命周期的工作,它需要做设计,指定计划,创建,线程化并且通过code review 或者自动化工具发现代码的问题。

一个SDET不仅可以考虑在应用程序代码可能失败的可能性,并适当地规划自己的测试结构,保证了产品的耐用性。

3.为什么需要测试开发?

自动化测试不能完全的替代手工测试,并且企业不乐意去雇佣两种测试人员,那么SDET会成为他们的首选。这就预示着传统的纯手工测试转变为了通过技术实现产品的测试。所以SDET不仅是一个具备编程技能,也是一个可以创建测试框架和工具,帮助手工测试过程的测试人员。

4.SDER的角色和职责

  1. SDET应该能够进行自动化测试和多应用平台的搭建,比如:web,Mobile和Desktop。
  2. 根据技术支持部的反馈调查和重现客户遇到的问题。
  3. 创建和管理bug报告,并与团队进行共同。
  4. 能够创建不同的测试场景和验收测试。
  5. SDET需要处理与合作伙伴的技术交流,了解客户的系统或API。
  6. SDET更需要和部署团队一起协作,处理不同层面的系统问题。
  7. SDET同时也应该具备搭建,维护和操作自动化框架的能力。

5.测试开发工程师大致的工作流程

  1. 需求分析:需要把产品需求分析和项目经理或测试工程师给出的需求结合起来进行分析。
  2. 侧开用例设计:分析功能用例和自研需求,对专项测试、自动化场景做分析,形成侧开用例。
  3. 侧开用例评审。
  4. 自研工具的编码和测开用例覆盖(一般会邀请测试工程师共同验证)
  5. 用自研工具做黑盒测试、白盒测试(单元测试 注入测试 接口mock测试等等)、自动化、性能测试,安全测试。
  6. 问题跟踪
  7. 自研工具改进及持续集成。

6.一些名词解释

1.黑盒测试

​ 黑盒测试也称功能测试或数据驱动测试,它是在已知产品缩影具有的功能,通过测试来检测每个功能是否都能正常使用,在测试是,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书导入规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

​ 黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等,主要用于软件确认测试。黑盒测试着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。

2.白盒测试

​ 白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条桐庐是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动,基路测试等,主要用于软件验证。

​ 白盒测试全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒测试是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了任然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因一楼路径二出错。第三美琼剧路径测试可能发现不了一些与数据相关的错误。

​ 软件人员使用白盒测试方法,主要相对程序模块进行如下的检查:

  • 对程序模块的所有独立的执行路径至少测试一次;
  • 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;
  • 在循环的边界和运行界限内执行循环体;
  • 测试内部数据结构的有效性。

具体包含的逻辑覆盖有:-语句覆盖-判定覆盖-条件覆盖-判定-条件覆盖-条件组合覆盖-路径覆盖。

3.白盒测试&黑盒测试对比

​ **白盒测试技术:**深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试。这一阶段测试以软件开发人员为主,在Java平台使用Xunit系列工具进行测试,Xunit测试工具是类一级的测试工具对每一个类和该类的方法进行测试。

​ **黑盒测试技术:**黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,测试性能等方面进行,根据软件需求,设计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术涵盖了测试的方方面面。可以考虑如下方面:

  • 1.正确性 (Correctness) :计算结果,命名等方面
  • 2.可用性 (Usability) :是否可以满足软件的需求说明。
  • 3.边界条件 (Boundary Condition) :输入部分的边界值,就是使用一般书中说的等价类划分,试试最大最小和非法数据等等。
  • 4.性能 (Performance) : 正常使用的时间内系统完成一个任务需要的时间,多人同时使用的时候响应时间在可以接受范围内。 J2EE 技术实现的系统在性能方面更是需要照顾的,一般原则是 3 秒以下接受, 3-5 秒可以接受, 5 秒以上就影响易用性了。如果在测试过程中发现性能问题,修复起来是非常艰难的,因为这常常意味着程序的算法不好,结构不好,或者设计有问题。因此在产品开发的开始阶段,就要考虑到软件的性能问题
  • 5.压力测试 (Stress) : 多用户情况可以考虑使用压力测试工具,建议将压力和性能测试结合起来进行。如果有负载平衡的话还要在服务器端打开监测工具 , 查看服务器 CPU 使用率,内存占用情况,如果有必要可以模拟大量数据输入,对硬盘的影响等等信息。如果有必要的话必须进行性能优化 ( 软硬件都可以 ) 。这里的压力测试针对的是某几项功能。
  • 6.错误恢复 (Error Recovery) :错误处理,页面数据验证,包括突然间断电,输入脏数据等。
  • 7.安全性测试 (Security) :这个领域正在研究中,防火墙、补丁包、杀毒软件等的就不必说了,不过可以考虑。破坏性测试时任意看了一些资料后得知 , 这里面设计到的知识 内容可以写本书了 , 不是一两句可以说清的,特别是一些商务网站,或者跟钱有关,或者和公司秘密有关的 web 更是需要这方面的测试,在外国有一种专门干这一行的人叫安全顾问,可以审核代码,提出安全建议,出现紧急事件时的处理办法等,在国内没有听说哪里有专门搞安全技术测试的内容。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白居不易.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值