星期二, 十月 31, 2017

微商城及微会员云端部署模式

微商城及微会员v1.2将使用云端部署模式

系统要求基本环境
1. jdk1.8
2. tomcat8.5
3. mysql5.7
4. ubuntu或centos系统

目前版本只支持单企业用户,v1.3后将支持多企业用户,可以将所有销售过的用户都迁移过来

1. 添加企业信息及门店信息。
   进入管理后台 “系统设置->企业管理” 可以添加企业及该企业下面的门店。
2. 设置企业的微信公众号参数及微信支付参数。
   增加微信公众号配置功能,该功能与企业相关联
3. 申请公众号的消息模板。包括会员绑定消息、消费通知消息等。
4. 添加公众号菜单。
5. 在客户服务器上安装及启动消息客户端。
6. 设置短信通道
7. 测试

星期五, 八月 04, 2017

玺奥网站监测系统介绍

玺奥网站监测系统是在玺奥公司多年安全服务基础上形成的一套针对网站自动化安全运维的工具。该工具具有如下特色:

(一)网站状态监测。定时对网站的访问状态进行监测、确保网站能正常提供服务。
(二)网站域名解析状态监测。对从不同的IP对网站域名解析进行监测,防止DNS劫持。
(三)网站页面篡改监测。对网站关键页面进行篡改监测,保证页面不被黑客篡改。
(四)网站内容监测。对网站关键页面的内容进行监测,保证页面不出现非法内容。
(五)网站挂马监测。对网站页面的木马进行监测,在出现木马时向管理员报警。
(六)网站漏洞监测。定期对网站漏洞进行监测,在出现漏洞后想管理员报警。
(七)网站漏洞自动提醒。在网站出现问题后第一时间以短信、邮件、微信等方式通知相关责任人。
(八)网站漏洞处理。对扫描的漏洞进行闭环式管理,从漏洞的发现、确认、修复有一套完整的管理流程。
(九)漏洞处理进度查询。用户可通过微信查询系统漏洞及其它问题的处理过程、产生原因等。
(十)安全周报、月报。每周、每月向用户推送网站的漏洞及处理细节。
(十一)多网站并发式管理。可对数万网站并行进行管理,满足大型企业的需要。
(十二)基于大数据的日志分析。定期对系统产生的日志进行分析,发现系统中未知的问题。



玺奥代码审计工具介绍

玺奥代码审计工具是一款用于自动检查java(含java、jsp)源代码中的SQL注入漏洞、XSS漏洞、敏感信息泄露等常规安全漏洞的工具,该工具是在玺奥公司多年代码审计经验的基础上通过对5000万行以上的代码进行分析而形成的工具。该工具具有如下特色:

(一)该工具对源码扫描时无需提供第三方依赖包、数据库,也无需对源码进行编译,可极大的保证被扫描代码的安全。
(二)源码扫描速度快。因为工具是有针对性的代码扫描,因此其扫描速度快,在普通pc上扫描100万行源代码仅需1-3分钟,是同类型工具的数倍以上。
(三)扫描结果准确率高。通过对工具扫描结果的审查,漏洞确认率高达98%。
(四)扫描报告输出。可对扫描报告直接生成代码审计报告,方便、快捷。
(五)良好的可扩展性。该工具使用插件化的开发,可方便的进行二次开发。
(六)提供对外接口。该工具提供了自动化的系统接口,可通过接口对系统进行操作。
(七)系统支持分布式部署,可同时对多份源代码进行扫描。

星期三, 五月 24, 2017

基于openscap的基线扫描设计概述

openscap是基于scap标准的一系列开源的工具,其基本原理是基于策略的扫描系统。

现我公司有应用安全漏洞自动化测试平台,基于该平台可以实现各种扫描工具的接入,对于openscap的接入,可通过下面的方式进行:


1. 实现基于openscap的扫描器接入功能,完成任务下达、结果提取、策略同步等功能。
2. 将openscap扫描工具作为主机扫描工具的一种接入到本系统。
3. 在下达任务时可指定openscap的扫描策略(即策略文件,该文件在客户端进行管理,下面将详细叙述)
4. 结果提取,将openscap的结果提取到服务器端并进行归一化处理,以实现对主机结果的统一展示。


