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飞一会

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

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

  • 相关阅读:
    开源框架/软件汇总
    如何查看Maven项目的jar包依赖
    我的前端技术栈(2018版)
    解决在Mac上用pyenv安装python3失败的问题
    学习jenv
    学习sbtenv
    解决MAC下修改系统文件没权限的问题
    学习Spring Boot
    学习音标
    C# 对List中的Object进行排序
  • 原文地址:https://www.cnblogs.com/testfan2019/p/12049896.html
Copyright © 2011-2022 走看看