我们生活在一个软件定义的世界中。软件几乎接触到方方面面。任何努力保持竞争优势或市场先机的企业,都必须在某种程度上重新整合其软件。这会导致快速的开发方法,如敏捷开发和开发运维,促进持续的产品改进。但是,这些新的开发方法能够使测试最小化,反过来又可能破坏性能和安全性。
为保持竞争优势,企业必须提供高质量的应用体验。此外,安全是必须的而不是“有安全性也不错”。因而,持续的测试方法已经日益重要,其动态性就像新的开发过程一样。幸运的是,企业越来越明白这种不断增长的需要,并且重新思考整个过程。
推动测试升级
软件开发的新步伐给测试人员带来一个非常确切的问题,那就是测试者在没有规划好明确路线图的情况下必须快速响应。如果产品的开发团队被招集起来按照最新的时间表进行产品更新,直至发布日期再次更改,这往往会导致执行不力,因为解决方案存在未知的漏洞和缺陷。
但是,即使消费者的期望促进更快的开发步伐,也会提出质量问题。终端用户期望快速、稳定和安全。及早测试和经常测试已经慢慢占据了开发者的思想,而易于使用和功能的重要性也继续增长。还有一个问题,即新应用和设备如何使用。软件无处不在,糟糕的开发方法可能导致大问题,其范围涉及从自动制造问题到个人信息的失窃等诸多方面。新一波技术所产生的复杂性要求更为严格的评估周期。
培育改变的文化
随着开发越来越快,企业和客户需要在思想观念方面有所转变。促进更快开发的文化还需要倡导灵活的测试方法。
这要从测试方法和培训开始。开发者、测试人员和版本管理员需要认可和实施一种连续性的测试观念。更具体地说,这些人员需要在此过程中得到培训,在一个快速开发周期中进行测试时,还要有可用工具。跨队的交流也很重要,尤其是在质保经理和开发者之间的交流更为重要。在完成此步骤后,代码将更加稳定,而漏洞的解决速度也会更快。适当的工具可以模拟真实的情况,提供共享的测试数据环境,并且总保持可用性,还能够与主要的代码库框架相集成。
在成功实施后,持续的测试和培训可以防止漏洞和性能问题的产生,同时又可以使开发人员在将来更好的找到问题。确认可疑活动和采取什么行动也会变得更为容易。企业应当避免利用有限规模的测试环境,如内部开发攻击,或者是众包探测,否则就会带来一种错误的安全感。
最后,在并非为满足紧迫的时间表而进行的测试中,关键的问题是不“走捷径”。
迭代开发确实意味着在问题出现时并不能解决。我们还希望进一步扩展,以求在下一个软件版本中包括另一种特性。这就需要在增加新特性和测试已有特性之间寻求平衡。适当的方法有助于减少缺陷、响应时间,以及因业绩不佳对品牌造成的负面影响。开发者、测试者、版本管理员如果及早测试,并且在将其贯穿整个过程,就有能力增加稳定性和安全性。
本文作者:赵长林
来源:51CTO