什么是软件外包(软件外包专业)

软件外包是企业为了专注于核心竞争业务,降低软件项目成本,将软件项目中的全部或部分工作承包给提供外包服务的企业的软件需求活动。现在业务流程外包(BPO)已经成为外包服务新的发展趋势,并将成为未来几年外包的主要内容。BPO包括人力资源、采购、会计、客户中心、物流、研发、营销、工厂运营和培训,还可以进一步细分。不仅IT行业需要BPO,BPO的每一项业务都离不开IT业务的支持,从而产生IT外包机会。

一个软件开发项目通常要经历几个主要阶段,比如需求分析、设计、编程和测试。其中,设计包括总体设计、系统设计(将整体架构变成块系统)和详细设计。经过详细设计,软件成为一个块模块,然后进入编程。在编程阶段,软件蓝领最后剩下的就是模块编码工作,通常由在印度培训一两年的高职毕业生担任。

软件的最终测试是一个复杂的过程——单元测试(小模块测试)、系统测试(逐块连接集成)和整体功能测试。在此期间,测试编程工程师编写测试工具、制定测试规则的难度不亚于系统框架的制定。最后,测试工程师完成测试任务。

外包软件测试有望成为小作坊软件业的业务增长点。

一个企业要想把国际软件外包业务做强做大,就必须与国际软件市场接轨——包括英语理解和沟通能力、技术、管理、做事方式和知识产权。还有质量保证、信誉保证、风险控制能力、知识产权保护等方面。显然,上述条件是国内大多数小作坊式软件企业所无法企及的。但这并不一定意味着小作坊软件企业就没有机会承接软件外包服务。因为在软件外包项目中,软件测试项目最适合目前国内小作坊软件企业的行业特点。

软件测试是保证软件质量的最重要的手段。

使用低质量的软件在操作过程中可能会出现这样的问题,可能会造成工作的延误或者给用户造成生命财产的损失。软件测试是保护软件用户免受损失的最重要的手段。

现代软件开发工程明确将整个软件开发过程分为几个阶段(见下图),分阶段详细解决复杂问题。这样,在整个软件开发过程中,可以对每个阶段提出若干个明确的监控点,作为每个阶段目标实现情况的检查标准,从而提高开发过程的可视性,保证开发过程的正确性。

经验证明,软件的质量不仅体现在程序的正确性上,还与编码前的系统需求分析和软件设计密切相关。软件使用中的很多错误,不一定是程序员在编码阶段造成的,而是埋在程序设计甚至需求分析中。这时,软件工程的纠错必须追溯到软件开发的初始阶段。如果是这样,会增加软件开发的成本。

为了保证软件的质量,项目管理应该关注整个软件生命周期,尤其是开发阶段的系统分析。因此,软件测试的概念和实施范围必须包括开发的所有阶段的审查、评估和测试。