随笔-18  评论-28  文章-9  trackbacks-1
  2008年7月29日
初到现场发现原有的bug跟踪很不方便,则在空闲之余搭建了一个bug跟踪工具。在谈论bug管理的问题中,大家列举了很多bug跟踪软件。但我觉得工具只是一个部分,主要的还是在bug管理的流程上。

在这些bug管理工具中,bug的极重要属性就是“状态”。一般可分为“新增(New&Active)”,“处理中(in progress)”,“已修正(Fixed)”,“重新打开(reopened)”,“关闭(Close)”等。

就这几个状态而言,明眼人一看就清楚一个bug从发现到排除要走哪些流程:
1、测试人员发现bug,提交。bug状态为New&Acitve
2、开发人员接收bug。bug状态为in progress
3、开发人员修改完毕并提交。bug状态为Fixed
4、测试人员针对开发人员的解决方案再次对bug进行验证测试。如果bug依然存在,则把bug状态设置为reopened,流程返回至第二步。如果问题已经解决,就直接设置为close。
经过以上四个步骤,整个bug的流程就基本走完了。

看似流程非常简,可是在实际使用中还是会发现一些问题:
1、bug信息不全。
      有的信息如项目,模块,指定处理人等。依据这些信息会用来作统计分析,哪个项目,哪个模块,谁的bug多,谁发现的bug多,谁改的bug多等等,则可以大致看出一个人的工作量和工作质量。所以测试人员在填写bug问题单时,不要嫌麻烦。应该把涉及bug相关的信息完全写出来。
2、提供的信息不准确。
      有的bug描述一带而过,表述含糊不清。只是说出了错误并没有清楚的描述错误的现象是什么,提示信息是什么,怎么操作才可以出现等。这样的bug交给开发人员,只会给开发人员增加负担。因为当开发人员拿到bug后,发现不明之处还需要再做测试才可发现更多的信息去解决bug。或者与相关测试人员讨论并询问详情,有时要多次在反馈信息当中才能明确bug的目的。这无疑造成了研发周期的无限延长。
3、开发人员关闭bug
     只有bug的提交人(也就是发现人)才能关闭bug,开发人员只能使用两种状态,即“处理中”和“已修正”。
4、bug的重要性
     这个重要性是在bug管理软件中无法体现和度量的,这个任务主要体现在测试这边。如果当测试人员发现了一个bug,及时与开发人员沟通时无法重现bug,此时连测试人员都不知道这个bug是怎样操作才出现的。对于这样不能重现的bug几乎就不能算是bug,也是最让人头疼的问题。那么作为测试人员,其任务就是要尽可能的找出bug出现的规律。尝试各种可能,即使不能重现也起码要让开发人员知道测试人员是怎么做的,而减少开发人员的再操作的时间。

 

BugTracker.net也是web方式的,而且开源,使用asp.net编写,是页面代码和script代码混合编写的方式,而不是常见的
.aspx文件-.cs文件的方式。提供常见的bug管理功能,有邮件订阅功能。而且运行速度也不错,尽管还有一些问题(主要在search的按日期查找,和报表的按用户分类上),好在是开源的,可以自己很方便的修改,而且对于一个小型团队,它所提供的功能也已经够用了。同时提供了自定义查询和报表和打印功能,可以打印一个bug的详细信息和bug列表,报表提供饼图,条状图,线型图和列表等方式,我现在就自己定义了几个报表来显示各个模块的bug数,某个人修正的bug数,每个人发现的bug数,可以对测试人员和开发人员的工作量有一个统计(当然并不能完全反映工作量),同时作扩展添加了测试用例模块,对系统原有的部分做了汉化。
 
这还是我头一次使用开源软件做实施维护工作,不由的感慨开源的优势,自己可以根据需要做修改,扩展。
 
