zoukankan      html  css  js  c++  java
  • 测试工作绝不仅限于点点点!

    经常听到开发对我说,天天的点点点有意思没?多么索然无味的工作啊,诚然测试在他们眼中就是为他们服务、打杂且十分无趣的工作。和IT圈外的同学、朋友聊起自己的工作,往往一说自己是测试,无形中也会被大家轻视,总有人会问你,为啥干测试啊,怎么不干开发呢?不可置否,在他们心中,你肯定是因为能力不足,无法胜任开发的工作,退而求其次,只能干着平凡、索然无味的测试工作...

         可以这样说,无论是开发的说辞还是朋友们的质疑,这些都不是重点。重要的是你自己难道也认为测试的工作就是单纯的点点点吗?如果你这么认为了,好吧那我奉劝您赶快转行,因为你在浪费自己的光阴,一寸光阴一寸金啊,不必在软件测试这条路上走下去了。因为你的目标和思想已经固化、停滞不前了。如果你不同意开发的说法,那我恭喜你,听我给你分析分析测试到底是不是只是点点点的工作。

    01

    测试背景

    为了描述的更加形象生动,我这里给自己设定一个测试背景,这个背景大家都非常熟悉。就是如下所示的QQ登陆界面

    假设现在你的工作就是测试QQ的登陆功能。你该如何做?

    1、充分阅读需求说明书,开发的设计文档,理解项目背景,熟练掌握开发的设计方案。

    这里注意一个问题,现在是提倡敏捷测试的时代,有时候需求来了只是邮件、口头描述形式。此时我们要快速介入测试,肯定需要通过各个途径来了解需求,最直观最快速的方法肯定是有效的沟通。沟通里面还有一个重要的点:那就是学会问题。如果是我我会快速弄清楚以下问题,然后着手测试:

    (1)产品和特性是由哪个开发具体负责的。(把功能与开发人员进行映射,方便后续问问题)。

    (2)开发团队的规模如何,开发人员的经验分布怎样?肯定有人会问了解这个有什么用呢?,当然有用,软件是由人开发的,开发者的经验决定他的技术水平,举个简单的例子:1个具有开发工作10年经验的开发和一个刚刚参加工作半年的开发,同时开发一个功能。你拿到后从心里面更倾向于谁?

    (3)同开发沟通清楚哪部分内容实在原有某某功能上改进的,哪些功能是重新开发的,这又说明两个问题:如果是在某个功能的基础上进行开发的,那么风险评估就会小些,技术比较成熟。

    如果是新开发的内容,那么就可能采取了新技术,那么此时的风险肯定会超出预期,需要我们仔细测试。

    (4)开发人员是否已经进行了自测,自测的覆盖率如何,自测过程中遇到什么问题?了解这个可以叫我们开拓视野,遇到类似的功能时也关注下是否还存在未修改的点。

    (5)还有没有未解决的开发问题,以及未提测的开发流程。好些开发提测软件功能的时候,把测试点说的非常粗,其中有部分有可能就没有开发,但是不明确指出,这时就需要我们通过沟通快速获取。

    (6)最后才是应该耐心向开发请教软件具体功能实现的过程。实现不合理的及时和需求碰头。

    2、在充分理解业务场景的基础上,编写测试用例。

    3、沟通项目预期上线的进度,排好测试计划。注意一定要预留出至少两天的富裕时间,以防止突然修改需求造成的措手不及。

    4、执行测试用例。我把可能大家普遍想到的功能点罗列一下,包含以下部分:

    (1)录入框(inputtext)支持的长度

    (2)录入框支持的录入格式有哪些(主要是字母区分大小写、数字、特殊符号)

    (3)QQ号码录入正确,密码录入不正确,软件功能如何响应。

    (4)QQ号码不正确,密码录入正确,软件功能如何响应。

    (5)QQ号码和密码录入的一致,软件功能如何响应。

    (6)勾选自动登录

    (7)勾选记住密码、再次登录。

           等等这些基本的流程测试完毕,请问测试工作就这麽结束了吗?如果阅读的你认为是,那我只能说很遗憾,其实我们到此为止,不留情面的说相当于什么都没做。请看我们还需要测试什么?

    (1)验证QQ号码和密码录入框是否有SQL注入风险(扩展到安全测试了,这里要说的东西太多了,不多说)。

    (2)不同的QQ号码是否可以使用同一个密码(探索性测试);

    (3)QQ号码不录入,只录入密码,点击登录按钮。

    (4)QQ号码录入,不录入密码,点击登录按钮。

    (5)QQ号码、密码都不录入,点击登录按钮。

    (6)QQ号码与密码不匹配录入,点击登录按钮。

    (7)验证新注册成功的用户和历史已经注册过的用户登陆过程进行比较。保证历史数据无误。

         到这里是不是又有人觉得测试已经完备了呢?答案是否定的?为什么这么说?因为你执行完上述两部分的测试工作,只能说简单的覆盖了前端(即客户端的工作),显然地,数据库、服务端也还有着对应的测试工作。

    02

    数据库

    (1)正确且匹配的QQ号、密码是不是已经正确存储。

    (2)不正确的QQ号或者密码,再或者QQ号与密码不匹配时,是不是不存储。

    (3)存储的QQ号和密码是不是已经做了加密处理。(出于客户安全性的考虑)

    (4)数据库表的命名是否规范,字段命名是否规范,类型是否与前端一致,长度是不是与前端一致。

    (5)前端登陆成功与后端数据库存储是不是处在同一个事务中。这个可以这样理解:如果我们在登陆QQ的过程中,突然网络出现异常,那么此时我们希望数据库如何处理呢?

          假设不在同一个事务中,那么如果存储此次登陆过程,则在网络恢复后,用户在登陆将会报重复登陆错误。如果处在同一个事务中,那么登陆失败后,数据库不会更新记录任何本次登陆信息,已经存储的表进行回滚,直到登陆的初始状态。很显然地,需要我们根据实际需求具体分析,得出采取哪种方式。

    03

    服务器

    进行性能测试针对多个不同的用户同时登陆时,确认会不会对服务器产生压力,并且通过响应时间、TPS、内存、网络等性能指标验证系统是不是满足要求。看,我们从一开始的功能测试一路测试,一路探索。慢慢的深入到了性能测试。测试的流程如下:

     其中功能测试我们分为:基本流程、异常流程、探索流程进行

           安全测试我们着重:关注最可能发生的SQL注入风险(取最高级别的测试用例)

           性能测试我们关注:网络、并发、内存、CPU、TPS、吞吐量等指标。

    说了这麽多,其实我想说明的就是测试的工作绝对不是只有点点点,只要你愿意挖掘,肯定还有很多值得测试、推敲的地方。另外测试无止境,每次的点点点都应该有目的、有测试依据,有意义。测试是一个逐步深入的过程,也是测试人员成长的过程,请大家相信,测试工作博大精深,做最好的测试,一定非常有前途!

    作  者:让BUG飞一会

    出  处:微信公众号:自动化软件测试平台

    版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

  • 相关阅读:
    call()与apply()的作用与区别
    Tomcat8/9的catalina.out中文乱码问题解决
    怎样查看Jenkins的版本
    每日日报2020.8.18
    528. Random Pick with Weight
    875. Koko Eating Bananas
    721. Accounts Merge
    515. Find Largest Value in Each Tree Row
    286. Walls and Gates (Solution 1)
    408. Valid Word Abbreviation
  • 原文地址:https://www.cnblogs.com/testfan2019/p/12049896.html
Copyright © 2011-2022 走看看