软件测试工程师的成长记第二章
作者:网络转载 发布时间:[ 2013/5/2 13:54:27 ] 推荐标签:
作为测试团队的一员,小艾关心的是测试团队中都有哪些角色分工。可以认为,测试团队的成员都是敏捷开发项目组的测试人员,都具备测试人员的一般技能。
由于软件测试本身可以作为一个项目来看待,因此测试团队中需要相应的项目组角色。测试负责人(Test Lead)是测试的主要统筹者,需要担当测试项目经理的角色,其任务包括定义测试计划、统筹人员调配、监督测试项目进度等。测试负责人定期向项目团队发布有关测试项目的进度和更新,对测试项目进度负责。作为测试的统筹者,为了顺利完成测试任务,测试负责人需要利用相关的规则结合经验安排测试的执行顺序,降低测试进度受阻或测试检测出严重问题但难以解决的风险。测试负责人的技能要求是综合的,既需要掌握测试的专业技能,又要具备良好的组织能力和协调能力。
测试架构师的职责是定义测试策略,从宏观上定义测试的方向和方法。测试架构师对测试目标的技术特性和业务需求有准确的把握,能为测试团队提供方法论方面的全面建议。在测试计划完成后,测试架构师需要审核计划是否全面覆盖应该包含的验证点,根据经验给出相关的执行建议。作为测试团队的“智囊”,测试架构师应该具有较高的技能水平,包括深入和全面的测试经验,对软件开发和测试的模型有全面的认识,对商业模式及客户的业务需求也有比较深刻的理解。
相对于具有宏观视角的测试架构师,测试工程师以“微观”的视觉专注于具体的测试任务。根据特定的测试场景,测试工程师重点关注其测试的目标业务部分,根据特定业务场景制订该部分的测试计划。由于不同的测试类型之间存在依赖关系,测试工程师得进行团队的直接沟通,使测试计划可以满足这种依赖。测试计划制订完成以后,测试工程师根据计划执行测试;同时,在测试过程中发现缺陷时,测试工程师还有义务和开发人员一起分析问题的原因并提出解决方案。测试工程师的技能集主要包括设计和执行测试用例的专业技能,良好的业务理解能力和问题分析能力。
测试经理(Testing Manager)从资源调配的角度给不同的测试项目分配资源。通常来说,测试和开发的执行步调是不一致的,因此同一个测试人员有可能同时承担多个子项目的测试任务。在一个敏捷软件开发团队中,对测试人员的多任务处理能力有较高的要求。
在软件开发团队和测试团队中,有些角色对承担者的资历有明确要求,如架构师角色要求对业务和技术有一定的经验。然而,角色的不同仅仅体现分工的不一样,并没有级别的区分。因此,角色并没有贵贱之分。每个角色的技能集都非常明确,相同角色的承担者在技能的层次上也可能存在很大的差异。随着技术和经验的积累,每种角色都可以成长出资历深厚的专家。专家和菜鸟,在某种程度上,仅仅是一种“闻道有先后”的差异。
了解到团队中原来有这么多不同的角色,而不是仅有“程序员”,小艾觉得非常兴奋。在一个完备的团队中,体验不同角色的奥妙,该是一件多么有趣的事情!
1.2.2 好软件由测试决定
进入电子商务平台开发一段时间以来,小艾不时听身边的前辈提及IBM的软件质量不错。似乎每个人都认为自己有清晰的标准衡量软件的好坏,但对于什么样的软件才是好软件,小艾心中并没有明确的界定标准。用"好"来形容软件,显然是一个相当笼统的描述。
软件质量 包括两个相关但截然不同的概念--功能性质量(Functional Quality)和结构性质量(Structural Quality)。功能性质量反映的是软件是否按照设计实现并满足相应功能性需求(Functional Requirements);结构性质量反映的是软件是否满足相关的非功能性需求(Non-Functional Requirements,NFR)。
要评价软件的功能性质量和结构性质量,有一系列衡量指标。有了衡量指标以后,另一个重要的问题是如何获得这些指标的量化数值。软件测试是验证这些指标的有效方法。通过测试可以在一定程度上模拟真实的使用场景,并得到质量指标的具体水平。如果测试发现某些指标无法达到要求,则需要对系统进行改进,以求通过测试。测试的通过指标是根据质量的需求来定义的,系统通过了测试,可以从量化的角度说明它符合需求。
正确性(Correctness)反映了实现的功能达到设计规范并满足用户需求的程度。这是功能性质量的基本指标。正确性可以通过功能测试来验证。
可靠性(Reliability)衡量在规定的时间和条件下,系统维持其性能水准的程度。这是结构性需求的重要指标。对于企业级的应用系统,对可靠性通常都有很高的要求。可靠性指标可以通过系统可靠性测试获取。
易用性(Usability)反映用户掌握软件操作及理解软件事务所需付出的时间及努力程度。具体的指标诸如界面是否友好,是否有在线帮助,是否提供容易理解的异常信息等。易用性指标通常由功能测试获得。
可移植性(Portability)衡量系统从一个平台转移到另一个平台的容易程度,包括把程序从一种软/硬件环境转移到另一种软/硬件环境的容易程度等。大型软件的安装和部署可能也是一个复杂的过程,高可移植性的系统应该是容易安装和更新的。此外,企业级系统对多国语言的支持程度也是可移植性的一个衡量指标。可移植性在多平台的功能、系统测试、安装测试、多国语言测试中得到验证。
可迁移性(Migratability)衡量系统版本升级的容易程度。大型系统的迁移通常是一件非常复杂的事情,可迁移性需要通过迁移测试来验证。
效率(Efficiency)衡量系统执行某功能所需的计算机资源和时间有效程度,包括功能和性能是否经过优化,是否检验内存泄漏或溢出问题等。效率是系统测试的一个重要检测点。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11