下面说说在使用BugTracker.net前考虑的几个类似软件:
OnTimer
有cs版和web版,是要收费的,不过用.net编写的东西似乎比较容易破解,我用Reflector看了看,很容易找到加密的地方。这个软件 比bugTracker.net要复杂些,权限等控制的更细,同时似乎并不仅限于bug跟踪,而倾向与缺陷管理。同时它使用了aspnetmenu等组件,和bugTracker.net相比速度要慢些。
BugZilla
听说是很强大的工具,但是下下来一看,要用MySql,同时代码好象是Perl写的(.pm和.pl文件是用什么写的?),怕怕,不用。
myTracker
 使用InterBse数据库,也有cs和web两种方式,我下午才装上InterBase,准备明天看看,这个软件看样子也不仅限于bug跟踪,还有其他的功能,帮助比较全,等用起来再说。
Mantis:
基于PHP和MySql,现在正在使用中不过不是免费的,用起来还是很方便的。 
 
总的来说,BugTracker.net虽然有很多缺陷,但是对与一个小团队来说,简单实用是最大的优点,同时也易于维护,扩展。

posted @ 2008-07-29 10:45 冷风旋 阅读(147) | 评论 (2)编辑
  2008年7月24日
//和历转西历
private string DateTimeTransform(string pDate, string pFormat)
        {
            CultureInfo vCurrentInfo = new CultureInfo("ja-JP", true);
            vCurrentInfo.DateTimeFormat.Calendar = new JapaneseCalendar();
            DateTime vCurrentDate = Convert.ToDateTime(pDate, vCurrentInfo.DateTimeFormat);

            string vReturnDate = vCurrentDate.ToString(pFormat, DateTimeFormatInfo.InvariantInfo);

            return vReturnDate;
        }
//西历转和历
private string DateTimeTransform(string pDate, string pFormat)
        {
            CultureInfo vCurrentInfo = new CultureInfo("ja-JP", true);
            vCurrentInfo.DateTimeFormat.Calendar = new JapaneseCalendar();
            DateTime vCurrentDate = Convert.ToDateTime(pDate);

            string vReturnDate = vCurrentDate.ToString(pFormat, vCurrentInfo.DateTimeFormat);

            return vReturnDate;
        }

posted @ 2008-07-24 16:55 冷风旋 阅读(17) | 评论 (0)编辑
  2008年6月16日
上个星期做了个小程序,出现了一个字符串部分转码的问题。
苦苦搞了两天,终于知道其中的缘由。
QueryString中的参数值编码的确认和转换设置都没有问题
问题出在查询字符串本身,如果在shift_jis编码格式下的查询字符串中随便加一个半角的空格[编码后的]会出现部分编码未成功的问题
原因:
默认的情况下:Unicode取4的字转码,再当中加入一个半角的空格(半角只有两位),编码转换会出现问题。
posted @ 2008-06-16 11:16 冷风旋 阅读(168) | 评论 (0)编辑
  2008年5月31日
学习使用了三个月的CodeIgniter(以下简称CI),我发现越来越喜欢用他了。虽然很多业务上的需求不能得到满足,但是CI的功能已经很强大啦!
CI在众多PHP框架中不是很牛,但很多功能基本上都可以实现,虽不如Zend那样但也相差不到那里去,对于向我刚刚接触PHP是一个很好的学习
PHP的Demo。