关于策略文件的处理。
考虑到scap可对linux主机进行远程扫描,因此接入时只需要在扫描器的机器上安装openscap客户端及扫描器客户端,在扫描器客户端实现时可以将需要扫描的策略文件(xml)放到统一的目录下(该功能后期可以在客户端增加一个简单的界面进行管理),以文件名作为策略的名称,在收到指定策略时可以使用该文件作为openscap的扫描配置文件进行扫描,最后进行结果的提取。

工作安排:
1.对openscap的学习。包括安装部署、命令接口等的研究。
2.对openscap的scanner的开发,按照scanner接口开发openscap的扫描器。
3. 在后台管理系统中增加openscap的扫描工具。

tomcat的安装

下载地址:https://pan.baidu.com/s/1eRCyXKQ

说明:Tomcat服务器上一个符合J2EE标准的Web服务器,在tomcat中无法运行EJB程序,如果要运行可以选择能够运行EJB程序的容器WebLogic,WebSphere,Jboss等
Tomcat的下载:

http://tomcat.apache.org/
 1.进入上面的网站然后如下操作使用Window Service Installer(为Window 添加服务)

2.然后我们进行安装

说明一下:
以前的版本是没有关于Role的设定,到了7.0的时候就有有关的设定,这也说明Tomcat对权限的关注





一个tomcat运行的端口号:8080

默认端口号:8080,就是说不用输入端口号,默认输入就是8080

剩下的基本就是默认的,也没什么特殊的,在这里我在说明一下Tomcat安装完成后的目录有


bin------存放启动和关闭的tomcat脚本
conf-----包含不同的配置文件
work----存放jsp编译后产生的class文件
webapp存放应用程序的目录
log-----存放日志文件
lib------存放tomcat所需要的jar文件
doc-----存放各种Tomcat文档
通过bin/startup.bat命令运行Tomcat服务器(也可以通过小圆图标来启动哦)
打开htt://localhost:8080
查看服务是否启动正常
如果出现下图,说明服务器安装成功



tomcat7.0 的虚拟目录的配置:

1.首先进入Tomcat 7.0conf的目录

2.然后点击Tomcat 7.0confCatalinalocalhost的目录下

3.最后创建一个虚拟目录的名字的xml文件如下:名字.xml

复制代码代码如下:

<Context path="/名字" docBase="D:Tomcat 7.0文件夹名" debug="5" reloadable="true" crossContext="true" />
虚拟目录创建好了。以后就可以在这个虚拟目录下操作了
(以上和前面版本的虚拟目录配置有所不同,请区别对待 )
如果使用软件的话,他们默认的是把工程发布到tomcat的webapp文件夹下,很不方便,而且还互相影响(比如myEclipse)
写一个简单的helloworld,感受一下jsp:
?
1
2
3
4
5
6
7
8
<html>
<head>
<title>简单的程序</title>
</head>
<body>
<%="chenhailong,hello world" %>
</body>
</html>

星期二, 五月 23, 2017

jdk的安装与配置

  1. 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,
    第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。
    (不能都安装在java文件夹的根目录下,jdk和jre安装在同一文件夹会出错)

    如下图所示

    1:安装jdk 随意选择目录 只需把默认安装目录 \java 之前的目录修改即可
    2:安装jre→更改→ \java 之前目录和安装 jdk 目录相同即可
    注:若无安装目录要求,可全默认设置。无需做任何修改,两次均直接点下一步。



    安装完JDK后配置环境变量  计算机→属性→高级系统设置→高级→环境变量

    系统变量→新建 JAVA_HOME 变量 。
    变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0)
    系统变量→寻找 Path 变量→编辑
    在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
    (注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

    系统变量→新建 CLASSPATH 变量
    变量值填写   .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)
    系统变量配置完毕

    检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)
    若如图所示 显示版本信息 则说明安装和配置成功。


    附件:jdk1.6下载地址  64位windows   32位windows




