另外,IT人员可能需要限制某些或所有外包服务提供商应用软件开发人员进入企业系统,仅仅允许某些特定的人员进入系统查看敏感数据,而且在查看数据的时候要采用一些特定的客户端工具。
及早制订测试计划
一旦应用软件接受功能测试,应用软件开发人员应该将编码交给系统构建人员。系统构建人员将负责建立数据库和进行版本控制、配置管理、测试数据和输入以及测试系统。
质量保证人员应该负责监测所有的构建和测试活动,确保所有工作的有效性、保密性、可量测性、安全性。开发和测试会耗费大量的时间,因此,在项目早期制订一个测试计划是非常重要的。
这个计划应该围绕所有的内容,而且用于硬件、软件、人力和执行时间方面的预算也应该充足。许多项目往往是由于测试上的预算不足才导致整个项目超出预算和时间期限的。
最后,为了尽量降低系统出现BUG所带来的风险,通常会专门安排开发和测试小组中的某些人员解决BUG问题。
质量保证部门要把好关
质量保证人员应该负责所有的变更管理和版本释放管理。因为质量保证人员负责这些内容,所以有些公司的系统构建和测试人员都属于质量保证部门。
然而,这不是必须的,而且从职业发展角度来看也不是很好。比如开发人员、测试人员应主要提高应用软件开发和系统方面的技能,一段时间之后,这些岗位上的人员可能就会转换角色。
另一方面,质量保证人员主要应具备流程、版本释放和变更方面管理的能力。
有些公司错误地让质量保证部门直接向开发部门汇报,原因是他们认为质量保证部门是应用软件开发生命周期上的一个环节。这样的组织结构会造成利益上的冲突。
质量保证部门应该独立于开发和测试部门。这样做有助于更好地满足业务需求,有效地授权使用编码,确保保密性和安全性,对质量保证的额外要求也能够很好地重视。
质量保证部门应当是公司的看门人,避免企业过早地把编码外泄。
IT人员应该在企业内部履行所有的质量控制职能,为了避免利益冲突,应该让质量保证部门向企业运作部门汇报,而不是向应用软件开发部门汇报。
除此之外,IT人员还应该确保在整个项目执行期间沟通渠道的开放和畅通,质量控制措施高于标准的服务水平协议,同时预算和费用标准在合同中认真界定。
信息安全管理BS7799
软件开发和服务过程中的安全
目标:维护应用系统软件和信息的安全性。
应该严格控制项目和软件开发环境。负责应用程序开发的管理人员还应该负责项目和开发环境的安全。他们应该确保对所有提议的系统变更进行审查,检查这些变更是否破坏系统和操作环境的安全。
变更控制程序
为最大限度地减少信息系统崩溃,应对变更实行严格控制。应该强化正式的变更控制过程。应确保不破坏安装和控制的程序,只赋予程序员访问他们工作需要的那一部分系统的权限,在进行任何变更前必须获得正式的许可和批准。
许多组织都维护一个用户测试新软件的环境,这个环境将开发环境和生产环境分隔开。这就提供了一个方法,既控制新软件,又可以保护用于测试目的的操作信息。
对软件包变更的限制
不鼓励对软件包进行变更。使用服务提供商提供的软件包应尽可能不做变更。在确实需要修改软件包的情况下,应考虑以下几点:
a)内置的控制措施和完整性进程被破坏的风险;
b)是否获得服务提供商的同意;
c)当标准程序更新时从服务提供商获得所需要变更的可能性;
d)在发生变化时组织是否负责以后软件维护的影响。
如果变更是不可避免的,那么应保留原始软件,只对确定的副本进行变更。所有的变更应得到完整的测试并进行记录,这样将来需要对软件进行升级时可以重新应用这些变更。
隐蔽通道和特洛伊代码
隐蔽通道可以通过某些间接和模糊的方法暴露信息。激活通道的方法有两种:更改系统中安全和不安全用户都可访问的参数或者将信息嵌入数据流。
特洛伊代码以非法的隐蔽的方式影响系统,这些代码是接收者或程序用户不需要的。
在出现隐蔽通道或特洛伊代码的地方,应考虑以下方法:
a)只从信誉较好的地方购买程序;
b)购买使用源代码的程序,这样可以检测代码;
c)使用经过评估测试的产品;
d)在操作使用前检查所有源代码;
e)安装后控制对源代码的访问和修改;
f)只允许证明值得信赖的人员使用关键系统。
外包的软件开发
当软件开发外包时,应考虑以下几点:
a)许可管理、代码所有权和知识产权
b)质量证明和完成工作的准确性
c)在出现第三方事故时的第三者义务条款;
d)对代码质量的合同要求;
e)在安装前进行测试检查是否有特洛伊代码。