Jerry在晚上10点打电话过来,把即将进入梦乡的我召唤回现实。除了唠唠家常外,我们自然的又谈到敏捷开发的话题上来。这次谈话终于在单元测试的问题上让他了解并认同了我的看法。对于大多数的中国的软件开发团队来说,难以实现敏捷的最重要问题是人的素质问题。一个敏捷团队要求每个成员都有较好的OOP和OOD的能力。试想你正在努力的重构有坏味道代码的同时,你的team中却有另一个新手在不断的写出新的充满坏味道的代码会是什么样的后果?这是一个难以完结的循环,不是么?单元测试能带给敏捷什么帮助是我和Jerry一直最有分歧的地方。我承认,单元测试只是软件众多测试方式中的一种。静态的看,单元测试包括其他的测试方法需要付出的成本和雇用低廉的人力进行测试的成本相比可能还高一些。但单元测试能带给我们的帮助不仅仅是在重构过程中,保证对复用代码的修改不会波及其他的调用那么简单。通过编写测试,我们可以发现代码中结构的问题并优化之。当然这建立在团队成员对OO的认识基础上,OO能力不足的程序员遇到难以测试的代码时,往往不会想着或者没有能力去将它重构为方便测试的代码。这就给我们带来一个新的管理任务,也是敏捷过程强调的一个任务,那就是培训。我们需要不断的训练我们的程序员们,使得他们能够构造出敏捷的代码。而这正是一个团队能否实现敏捷的技术关键。
在谈话的最后,我们形成的共识是,实现敏捷是一个渐进的过程。构造一个在技术上有敏捷能力的团队有两种方法,一是用足够的钱去招聘有足够能力的程序员(大部分企业没有那么多钱)。二是将现有不符合敏捷技术要求的程序员培养为合格的敏捷工作者。而在培养的路上,单元测试正是一个很好的驱动方式和实践平台。
最后,希望看到这篇文章的人们,在衡量单元测试成本的时候,将他可能需要投入的培训成本考虑进去并切实的实施这些培训,也将单元测试能对团队技术水平的提高这部分产出考虑进去。
分享到:
相关推荐
因此,测试团队会运用风险分析和测试优先级来确定测试的关注点,以替代全面测试,并努力实现高产出投入比。 在软件测试的众多类型中,单元测试和功能测试是最基础也是最普遍的。单元测试是与开发最为接近的一种测试...
TCL是一种简明、高效、可移植性好的脚本编程语言,广泛应用于单元测试、集成测试和自动化、桌面 GUI 应用程序、数据库、嵌入式开发、网络等领域。TCL自动化脚本示例包括Linux版本和Windows版本。 自动化测试技术...
自动化测试的价值在于提高效率和准确性,但其投入产出比(ROI)是需要考虑的关键因素。根据不同的观点,自动化测试的效益通常在多次重复使用后显现。例如,自动化测试在单元测试和集成测试中的应用尤为有效,特别是...
白盒测试则深入代码层面,检查程序内部结构,常用于单元测试和集成测试,常用方法包括判断覆盖、条件覆盖和路径覆盖。 软件生存周期涵盖了从计划到运行和维护的全过程,测试应在软件具备可测性时开始,直到项目结束...
这一阶段包括单元测试、集成测试、系统测试和验收测试等多个层次。 1. **单元测试**:是由程序员或测试人员对软件的最小可测试单元,如函数、模块或类进行检查,确保它们能按照预期运行。 2. **集成测试**:在所有...
软件测试心理学涉及到测试者如何理解和解决软件问题,而软件测试的经济学则关注如何优化测试投入与产出的比例。 2. **测试类型及其在软件开发中的角色**:从规划到验收和维护,每个阶段都需要不同的测试策略。考生...
6. **费用/效益分析**:在信息系统项目中,费用/效益分析通常用于经济效益评价,比较项目的投入和预期产出,以判断项目的经济可行性。 7. **信息资源安全性**:信息安全关注可用性、XX性、认证性和一致性。可用性...
2. **白盒测试**:深入了解软件的内部结构和逻辑,通常用于单元测试和集成测试。 3. **灰盒测试**:介于黑盒和白盒测试之间,测试者拥有部分内部信息,以便更好地定位问题。 通过以上知识点的学习,可以为准备软件...
长期项目适合积累和复用测试用例,进行单元测试和自动化测试;而变更频繁的小规模项目可能更适合手动功能测试,因为自动化测试的投入产出比可能较低。无论哪种类型,引入测试管理平台以支持测试需求、设计、缺陷管理...
2. **集成测试**:在所有模块通过单元测试后进行,主要关注模块间的接口问题,确保各模块组合起来能够协同工作。 3. **系统测试**:测试整个系统的功能和非功能性需求,确保系统作为一个整体能够满足预定的目标和...
然而,选择合适的自动化工具,设计可维护的测试脚本,以及平衡自动化与手动测试的投入产出比,都是测试自动化过程中的挑战。 8. 缺陷管理:发现缺陷后,需要通过缺陷跟踪系统记录、分类、优先级排序并跟踪直至解决...