初窥项目构建

简介: 初窥项目构建

原文出自:

http://www.cnblogs.com/Ribbon/archive/2015/05/22/4517125.html

1.项目构建基本流程

  • 开发人员在他们的个人计算机上编写源代码文件
  • 他们将编写好的文件存放在一个统一集中的地方,构建组将所有的源代码编译成可以在计算机上运行的二进制文件,且用安装工具把各种需要安装到服务器上的文件包装成可以安装到不同平台的软件包。
  • 组合成一个产品

构建的过程就好比一个组装生产线,源代码文件就像是各种大小配件,被存储在一个大仓库里,源代码中,有些在构建过程中还需要再加工。

2.构建过程

4f1e7e848381c83df80405cb566202fd.png

3. 构建生产线时,软件开发部门,特别是构建测试团队需要考虑什么?

  a. 储存源代码的“仓库”

  b. 可以反复生产的“流水线”

  c. 快速简单的测试以保证产品可以更全面深入地测试和利用系统备份技术来分享测试环境

4. 源代码是构建过程的基础,如何将源代码放入安全可靠的地方?

  一般来讲,源代码会被存放在数据库里,运用版本控制系统管理源代码。

5. 版本控制系统概述

  它用来帮助我们记录文件更改的过程及细节,一般基于客户端/服务端结构,可以同时为多个开发人员提供服务。

2ab13d8963ebfa96ae16d0ecaebe8ef1.png

6. 版本控制系统的功能有哪些?

  创建新文件、提取文件、存入新版本文件、协调或控制多人对同一个文件的同时修改、记录文件的修改历史且供查询。

7. 构建产品的前提是什么?

  建立构建的环境。

8. 在建立构建的环境时需要考虑哪些因素?

  a. 选择构建使用的服务器

  b. 选择构建环境平台

  c. 构建所需要的软件或工具

9. 软件开发流程:

  a. 开发人员编写软件代码,将源代码交给构建组进行构建  b. 构建组将源代码文件做成可以安装的软件产品,再交给测试组进行测试

 c. 测试组将测试时发现的问题反馈给开发组

  d. 开发组修改代码,再将修改后的代码交给构建组来进行新版本的构建

0328e8eee317f5ce3b5e9898b324a30d.png

10. 在设计构建的过程时,一般还要考虑到整体构建及部分构建的需要,设计部分构建逻辑的关键是?

  每个源代码文件与构建步骤时间的关系,一般版本控制系统都支持查询阶段间源代码文件的变化,这保证了部分构建的可行性。

11. 自动化部分构建过程:

d12ab281efa119abbbb8007adb0519a3.png

12. 部分构建组合的好处有哪些?


 a. 如果有关源代码自上一次构建没有改变,构建可以被跳过,使整体构建时间缩短

 b. 部分构建之间如果没有前后顺序的关系,可以让它们同时运行来缩短构建的时间

 c. 部分构建所产生的二进制代码可以直接应用到测试环境来快速检验新的产品功能,测试若通过,部分构建代码会进入下一个版本的测试产品

13. 如何避免让构建过程称为开发的瓶颈?

  缩短构建时间和减少构建过程中的问题,如实施自动化构建。

14. 自动化构建的好处?

  a. 保证软件开发过程中能定制比较灵活的构建时间表

  b. 确保每一次构建过程的一致性,没有因为认为的错误而引入产品的缺陷

15. 自动化构建程序的一般性原则:

  a. 在源代码文件改变时,不需要构建程序的改变,即使有不可避免的改变,也应使改变过程尽量容易、简单

b. 避免把输出或输入的相关参数直接写死在构建代码中,这样,在构建的环境改变时不需要改变构建程序

 c. 经常需要改变的一些变量采用属性文件统一管理,需要改变时只需修改属性文件中的参数值(如*.properties文件,或者*.xml文件)

 d. 使用Template文件和XSLT,在构建运行时依据构建需要生成构建程序文件,减少在更改构建程序文件方面的投入

16. 软件构建的频率如何确定?

  根据软件测试的需要来确定。在敏捷开发模型的环境下,提供频繁的测试产品非常关键。最大可能地保证构建的频率是软件敏捷开发模型中的一个很必要的保证。