三个月来,CI的框架日渐深入的研究下去,学到了很多值得思考的东西。也渐渐的发觉出了其中的不足和整个框架的精髓。
心血来潮个人小推荐一把!
CI中国官方网站:http://codeigniter.org.cn
CI官方网站:http://codeigniter.com
posted @ 2008-05-31 11:47 冷风旋 阅读(42) | 评论 (0)编辑
  2007年12月20日
     摘要: 马上毕业拉,过完年就要自己找工作拉,学校的很多招聘都是关于硬件方面的,有关软件开发方面的太少啦,前一阵子富士康面试成功拉,但是最后放弃拉。因为了解富士康主要是做硬件,感觉很矛盾,很久没有去参加过招聘。自己在博客园潜水学到很多东西。今天发一篇简历想找个工作。 姓名 邹宗寅 性别 男 年龄 21 民族 汉 政治面貌 团员 毕业院校 武汉软件工程职业学院 学历 大专 专业 软件技术(C#) 语言能力 外... 阅读全文
posted @ 2007-12-20 17:45 冷风旋 阅读(631) | 评论 (5)编辑
  2007年12月17日

引用自:http://support.microsoft.com/kb/914277/

简介

在尝试从远程计算机连接到 Microsoft SQL Server 2005 实例时,可能会接收到错误消息。在使用任何程序连接到 SQL Server 时都可能会发生此问题。例如,在使用 SQLCMD 实用工具连接到 SQL Server 时收到以下错误消息:
Sqlcmd:错误:Microsoft SQL Native Client:建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。
如果没有将 SQL Server 2005 配置为接受远程连接,则可能会发生此问题。默认情况下,SQL Server 2005 Express Edition 和 SQL Server 2005 Developer Edition 不允许远程连接。若要配置 SQL Server 2005 以允许远程连接,请完成以下所有步骤:
在您要从远程计算机连接到的 SQL Server 实例上启用远程连接。
打开 SQL Server Browser 服务。
配置防火墙以允许与 SQL Server 和 SQL Server Browser 服务相关的网络通讯。
本文介绍如何完成这些步骤中的每一步。

 

更多信息

若要在 SQL Server 2005 实例上启用远程连接并打开 SQL Server Browser 服务,请使用 SQL Server 2005 外围应用配置器工具。在安装 SQL Server 2005 时会安装外围应用配置器工具。

 

为 SQL Server 2005 Express Edition 或 SQL Server 2005 Developer Edition 启用远程连接

必须为要从远程计算机连接到的每个 SQL Server 2005 实例启用远程连接。为此,请按照下列步骤操作:
1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。
2. 在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
3. 在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“远程连接”和“本地连接和远程连接”,单击适用于您的环境的相应协议,然后单击“应用”。

注意:请在接收到以下消息时单击“确定”:
直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。
4. 在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“服务”和“停止”,等待 MSSQLSERVER 服务停止,然后单击“启动”以重新启动 MSSQLSERVER 服务。

 

启用 SQL Server Browser 服务

如果您是通过使用实例名称来运行 SQL Server 2005 并且在连接字符串中没有使用特定的 TCP/IP 端口号,则必须启用 SQL Server Browser 服务以允许远程连接。例如,使用 <计算机名>\SQLEXPRESS 的默认实例名称安装的 SQL Server 2005 Express。不管您正在运行多少个 SQL Server 2005 实例,只需要启用一次 SQL Server Browser 服务。若要启用 SQL Server Browser 服务,请执行以下步骤。

重要说明:这些步骤可能会增加您的安全风险。这些步骤还可能导致您的计算机或网络更易于受到恶意用户或恶意软件(如病毒)的攻击。我们之所以推荐本文介绍的这一过程,是为了使程序能够按照设计意图运行,或者为了实现特定的程序功能。我们建议在进行这些更改之前,充分考虑在您的特定环境中实施这一过程可能带来的风险。如果您选择实施此过程,请采用任何适当的附加步骤以保护您的系统。我们建议只有确实需要这一过程时才使用它。
1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。
2. 在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
3. 在“服务和连接的外围应用配置器”页上,单击“SQL Server Browser”,在“启动类型”中单击“自动”选项,然后单击“应用”。

注意:在单击“自动”选项后,每次启动 Microsoft Windows 时将自动启动 SQL Server Browser 服务。
4. 单击“启动”,然后单击“确定”。
注意:在计算机上运行 SQL Server Browser 服务时,计算机显示其上运行的每个 SQL Server 实例的实例名称和连接信息。如果不启用 SQL Server Browser 服务并且通过分配的 TCP 端口直接连接到 SQL Server 实例,则可以降低此风险。本文不讨论如何通过 TCP 端口直接到 SQL Server 实例。有关 SQL Server Browser 服务和连接到 SQL Server 实例的更多信息,请参见《SQL Server 联机丛书》中的以下主题:
SQL Server Browser 服务
连接到 SQL Server 数据库引擎
客户端网络配置

 

在 Windows 防火墙中创建例外

这些步骤适用于 Windows XP Service Pack 2 (SP2) 和 Windows Server 2003 中包含的 Windows 防火墙版本。如果您使用的是不同的防火墙系统,请参阅相应的防火墙文档以了解更多信息。

如果在运行 SQL Server 2005 的计算机上运行防火墙,将会阻止访问 SQL Server 2005 的外部连接,除非 SQL Server 2005 和 SQL Server Browser 服务可以通过防火墙进行通信。必须为每个要接受远程连接的 SQL Server 2005 实例创建一个例外,并为 SQL Server Browser 服务创建一个例外。

在安装 SQL Server 2005 的程序文件时,SQL Server 2005 会使用一个实例 ID 作为路径的一部分。若要为每个 SQL Server 实例创建一个例外,必须确定正确的实例 ID。若要获取实例 ID,请执行以下步骤:
1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 配置管理器”。
2. 在“SQL Server 配置管理器”中,单击右窗格中的“SQL Server Browser 服务”,右键单击主窗口中的实例名称,然后单击“属性”。
3. 在“SQL Server Browser 属性”页上,单击“高级”选项卡,定位到属性列表中的实例 ID,然后单击“确定”。
若要打开 Windows 防火墙,请单击“开始”,再单击“运行”,键入 firewall.cpl,然后单击“确定”。

在 Windows 防火墙中为 SQL Server 2005 创建例外

若要在 Windows 防火墙中为 SQL Server 2005 创建例外,请执行以下步骤:
1. 在 Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。
2. 在“添加程序”窗口中,单击“浏览”。
3. 单击 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe 可执行程序,单击“打开”,然后单击“确定”。

注意:上述路径可能会根据 SQL Server 2005 的安装位置而不同。MSSQL.1 这个占位符代表的是您在前面过程的步骤 3 中获得的实例 ID。
4. 对于每个需要为其创建例外的 SQL Server 2005 实例,重复步骤 1 到步骤 3。

在 Windows 防火墙中为 SQL Server Browser 服务创建例外

若要在 Windows 防火墙中为 SQL Server Browser 服务创建例外,请执行以下步骤:
1. 在 Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。
2. 在“添加程序”窗口中,单击“浏览”。
3. 单击 C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe 可执行程序,单击“打开”,然后单击“确定”。

注意:上述路径可能会根据 SQL Server 2005 的安装位置而不同。
posted @ 2007-12-17 20:21 冷风旋 阅读(310) | 评论 (0)编辑
  2007年12月16日

最近在学习BLOG在调试Shang-Blog的时候出现远程连失败google了很多,试验了很多种但是好像还是不行希望高手帮忙解决,源代码在图片下面

 
源代码下载
posted @ 2007-12-16 16:17 冷风旋 阅读(373) | 评论 (1)编辑
  2007年11月10日

昨天那个写法   返回老是在页面中显示一个数值!
其实不用创建RowCommand事件
直接在Button的Click事件中
prootected void Button1_Click(object sender, EventArgs e)
{

Button NowBtn =(Button)sender;
TableCell cell = (TableCell)NowBtn.Parent;
GridViewRow iRow =(GridViewRow)cell.Parent;
//获取主键列的值
this.IdValue = Convert.ToInt32(iRow.Cells[主键列序号].Text);
}

posted @ 2007-11-10 11:35 冷风旋 阅读(515) | 评论 (2)编辑
  2007年11月9日

<asp:Button ID="Button1"  CommandName="Update" CommandArgument='<%#Eval("Row_ID")%>' />

在GridView的RowCommand事件中写:

protected void GridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
        if (e.CommandName == "Update")
        {
          
            Response.Write(e.CommandArgument.ToString());//写出的值就是该行绑定的主键值
           
        }

}


prootected void Button1_Click(object sender, EventArgs e)
{
    Button NowBtn =(Button)sender;
    TableCell cell = (TableCell)NowBtn.Parent;
    GridViewRow iRow =(GridViewRow)cell.Parent;
    //返回控件所在行的索引值
    Response.Write(iRow.Text);
}
posted @ 2007-11-09 21:43 冷风旋 阅读(97) | 评论 (0)编辑
  2007年10月10日

无法编译APP_CODE文件夹中的文件怎么解决?
posted @ 2007-10-10 16:15 冷风旋 阅读(359) | 评论 (10)编辑