解决SimpleTest输出中文测试结果报告乱码问题

最近开始看SimpleTest,一个PHP下的单元测试框架,当然SimpleTest不单只能做单元测试,还能做自动化WEB测试。这个工具简单容易上手,不过就是遇到一个问题,生成的测试报告里面如果包含中文的话就乱码,网上搜了一下,解决办法如下:

找到SimpleTest目录下的reporter.php文件

查找到“function HtmlReporter($character_set = ‘ISO-8859-1’) {”这一行,把相应的编码格式改为网页的编码格式,这里我把’ISO-8859-1’改为’utf-8’。

问题解决了。

PHP可支持的编码格式列表

开源自动化测试框架WatiN 2.0 CTP2已经发布

WatiN是一个开源自动化测试框架,在一些中小型的项目中可以取代昂贵的商业工具,例如QTP。今天WatiN发布了第二个社区预览版(CTP)。这个版本的详细release note还没有出来,但是我已经发现了一个非常好的改进,就是抽象出了IBrowser接口,IE和Firefox这两个类都实现了IBrowser接口,真的可以实现写一次代码,在若干个不同的浏览器中运行自动化测试了。

写一个简单的方法,这个方法要做的就是浏览MySpace聚友网的主页,然后检查一下有没有“关于我们”这段文字(但是即使不存在也没事,这个例子只是意思意思)。
Continue reading “开源自动化测试框架WatiN 2.0 CTP2已经发布”

自动化白盒测试工具PEX应用实例 – 发现ZUNE死机的BUG

在12月的时候,我在博客里面介绍了一个自动化单元测试工具–PEX。在上一篇博客中,又讲述了微软ZUNE在闰年最后一天死机的原因。现在把这两篇文章串起来,跟大家分享一下如何用PEX帮助改善代码的质量。

首先来看一下用PEX测试ZUNE处理日期的方法的结果,如图:


Continue reading “自动化白盒测试工具PEX应用实例 – 发现ZUNE死机的BUG”

微软ZUNE死机原因–单元测试百分百语句覆盖率是不够的

微软的30GB版本Zune在08年的最后一天出现了大规模死机的现象,原因其实就是一行代码原本应该写为大于等于,但是实际上写成了大于。下面来看看具体的代码,第5行就是导致死机的代码。

while (days > 365)
{
	if (DateTime.IsLeapYear(year))
	{
		if (days > 366)
		{
			days -= 366;
			year += 1;
		}
	}
	else
	{
		days -= 365;
		year += 1;
	}
}

Continue reading “微软ZUNE死机原因–单元测试百分百语句覆盖率是不够的”