17. 什么是构建测试?--Build Verification Test

     构建测试也称为构建可接受性测试(Build Acceptance Test),一般是在每一个测试产品生成之后,由构建测试团队执行一组最基本的测试用例,来确定做成的测试产品的质量是否达到可以交到各个测试组来进行更全面、更深入的各项测试的要求。

   如无大的问题,就可以进行相应的功能测试。BVT优点是时间短,验证了软件的基本功能。缺点是该种测试的覆盖率很低。因为运行时间短,不可能把所有的情况都测试到。BVT测试也被称为“冒烟测试”。

     构建测试主要从功能的角度对构建测试产品进行验证,构建测是成功执行时其他测试开始的前提条件,高效的构建测试可以提高整个团队的测试效率。

18. 构建测试的测试用例是如何选择的?

   构建测试的测试用例基本都是功能测试用例,相对比较简短,应着重于产品的最基本、最重要的功能,选择原则:

    a. 只测试最重要,最基本的功能

  b. 只测试已经测试过且相对稳定的用例

19. 构建测试有什么作用?

    a. 让开发人员马上知道新版本的源代码是否可以被成功地构建成软件产品

    b. 帮助测试团队避免把时间浪费在不稳定的或者根本不工作的测试产品上

20. 构建测试的步骤:

    a. 安装测试产品及需要的其他软件

 b. 进行产品所需要的系统配置

 c. 测试几个最基本的产品功能

21. 构建测试的内容?

构建测是还包括对构建过程本身的检验,主要内容包括:

            a. 确认构建是否包括了源代码文件新的改变

    b. 检验构建的日志是否有报错

    c. 最后产品文件的大小是否有异常等

22. 构建测试示意图:

82fe3682eb5ebfec5cd437c66f4470fb.png

23. 构建测试环境时的步骤?

       a. 采用一些能实现系统配置自动化的工具,作为构建测是的一部分,自动安装所有构建测是需要的软件。

  b. 使用一些系统备份和恢复工具:

    i. 备份安装好的构建测试所需软件的系统

    ii. 备份构建环境本身

24. 构建测试的目的是什么?

 检验测试产品构建过程是否成功完成,构建出的产品是否具有可测性。

25. 什么是静态测试?

静态测试针对源文件直接做测试分析,发现问题,适用于在源文件中就能发现问题的情形。

26. 常见的静态测试用例有哪些?

  语法及拼写检验,网页亲和力检验,Java/Java EE最佳实践或用户化的规则检验

27. 全自动静态测试示意图:

1d85416459f8fd8c8b5573d2cc09712c.png

目录
相关文章
|
5月前
|
缓存 Go 开发者
依赖管理 | 青训营
依赖管理 | 青训营
|
4月前
|
XML Java Maven
深入Gradle:初识构建自动化的魅力
深入Gradle:初识构建自动化的魅力
|
监控 前端开发 项目管理
8个常用的项目管理工具和方法,干货收藏!
分享一些公认好用的项目管理工具和方法,提升项目成功率
8个常用的项目管理工具和方法,干货收藏!
|
5月前
|
存储 Java 测试技术
深入 Maven:构建杰出的软件项目的完美工具
深入 Maven:构建杰出的软件项目的完美工具
|
前端开发 JavaScript Linux
说几个能帮助你高效工作的插件
说几个能帮助你高效工作的插件
146 0
|
监控 Java 测试技术
JAVA项目开发从0到1的心路历程
JAVA项目开发是一个复杂而有挑战性的过程,它需要经历从项目规划到需求分析、设计、编码、测试、部署和维护等多个阶段。下面我将分享一下从0到1的心路历程。
410 0
|
缓存 JavaScript 前端开发
【从零到一手撕脚手架 | 第三节】项目集成CommitLInt+ESLint+Prettier+StyleLint+LintStaged
前两节教大家如何初始化一个脚手架项目以及如何封装Vue技术栈常用的工具库。本小节教大家如何向我们的脚手架中配置ESLint、Prettier、StyleLint、LintStage。
521 0
【从零到一手撕脚手架 | 第三节】项目集成CommitLInt+ESLint+Prettier+StyleLint+LintStaged
|
存储 Dubbo 小程序
Java项目是不是分布式,真有那么重要吗?
大概不知道从什么时候,「微服务」「分布式」这两个词又再次频繁出现在我的视线里。 「微服务」「分布式」在我刚毕业的时候还是比较关注的,那时候还入门了一把SpringCloud,写了一篇很长的文章,还是很顶的,有不少的大号都给我转载了,在知乎又获得了很多的赞。
199 0
|
Java 程序员 Linux
|
Python Windows
Python编程:为世界贡献你的轮子-pipy打包
Python编程:为世界贡献你的轮子-pipy打包
124 0
Python编程:为世界贡献你的轮子-pipy打包

相关实验场景

更多
下一篇
无影云桌面