《测试之道》
测试活动终相伴,不可认为单阶段。
测试工作不简单,预防缺陷早发现。
自动测试很方便,随时可以跑一遍。
人工测试最高端,测试左移是关键。
测试类型数不完,功能与否都要验,
单元测试最底端,集成测试串一串,
系统测试端到端,用户验收才算完,
黑白灰盒好手段,上下下上混合餐,
爆炸集成大满贯,阿尔贝塔解困难,
性能负载都得看,压力持久大考验,
尖峰容量又一关,随机探索任你翻,
可用回归与冒烟,还有测法十八般。
测试人员技能全,质量保证分析官。
开发团队能全栈,软件当作工程建。
开发测试好伙伴,合作把好质量关。
质量责任团队担,齐心协力共完善。
测试并不是一个阶段,也不是仅仅在开发人员提交代码之后的测试,而应该是贯穿于软件开发的整个生命周期(SDLC)。
软件测试的目的是为了防止缺陷或者是减少问题的发生,尽可能早地发现问题,而不是寻找缺陷。以发现缺陷数量的多少来衡量测试人员的绩效,这个做法是不合理的。
自动化测试是非常必要的。自动化测试可以节约重复性测试的精力和时间,降低人力成本,提高测试效率,降低出错率;又可以在每次代码提交之后自动运行,确保新的代码不会破坏现有的功能。
当然人工测试也是必不可少的。人工测试可以尽早地发现问题,弥补自动化测试的不足,而且在易用性测试、用户体验测试、探索性测试等方面有很大的优势。
在整个软件开发生命周期,越早的发现并解决问题,所用的成本越低,问题带来的影响也越小。测试左移(Shift LeftTesting)意思是尽早测试,尽早地发现和解决问题,测试人员尽早地、尽可能多地参与到软件开发过程中。比如测试人员与开发人员一起分析需求,保证双方对需求的理解是一致的;测试人员设计测试用例并和开发人员一起讨论,开发人员在编码之前就理解了测试用例,那么编写的代码也考虑了这些用例,避免代码不满足需求,减少缺陷的机率;再比如,编码完成之后,测试人员和开发人员一起在开发人员的机器上一起测试。
测试有许多分类,不同的分类包含测试的方法也不同。目前大概有100种软件测试方法(有一些是类似的,或者名字不同而含义是一样的)。
“测试”或者“测试人员”这个称呼不太符合这个角色的真正意义,更好的称呼是质量保证分析师(Quality AssuranceAnalyst)。测试活动只是QAA的工作的一部分,而不是全部。
“开发”或者“开发人员”或者“程序员”这个称呼也不太符合这个角色的真正意义,许多公司将这个角色称为软件工程师(Software Engineer)。软件是一个工程,而不仅仅是编写代码。把软件当作一个工程来做,就像建设一栋大楼或者修建一座桥梁一样。
软件工程师和质量保证分析师是合作伙伴关系,目的一致,都是为了提高代码和产品质量。
整个团队对软件的质量负责,而不仅仅是QAA。团队中的不同角色都应该对质量负责。业务分析师(BA)帮助软件开发团队理解需求和业务;QAA与SE一起讨论需求和测试用例,SE编码的时候考虑这些用例;SE采用测试驱动开发(TDD)和结对编程(PP)或者小组编程(Mob);SE在编码完成之后,请其他SE做代码审核,然后完成本地测试;SE将代码逻辑解释给QAA,帮助QAA更好的理解开发的思路,以便评估代码改动带来的风险;BA也会在内部生产环境进行一些测试。
不同的角色分工合作,一起努力提高软件质量,完善软件系统,让客户满意。
本诗文为个人的理解,有不妥之处,请多多包涵,谢谢!
源自公众号 飞兔成长分享