星期二, 五月 16, 2017

欣缘高质量软件开发平台网站内容

网站就由几页ppt构成:
1. 首页。显示系统的标题及对系统介绍及系统最新消息。
2. 功能介绍。分几块介绍系统功能。包含项目构建、测试管理、代码管理、界面管理、外包管理、知识体系(知识体系可以来自互联网(爬虫、转载等),然后再进行编辑)即可形成一套完整的知识体系。
3. 使用流程。
4. 关于我们。
5.加入我们(填写表单)。

开始吧,项目

前面构思了一个基于springmvc的项目管理系统,该系统主要用于自己的项目开发,同时以后可以进行扩展。

     首先来一个名字吧,就叫“欣缘”吧,我老婆的QQ昵称,全称“欣缘高质量软件开发平台”

    其次,做一个网站吧,用websilde实现就可以,主要用于对项目进行介绍。
 
    再次,服务器就先使用订货系统的服务器先,实现完成后再另立门户。

随笔

又一次出差来到了北京,每次出差打开我的行李箱,满满的装着老婆对我的爱和挂念,我很想念她,我想给她更好的。

         今年一直很忙(似乎很多事情都是以忙为理由),也很少有时间思考和安排其它的事情,今天下午难得一段安静的时间,就想着写点什么。

         从哪里写起呢?前面几篇技术博客太多,今天写点感性的吧。

         近年来一直想做点东西,自己也在努力的尝试不同的方式,每天也很努力的在做东西,但是停下来想一想,问问自己的内心,我是需要做点东西吗?确切的说,我是需要做一个成功的东西,我们需要以一个成功的案例来证明自己,这才是我们自己想做的。

         怎么样才能做一个成功的案例呢?想来想去还是运营,以前做网站运营时给自己带来了莫大的成就感,现在一个项目一个项目的做并没有带来成就感,带来的只是累的感觉,自己虽然也想把一个一个项目做好,但因为各种资源的限制,无法将自己的能力最大化,因此一直没有什么比较大的成就感。

        老婆明年就要出来了,我们做点什么呢?这是我们近期得考虑的事情了,我希望我们能做一些我们自己喜欢的事情,仅此而已。在没有其它的事情决定之前,我还是决定首先完成自己的目标管理系统及熊熊收款的功能,接下来实现自己构思的大平台,这个大平台得需要自己操刀(写代码)完成,然后在自己的领域内应用及完善,如此才能将一个运营的项目推广起来。

星期日, 五月 14, 2017

t-box市场调研

     国内主流T-box企业有华为、慧翰微电子、速锐得等,但目前主要竞争还是来自国外企业,如Bosch、Continental、Harman以及Denso、 LG 等日韩企业。国内T-box市场还有95%左右的市场空间,主要原因是CANBUS总线协议开发难度较大。我们预计全国法规的细则将于2016年底出台,届时新能源汽车的TBOX前装率将得到大幅度提升,有望从现在的50%不到,增长到接近100%。

http://www.pday.com.cn/Htmls/Report/201604/24514080.html

售价在8000元,看万能的淘宝有没有。

百度文库有了,要6000元。
https://wenku.baidu.com/view/f1427be087c24028905fc3a7.html

万能的淘宝上也没有。。

微信会员及微信商城项目实施指导手册

微信会员:将现有系统的会员与用户的微信进行绑定,实现在微信上管理用户会员。
微信商城:实现在微信端进行商品的展示、下单及购买功能。

为了更好的对微信系统进行实施指导,本手册将详细描述微信会员及微信商城的实施。

一、实施前准备
       客户需要准备的资源
            a)微信公众号(应该是服务号,一年要给腾讯交300元,不是订阅号)并开通微信支付。
           b)一个经过域名备案的服务器(服务器80端口应可以通过外网访问)
           c)微信商城上要销售的商品目录及价格(价格应与实体店一致)
           d) 会员卡或其它卡或手机号。每个会员应该有一张唯一对应的实名卡或手机号,此号码用来与用户微信进行关联。
          e)手机短信通道。用户通过会员卡或手机号绑定微信会员时应该可以使用手机短信进行验证,因此应该购买手机短信。
          d) 微信推送的消息模板。用户在消费后可以向用户的手机上推送消息或提醒,因此需要提前申请微信消息模板。
         e) 短信发送时应提前准备短信发送模板,用以进行备案

