谈谈测试的那些事
最近手头的事没那么繁忙,分几个小点,聊一聊测试的那些事
1、测试管理
带团队要勇于承担责任,不独享功劳,知人善用,合理安排工作,营造团队氛围。如果团队人数不足,自己需要亲力亲为,同样要承担各种测试任务,要是团队人数越来越多且有多个项目并行,就会越来越繁忙,需要关注的东西就会越来越多,每天工作内外沟通,看需求,计划工作,跟进进度和解决一些问题,汇报工作等等,此时正是让团队成员成长提升自己的好机会,把成员培养可以独当一面,把自己的部份工作拆分出来,每个项目安排一个测试组长负责,每天向你汇报进度。每个项目要持续跟进,把握好方向和风险点别让走偏,让一切是可控的。当然并非一切都这么顺,有时开发延期或领导为了尽快上线压缩时间,导致测试计划不得已要修改,由于时间减少为了赶上进度那就需要进入加班节奏。
2、需求分析
了解需求基本都是看需求说明书、原型,要多结合真实业务去思考真实的场景,会让你受益匪浅,不明白就要多主动去找产品沟通,看完后要知道具体做什么功能,分析需求把功能分解下来,评估工作量有多少,判断大概多久能做完,然后排一个测试计划,包括测试范围,计划测试人员和完成时间,测试通过标准(一般通过评审后CASE通过率来判断,是否有遗留问题)。
3、功能测试
功能测试大多数人都觉得比较简单,我认为要看具体业务复杂度来评断,如果业务逻辑复杂需要深入到原理逻辑层,且关注的细节比较深入的测试,那估计没一定经验的人还测不到位。曾经碰到一个比较复杂的业务,操作这个业务需要同时变更16张数据表的变化,任何一个数据表的数据有问题就可能导致整个业务出问题,因此要保证这16张表的数据都正常就需要花一定时间深入了解测试。
功能测试需要对设计、数据流、业务流、资金流等内部业务逻辑要足够清楚,否则测试会容易遗留问题且测试不到位,导致上线后产生影响。执行过程要持续跟进,推动项目进度,若有发现问题要及时提出解决,上线后要关注各个功能和数据是否正常,保证线上能正常运行才算告一段落。
4、自动化测试
对于自动化测试,若想真正有价值就需要落地,要不一切都是纸上谈兵,多厉害的测试框架也无济于事。自动化可以看我另一篇文章,用python+django开发的自动化框架《接口自动化测试》。https://www.cnblogs.com/leo6099/p/11558540.html
5、安全测试
林子大了就怕不安全,没什么数据量的产品从不担心安全问题,因为价值不高也没有多大影响,产品一但数据量庞大,有大量的用户使用,则安全问题就会被重视,便提到日程上来,开始招聘专业的安全渗透工程师或者请第三方安全公司来测试。
我曾参与的产品中,基本关注的是WEB安全相关,比如SQL注入,XSS,上传漏洞,业务安全漏洞,暴力破解,越权访问等,一般关注度比较低的功能反而会容易出现安全问题,可能是因为相对较偏的功能是一些经验不足的开发人员所开发导致。每一种漏洞都有一定的学问,我研究使用过相关的测试工具,用得比较多的几个工具 burpsuite,sqlmap,appscan等。
6、性能测试
性能测试,要了解整个业务场景和后台架构,测试目标是否明确。
具体问题具体分析,做测试前要分析清楚真实业务场景,系统架构,数据量,数据存在哪几张表,要了解这些可能需要找产品、开发、运维、架构师沟通。测试性能我一般拿TPS来评估性能问题,通过压测得到的TPS数据和监控得来的数据结合起来判断系统的处理能力是否是我们可以接受的。
比如压测单台服务器, TPS/s 为300,平均响应时间5秒以内,无出错事务,CUP和内存均占用不高于50%,这样的结果是可以接受的范围,且TPS还未到达最大值。若平均响应时间大于10秒或更长20秒,还有事务超时,则要找找问题了。
优化一般从以下几方面入手
1、数据库优化:设计是否合理,可以考虑分库,主从分离等,查询添加索引等方法。
2、处理逻辑优化:要看具体逻辑,比如一次是否要展示这么多数据。
3、服务优化:做服务集群和负载均衡,增加监控,设定阈值,超过阈值则临时增加新的服务器,分流。
4、存储优化:没有缓存,直接从DB单表读取,容易造成超时和表锁;
将数据放入缓存服务器(比如Redis),设定查询次数或者有效时间,多级缓存,提高缓存命中,防止缓存穿透和同时失效带来的瞬间DB压力。
5、业务优化
浙公网安备 33010602011771号