初窥项目构建

原文出自:

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

1.项目构建基本流程

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

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

2.构建过程

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

  a. 储存源代码的“仓库”
  b. 可以反复生产的“流水线”
  c. 快速简单的测试以保证产品可以更全面深入地测试和利用系统备份技术来分享测试环境

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

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

5. 版本控制系统概述

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

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

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

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

  建立构建的环境。

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

  a. 选择构建使用的服务器
  b. 选择构建环境平台
  c. 构建所需要的软件或工具

9. 软件开发流程:

  a. 开发人员编写软件代码,将源代码交给构建组进行构建
  b. 构建组将源代码文件做成可以安装的软件产品,再交给测试组进行测试
  c. 测试组将测试时发现的问题反馈给开发组
  d. 开发组修改代码,再将修改后的代码交给构建组来进行新版本的构建

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

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

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

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. 构建测试示意图:

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

  a. 采用一些能实现系统配置自动化的工具,作为构建测是的一部分,自动安装所有构建测是需要的软件。
  b. 使用一些系统备份和恢复工具:
    i. 备份安装好的构建测试所需软件的系统
    ii. 备份构建环境本身

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

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

25. 什么是静态测试?

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

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

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

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

时间: 2024-08-24 22:07:41

初窥项目构建的相关文章

初窥AspectJ

AspectJ可以说是Java中当之无愧的黑魔法.说它是黑魔法,一方面是因为它很强大,能够解决一些传统编程方法论解决不了的问题,而另一方面,它也相当的晦涩,有着比较陡峭的学习曲线. 本文将带大家探索下AspectJ是什么,能做什么,以及如何来做,希望通过本文能够让大家初窥AspectJ之门道 AOP是什么 相信很多人第一次听说AOP是在学习spring的时候,笔者也是.这个概念其实困扰了我很久,到底是AOP?AOP是Aspect Oriented Programming的缩写,和OOP(Obje

Scrapy 1.4 文档 01 初窥 Scrapy

初窥 Scrapy Scrapy 是用于抓取网站并提取结构化数据的应用程序框架,其应用非常广泛,如数据挖掘,信息处理或历史存档. 尽管 Scrapy 最初设计用于网络数据采集(web scraping),但它也可用于使用 API(如 Amazon Associates Web Services)提取数据或用作通用的网络爬虫. 爬虫(spider)示例 为了向您展示 Scrapy 带给您的是什么,我们将使用最简单的方式运行一个爬虫,向您展示一个 Scrape Spider 的例子. 这是一个爬虫的

初窥netfilter/iptables

做这个东西太麻烦了,一不小心,就被自己关门外了. ---------------------------------------------- 一.前言 二.环境 三.语法解析 四.配置及测试 1.SNAT案例 2.DNAT案例 3.SSH案例 4.SSH深入案例(自定义规则) 5.web和ftp(自定义规则) 6.web和ftp(系统默认规则) 五.保存 ---------------------------------------------- 一.前言 iptables即Linux 内核集

初窥ElasticSearch

初窥ElasticSearch 官网上面的,不知道讲的是什么.. youtube上面有一个start with,内容是在windows下面跑这个elastic search,然后用一个fidler工具可视化测试 https://www.youtube.com/watch?v=60UsHHsKyN4 粗略看起来,其实es和其他db没什么大区别,只是在搜索上有很多强大功能,所以很适合用在需要搜索的项目.貌似用curl发送一个JSON格式的数据(实际上是命令)到es就可以做CRUD elasticse

Ioc容器Autofac系列(1)-- 初窥(转)

前言 第一次接触Autofac是因为CMS系统--Orchard,后来在一个开源爬虫系统--NCrawler中也碰到过,随着深入了解,我越发觉得Ioc容器是Web开发中必不可少的利器.那么,Ioc容器是用来做什么的?用了有什么好处?我相信如果不明白这两点就很难敞开心扉接受Ioc容器. 传统解耦设计的弊端 为方便描述,举个日志的栗子.我简化实现,一个Log类,一个SaveLog方法.如果其他类想拥有记日志功能,那么只需在内部包含一个Log类型的变量: 双击代码全选 1 2 3 4 5 6 7 8

scrapy2_初窥Scrapy

递归知识:oop,xpath,jsp,items,pipline等专业网络知识,初级水平并不是很scrapy,可以从简单模块自己写. 初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫. 本文档将通过介绍S

05、NetCore2.0插件框架运行原理源码初窥

05.NetCore2.0插件框架运行原理之WebHostBuilder源码初窥 NetCore2.0的插件框架是要解决对象创建的问题,把创建对象与使用对象进行解耦.调用者不需要关心对象是单例的还是多实例的:插件的扩展和调用也更容易. 一.我们先看看插件框架是如何使用的 首先使用VS2017新建一个控制台程序,要使用插件框架,我们需要引入微软的依赖注入包: install-package Microsoft.Extensions.DependencyInjection 我们声明一个自己的接口,并

Java发送邮件初窥

一.背景 最近朋友的公司有用到这个功能,之前对这一块也不是很熟悉,就和他一起解决出现的异常的同时,也初窥一下使用Apache Common Email组件进行邮件发送. 二.Java发送邮件的注意事项 1.不同的邮箱有不同的支持协议,比如有些只支持SSL协议,有些只支持TLS协议,还有些同时支持SSL和TLS协议. 2.支持不同协议的邮箱,在使用Java发送邮件时要使用不同的方式发送,下面我会介绍基于SSL和TLS的两种实现方式. 附:常用邮箱的服务器(Smtp/POP3)地址和端口总结 三.代

Flutter 即学即用系列博客——04 Flutter UI 初窥

前面三篇可以算是一个小小的里程碑. 主要是介绍了 Flutter 环境的搭建.如何创建 Flutter 项目以及如何在旧有 Android 项目引入 Flutter. 这一篇我们来学习下 Flutter 的 UI. 前言 说到 UI,我就简单说下 Flutter 作为一门跨平台语言具有的优势之一,提高效率吧. 举个例子: 假设现在要开发一个界面,Android 开发需要一天,iOS 开发也需要一天.那么就是两天. 如果你用 Flutter 开发,就只需要一天(因为 Android 和 iOS 都