二、实施产品准备

       2.1 基础环境准备
         a) mysql5.7数据库
         b) jdk1.6 (安装手册点这里)
         c)    tomcat 7.0
       2.2  程序安装包
          a) 后台安装包
          b)数据同步安装包
          c)系统前端安装包
          d) 微信端程序安装包
          e)程序数据库
         f)nginx安装程序


三、实施步骤及注意事项

       为了更好的实施请按照下面步骤顺序执行。
       1. 安装mysql
       2. 安装jdk1.6
       3. 安装tomcat
       4. 修改tomcat的配置文件server.xml以避免乱码问题。
       5. 调整tomcat运行内存,使运行更稳定。
       6. 修改tomcat的运行端口号到80。
       7. 启动tomcat,确保可以正常运行。
       8. 确认成功后停止tomcat,
       9. 从备份中还原程序数据库。
       10. 将前台安装包、后台安装包复制到tomcat的webapps目录下
       11. 启动tomcat,此时系统会将war包解压缩。
       12. 进入解压缩好后的文件夹,在WEB-INF/config/database.properties文件中修改数据库连接的相关信息(用户名、密码、ip地址、数据库)
       13. 服务端上传路径的配置,WEB-INF/config/environment.properties文件。
       14. 安装nginx图片服务器,其端口使用90或其它端口
       15. 修改百度编辑器的路径配置,在jsp/config.json,并且将其复制到文件上传目录下。
       16. 修改微信公众号的配置参数。在微信程序下的WEB-INF/config/environment.properties文件中,修改其appid和appsecret参数
       17. 修改图片服务器的地址,在WEB-INF/config/locales/messages_zh.properties
       18. 微信支付参数的修改。修改支付的key,在WEB-INF/classes/spring.xml中。
       19. 修改短信配置参数,在spring.xml文件中。
       20. 在ERP系统中增加微信用户数据。
      21、在SQLSERVER中创建一张表:

     wx_userinfo,该表用于保存微信用户信息及会员卡信息。

22、部署微信模块。
23、在appinterface表中增加会员积分查询接口;
24、在appinterface表中增加会员余额查询接口;
25、微信入口链接

-- xsy  sqlserver数据库 增加用户和微信的关联表
create table wx_userinfo(

 bmc_id varchar(30) ,
 mobile varchar(20),
 openid varchar(50),
nickname varchar(50),
sex varchar(10),
city varchar(40),
country varchar(60),
province varchar(30),
language varchar(20),
headimgurl varchar(400),
subscribe_time varchar(20),
unionid varchar(50default '',
remark varchar(200default '',
groupid varchar(60default '' ,
popenid varchar(60default ''-- 推荐后的父openid
fxkh varchar(40default ''-- 返现卡号
xingming varchar(60default ''-- 姓名

createdate datetime default getDate()

);

-- xsy  mysql 数据库 增加用户和微信的关联表

create table wx_userinfo(

 bmc_id varchar(30) ,
 mobile varchar(30),
 openid varchar(50),
nickname varchar(100),
sex varchar(10),
city varchar(100),
country varchar(100),
province varchar(100),
language varchar(50),
headimgurl varchar(400),
subscribe_time varchar(30),
unionid varchar(50default '',
remark varchar(200default '',
groupid varchar(60default '' ,
popenid varchar(60default ''-- 推荐后的父openid
fxkh varchar(40default ''-- 返现卡号
xingming varchar(60default ''-- 姓名
createdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE  wx_userinfo  DEFAULT CHARACTER SET utf8;

-- Incorrect string value: '\xE6\x9B\xB9\xE5\x86  bug
 alter table wx_userinfo convert to character set utf8;


 -- mysql 数据库  优惠信息保存表

 create table wx_youhui(

 yh_id varchar(30primary key,
 title varchar(300),
 imageurl varchar(500),
 linkurl varchar(500),
 createuser varchar(50),
createdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE  wx_youhui  DEFAULT CHARACTER SET utf8;

-- Incorrect string value: '\xE6\x9B\xB9\xE5\x86  bug
 alter table wx_youhui convert to character set utf8;


25、实现短信身份验证接口。

26、修改微信支付参数
  27、将菜单链接到微信支付。

四、实施交付
    给用户培训。上线。

我们又错过了一个机会

近日,勒索病毒泛滥,在感染该病毒后,勒索者会将被攻击电脑的文档进行加密,当你支付一定的比特币后才能解除病毒的影响。
        在这次的全球网络大事件浪潮中,笔者对自己周围的人对此次事件的反应是这样子的。

       首先是一位安全圈内朋友在朋友圈发布了关于该问题的新闻,这也是笔者看到该新闻的第一个渠道,接着有在校的学生在其朋友圈转发了有关该病毒的新闻并配文字说明“庆幸自己学校没有”。
       第二天,就有安全公司及相关部门发出声明,该病毒感染的是windows机器,并且给出了防范措施。此时我想到自己使用的是ubuntu系统,对这个病毒自然是天生免疫了,同时也自行猜测觉得如此大规模感染全球范围内的系统,估计是掌握了某些系统的漏洞才能做到吧。

        如此重量级的互联网事件,做生意的朋友是如何表现的呢?
        首先是做安全的朋友。可以说安全界的朋友还是良心做生意,一是有人又一次教育和培养了大众的安全意识,二是安全界的朋友都第一时间告知了大家的防范措施。

         其次是做应用的朋友。借此事件告诉客户数据无价,面对如此强大的攻击,我们只能“预防”无法“治疗”,就是说只能预防不受病毒感染,但一旦感染后则无法对加密的数据进行还原。
        再次就是某宝的数据解密服务提供商,更是因为此事直接涨价,因为近期需要他们帮助恢复加密文档的人太多太多了,多的无法应付。

        但最令我有感触的也是促使我写下这篇文章的则是这么一则新闻:
勒索病毒代码被破译:竟然发现“自毁开关”

        首先为这个安全专家点个赞,用中国人的话来说是“功德无量”,可是作为一名安全从业者及IT从业者,我的内心却是无比震撼,当然并不是因为有人解决了这个问题或者说有人编写出了如此厉害的病毒,而是因为在机会来临时,我们并没有抓住这个机会。

       很多人都经常会抱怨没有机会,总觉得别人的成功是因为人家运气好,自己则是运气不济。但是现在,这个机会被英国的这个人抓住了。

        反思一下自己,在自己知道这个事情时,一直只是把自己当成了吃瓜群众,看着形形色色的表演,而自己从来没有想过在这个舞台上做点什么,这才是令我真正震撼的地方,这个事件再一次告诉了我”这个世界在任何时候都不缺乏机会,只是机会来了,你能看到吗?你能抓住吗?

       后续请看”如何抓住互联网中的机会?“

星期四, 五月 11, 2017

你需要一个日程管理工具吗?

最近忙的好几天没有更新博客了,今天刚好有朋友让我帮忙推荐一个GTD工具,问什么工具好用一点,因为他最近事情多,头绪乱,希望能有一个好用点的GTD工具,然后能到时用短信或微信提醒。

于是我告诉他,根据我多年的经验,提醒用处不大,而你需要的也不是一个日程安排及提醒的工具。为什么呢?

    以前上学时离宿舍不远有一条铁路,每天晚上那几个时间总会有火车经过,吵得我们睡不着觉,后来呢?不出一个月,大脑已经能够自动忽略这个噪音了。

    所以,短信提醒并不能提高人的工作效率,有时候还会增加提醒带来的压力,反倒影响工作效率。

    朋友的问题让我注意到了一个问题:“你需要一个日程管理工具吗?”,很多人都会觉得自己需要一个日程管理工具,但实际上很多人需要的是一个“目标管理工具”,而不是日程管理工具。

    很多人忙并不是因为真的忙,而是因为没有一个清晰而明确的目标,这才会导致事情过多,忙不过来,所以,表面上看我们需要“日程管理”,但从根源上看,我们需要的是一个“目标管理”。

   那么如何管理目标呢?且听下文分解。
附上作者自己做的工具一枚,目标管理系统,有需要的拿去。
http://www.qwdh888.cn/mytarget/

星期日, 五月 07, 2017

安全开发管理能力培训

熊博士安全课堂开讲啦

针对人员:开发测试人员、质量管理人员、安全管理人员
培训目标:具备软件开发生命周期安全管理能力

1、安全开发的历史、基础概念和安全开发整体实施概念
      软件开发历史
      软件开发现状
      安全开发历史
     安全开发现状
     软件安全开发生命周期
     安全开发的实施

2、安全需求分析的各种分类、安全需求分析的方法以及流程
      安全需求分析基础
     安全需求的分类
     安全需求的调研
     安全需求的分析
     安全需求调研案例分析

     

3、安全设计的各种原则、方法、工具和流程
     软件安全设计理论
     物理架构安全设计
     逻辑架构安全设计
    常用安全设计方法介绍
     安全设计流程介绍
     软件设计工具介绍及安全分析
    安全设计案例剖析        


4、安全编码的各种方法、规范和流程
     常见安全漏洞介绍
     编码阶段安全漏洞的防范
     安全编码规范
     安全编码审核流程
     安全编码案例讲解


5、安全测试的各种理论、方法和流程
      安全测试基本概念
      渗透测试方法与流程
      代码审计方法与流程
      自动化安全测试工具介绍
      安全测试报告编写
     安全测试案例讲解






代码安全审计培训课程



针对人员:安全审计员、安全管理员、测试管理员

培训目的:提高代码安全审计分析能力

培训内容:

1、软件安全基础
     软件安全介绍
     软件安全现状
     软件安全标准
     软件开发现状
     渗透测试和代码审计
     典型案例分析

2、安全编码原则
     安全开发方法论
    安全开发关键角色
     安全开发环境
     安全开发要求
     总体架构中的安全
     安全功能设计
     安全编码规范

3、代码安全审计方法
      代码审计基础
      常见代码漏洞及剖析
     代码安全问题特点剖析
     代码审计三部曲
     代码审计报告的编写

4、CHECKMAX代码安全工具使用
       代码审计方法回顾
       代码审计常用工具介绍
       CHECKMAX安装
       CHECKMAX基本操作
      CHECKMAX使用进阶
      使用CHECKMAX进行代码审计
   

5、代码安全审计实战
     基于STRUTS框架的代码审计实战
     基于SPRINGMVC框架的代码审计实战
     基于其它框架的代码审计实战


星期六, 五月 06, 2017

我想写一本书

对近期的工作进行了总结,在总结的过程中突然产生了一个想法,把这些东西再进行体系化研究,编写一本开源的软件工程的书,这本书的目的一是对自己多年经验的总结,二是实现和完善一套完整的项目开发管理工具,三是可以实现自己编书的梦想,四是可以对我国现有软件开发的大环境有所帮助。

      思路如下:
    1. 在git上发起一个开源项目。
    2. 自己写好序言,目录,章节。
    3. 邀请自己的朋友帮忙编写其中的部分章节。
   4. 完成后使用这套规则进行项目实战测试。
   5. 对本书的方法进行完善。
    6. 请学术人员做序。
    7. 定稿,生成电子书在网上推广。
   8. 开通微博和公众号与读者进行互动。
   9. 承接软件项目设计及管理的事情和咨询及软件开发。

近期工作心得

做软件开发很多年了,自信能做的事情也比较多,可是回想下来很多项目做的都不太理想,就目前的项目总结一下。

      现在项目已经到尾声,测试问题也还比较多,原因就不找了,回想一下整个过程,可以有很多改进的地方,现在总结一下吧:

    1. 项目启动阶段。项目启动时想着要设计的比较详细,所以花费了将近一周的时间进行项目的用例设计、分析。事实证明此处有些问题,在此阶段不应该进行类的设计及数据库的设计,因为一是时间上不允许在此阶段设计的很详细,二是客户也不会对这块的设计进行确认,因为他们看不懂。所以在此阶段应该将用例捕捉完成后尽快出系统原型与用户确认。而整个项目的原型大概是在项目开始后一个月左右客户才最终确定,而此时项目已经开发一些了,导致后面的调整量大。

    2. 数据库设计把关问题。在前面设计时数据库设计自己把握了大体的框架,细节交给盼盼处理,但因为经验的问题,盼盼没有把细节做到位,因此在后面改动比较频繁。总结一下,数据库的设计应该进行评审,评审时对照系统原型,一个一个将数据库操作的逻额辑进行记录,一是有利于后面的开发,二是有利于原型与数据库的对应,三是统一开发思路。

   3. 类的设计。类的设计不需要一次完成,在原型与数据模型评审完成后即可组织人员进行开发,先从基本的功能开发做起,设计一个子系统就大家一起完成一个子系统,这样的开发方式应该要优于分模块开发的组织方式。在开发过程中完善和设计类图,这样大大减少项目启动阶段的压力。

   4. 测试驱动的开发。项目一开始应该安排和培养专门写集成测试的人员,这样不至于到后期测试问题很多。而且有利于项目的推进。同时集成测试人员的考核应以每天实现2-5个测试用例为目标,按照目前的项目来看,2个月时间可以实现五六十个测试用例,如此会大大提高系统质量及后期测试的压力。ta

    5. 界面问题。在开发初期应该统一界面开发规范,应对常用开发组件使用jsp或js的标签进行封装,一是有利于程序员的调用,二是有利于界面的统一修改。

针对以上问题进行总结并优化后,后面项目开发的时候应按照下面步骤进行:

1. 发布界面开发规范及代码编写规范。
2. 使用uml的用例图进行项目需求分析。
3. 用例需求分析完成后立即进行界面原型设计。
4. 界面原型设计完成后尽快与客户沟通确认,此处应有确认书或确认邮件。
5. 根据uml用例及界面原型设计数据库模型。
6. 进行界面与数据库原型的评审会议(设计人员、测试人员、开发人员、项目经理),形成评审会议纪要,并且记录每个 界面的数据逻辑是什么样的,并且经参与人员认可通过。
7. 以周为单位制定项目里程碑,每周确定一个最小可运行系统。
8. 设计第一周的类图,
9. 集成测试人员编写集成测试用例,程序员实现各子模块。
10. 项目经理每天看看项目进度,检查集成测试代码,运行即可。

自勉

想一想,近些年对我影响最大的书是稻盛和夫的《活法》,以前也经常与别人分享《活法》之六项精进,今天写下来,自勉一下:

1. 每日付出不逊于任何人的努力。
2. 谦虚戒骄
3. 每日反省自己
4. 拥有一颗感恩的心
5. 积善行,思利他
6. 不因感性所困

好久不回顾,都有些忘记了。

1. 每日付出不逊于任何人的努力。努力的方向要对,而且贵在坚持。
2. 谦虚戒娇。要谦虚,但不要自卑,不要没有自信。
3. 每日反省自己。中国古语有云:“吾日三省吾身”也是这个意思,每天花点时间总结一下自己哪些可以做得更好是值得的,包括工作上,包括某些事情的处理,而且写下的东西也应当常常回顾,
4. 拥有一颗感恩的心。想想都有谁在日常生活中帮助过自己,滴水之恩当涌泉相报。
5. 积善行,思利他。想想能为别人或社会做点什么吧。
6. 不因感性所困。把自己能做的事情做到位,其它的就留给老天爷去安排吧。


     感谢老婆总在我身边陪伴着我~

星期四, 五月 04, 2017

基于springmvc的自动化测试系统构想

        做为一名多年的软件开发人员,软件质量一直是心口的一块石头,一直压抑着自己,因为软件质量的高低关乎我们每一个软件企业的生存和发展。

        事实证明软件的问题消灭在萌芽状态是成本最低的一种方式,因此在开发阶段需要进行大量的测试才能保证软件的质量。

        因此,我认为比较理想的开发模式为“测试驱动开发”,即在开发前首先设计测试用例,在测试用例的基础上进行开发。

       但是如此以来,项目的整体开发周期会加长,而且很多程序员从内心认为编写单元测试会增加自己的工作量,有编写单元测试的时间还不如编写代码能获得更高的效率,因此测试驱动开发往往达不到预期的效果。

      那么如何提高单元测试的效率呢?根据人类几千年的发展变迁史来看,提高效率的方式只有一种——使用工具。

    So,我们要想提高单元测试效率的方式就一种,制造一种自动化的单元测试工具,该工具应该可以进行下面的一些工作:

     1.  实现多项目的管理。一个测试驱动的平台应该可以管理多个项目。
     2.  实现项目基础开发框架的生成。根据项目的包名自动生成springmvc+mybatis+spring的开发框架。
    3. 测试用例管理。测试用例包含持久层测试用例、服务层测试用例、控制层测试用例。
    4. Mock系统的生成,对于无法测试的第三方系统可自动生成mock对象,最终能够基于mock对象完成测试。
    5. 集成测试管理。测试系统可配置复杂情况下的集成测试。
    6. 测试代码生成。系统可根据设置的测试用例自动生成单元测试代码并执行。
    7. 测试报告管理。测试完成后可通过界面阅读测试报告。
    8. 基于git的托管。系统可以将生成的项目发布到git中,以实现对系统版本的控制。
   10. 界面模板管理。系统可生成界面基础模板及模板使用说明文档,第三方前端可提交自己的模板,该模板可以与生成的系统进行整合。
   11. 数据模型定义。后期可定义数据模型,根据数据模型自动创建数据库,支持导入pdm文件。
   12. 系统文档生成。系统能够自动写文档模板,包括:用户手册、管理员手册、测试报告、api接口、数据字典。
   13. 系统可实现压力测试。系统可以使用jmeter实现压力测试报告。
    14. 系统菜单的定义。可定义系统菜单。
    15. 系统原型生成。
    16. 持续集成系统。
    17. 安全扫描。
  
   想象一下,有了这套工具,我们在后面进行项目开发时的场景吧:
   1. 搞清楚用户的需求。可使用系统用例图(user case)进行捕获。
   2. 创建一个项目,指定项目需要使用的数据库、系统包的规划。
   3. 创建数据模型,建立好数据模型(可导入pdm文件哦)
   4. 定义系统功能菜单。
   5. 生成系统基础框架。
   6. 定义单元测试用例。
   7. 程序员根据单元测试编写代码,实现业务逻辑。
   8. 编写集成测试用例。
   9. 生成jmeter压力测试文件并运行。
  10. 安全漏洞扫描。
 11. 生成系统文档。
   12. 交付,放心的交付吧,因为测试做了很多遍了,不会有问题的。


                  理想中的软件建模方法,谁有兴趣呢?留言联系我一起讨论讨论。
       

无题

想不好题目,暂时就叫无题吧。写点什么呢?说说自己想说的话吧。

想在夜深人静的晚上写点东西,内心很矛盾的,想让人看,又不想让人看,其实是想让不认识的人看,现在的网络已经很难隐藏一个人的身份了,大家在网上都像透明人一样,无处藏身。
纠结了半天,还是觉得blogger是我的心声。
第一,国内无法正常访问blogger,我的关系都在国内,大家基本上不会碰见。
第二,发表的东西国外人可能看见,或许能碰到欣赏的人吧。
第三,我还是喜欢使用google的产品。

纪念帖

        好久没有写过博客了,记得第一次使用blogger.com是在十年前,那时候的我还是意气风发的少年一个,如今孩子都已经三岁了,不知道谷歌的博客什么时候可以在国内继续被访问,但这对我来说已经不重要了,因为我自己能访问就可以了。
        后面的日子我不知道会写些什么,但还是供自己十年后再来评价吧。