欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

UU'S T&T

TIPS AND TROUBLESHOOTS FOR WINDOWS

公告

  • 本Blog站点上的任何言论仅代表个人观点,与其所在的公司没有任何关系。本Blog站点的内容是按原样提供的,作者与其公司并不对其提供任何种类的担保。此外还否认所有暗示的保证,包括但不局限于在任何试销性或某一特定用途的适用性方面的暗示保证。由于本站内容的使用或性能表现带来的全部风险将由使用者自己承担。任何由于使用或无法使用本站内容而带来的损失(包括但不局限于商业利润、业务中断、业务信息或其他财产上的损失),即使在 本站作者曾经被提醒可能出现这些损失的情况下,本站 及其作者或涉及内容创建的任何其他人等对任何上述的损失概不负责。
    ·本BLOG的内容均属技术交流之用,本人对所发表的文章、图片、随笔保留一切权利。
    如文章、图片、随笔转载请注明:
    作者姓名:尤扬
    文章来源URL:
    http://blogs.itecn.net/blogs/youyang
    同时请通过EMAIL通知本人:
    youyang1983◎hotmail.com
    ·如果通过EMAIL与我联系,并最终解决的问题,我将发表于本BLOG进行技术分享,如果涉及隐私或有特殊要求请于EMAIL中说明!
    本人联系方式:
    MSN ID:youyang1983◎hotmail.com(常用)
    QQ ID:85836514
    EMAIL:v-yayou@microsoft.com
    ·技术就是无条件共享


    2005年7月 Microsoft MVP for Windows-Shell\User
    2006年7月 Microsoft MVP for Windows-Shell\User
    2007年7月 Microsoft MVP for Windows-Shell\User

Microsoft

朋友的网站

Microsoft Silverlight V1.0无法进行Automation Testing

从这个帖子起,我的Blog也正式转向了测试技术...

因为产品测试周期太紧,所以我现在是忙晕了的状态,所以尽量发一些简洁的快讯吧。

切入正题:

Microsoft Silverlight V1.0相信很多朋友都见过了,大有与Flash分天下的趋势,但是在V1.0版本中,并没有实现Accessbility的APIs,也就是说,你用Automation Test Framework是无法找到Sliverlight中的控件的,因此你的自动化测试基本就别想了,目前这个问题会在V2.0中解决,V2.0 Beta1好像已经出来了...

Posted: 2008年5月13日 20:36 作者 yangyou | 0 评论
归档在:
Windows7明年发布...

今天MSW上一个醒目的标题-“Bill 说Windows7明年会发布”,想想Windows 6那漫长的开发周期,心里不禁感叹,微软的Windows开发也终于开始提速了,其实,从我的感觉,微软里面很多人会有很鲜明的风格,最明显的Bill和Steven,Bill偏重于技术,往往会重视新技术的研发,但多多少少会忽略一些用户的需求,听很多老前辈说,多年以前,微软里面常常是Developer告诉PM,这个功能不能实现,而相信大家也会感觉到Windows/Office的“霸道”,往往新版本中让用户去适应新的变化,当然,我觉得这也是微软的功绩之一,因为它通过这种变化向用户传递了一种创新。而Steven是做市场出身,相信大家有看到过N年前Steven卖Windows的那个广告,很张扬的性格,但是我觉得市场确实需要这样的人,随着Bill王朝的渐渐退去,微软也正慢慢的进行着变革,产品开发周期的缩短,更注重市场,相信对我们来说是一个好消息。

 

在Redmond的日子

Boss说,到Redmond工作3个月,Have fun,于是乎我就被扔到了这个半里地看不到人影的地方...

作为80后的我们,当技术已经不是障碍的时候,与人的交流与沟通才是真正的难点,整天不停的开会,脑子里面充斥着美语,西班牙口音英语,中国口音的英语,最烦人的是印度人的英语,我的老天爷啊。其次,还得考虑咱说的话他们听了Happy不,好难啊...

Microsoft这个地方,不管你有什么需求,都会有产品满足你,结果就导致了一个问题,不能说我们作不到,只能去赶快的把这个新东西搞定,用圈内兄弟们的话,如果产品搞不定,就搞定人。

老大们的脑子里面经常是10几个Projects,所以,你别指望老大们帮你想今天要干什么,只能自己去想,实际上更形象的说,老大们就是公章,你有啥需求了,发封信给老大们,他们找相应的人,如果你也不知道让你的老大干什么,那么你的老大也会让你不知道干什么的。

你干IT之前,特别是到Redmond这种地方之前,一定要下定决心,要么找到老婆赶快结婚,要不你就35以后再说,现在是巨痛苦的,哎,望着大韩航空的空姐们只能感叹了,原来国际航线的空姐漂亮都是为了照顾我这样的...

 Redmond这边每小时最低工资7.99USD,我每小时的工资7.50USD,得,还没够上人家的最低工资标准....

招聘

呵呵,有些对不起盆老大,N久没上来,上来就发招聘广告,不过最近确实N忙,顺便发则招聘广告

Microsoft R&D Group下的CTI Team现在招Tester,

要求:

1. 对Testing感兴趣,以前没有经验的也可,不过你得想出来这样一个问题:

让你测NOTEPAD的打开功能,你至少要想出10种以上的Case

2.在Windows Client(Windows Vista/XP),Windows Server 2003, MOSS 2007,SQL SERVER, ASP.NET, IIS, AD的一个方面,或者多个方面(越多越好)有一定的研究,比如:

你知道Windows Vista的 网络知晓服务的原理吗?

你知道AD的组策略分发的原理吗?

3. Coding技巧(可选): 熟悉C++/C#, Batch, Script, PowerShell

4. 英文,我前一阵发现某些同志大学CET 6都过了,结果Release不知道是啥意思,所以,英文的读写功底是要有的,因为Team整个沟通都是英文,至于口语,如果你说的好,倒是有机会被扔到Redmond工作去。

其他

Vendor职位,工作地点在Beijing SIGMA Building,Microsoft R&D Group

MVP优先,有工作经验者优先(2~3年)(刚毕业的同志们,如果你们觉得自己在Testing方面有天赋,那么欢迎),

最后我加一条,是MM的,并且是PLMM的,我负责Training你的Testing Skill,呵呵。

我的联系方式自己找,就像Windows Team面试一样,你首先得能找到面试的地方才有的谈。

中英文简历,你对上面3个问题的回答,PLMM的,你的照片一张,呵呵

Windows SteadyState for Windows Vista is coming

呵呵,看到Alexis的文章《借助 Windows SteadyState 管理多人共用的计算机》,其实,Windows SteadyState就是我们的Team在测试的,就着这个便利条件,给大家一些新的News。

1. Windows SteadyState for Windows Vista 已经有了,并且目前正在测试,相信不久的以后,大家就会看到For Windows Vista版本的Windows SteadyState.

2. Windows XP的Windows SteadyState正在进行和Windows XP Service Pack3的兼容性测试。

3.那个"Undo Disk"功能,比VPC的要强大很多,因为它是可以通过WMI进行编程控制的哦,所以这个功能将来在测试领域会大有作为。

4.大家在使用Windows SteadyState的过程中,如果发现了任何的反常现象,或者你对SteadyState有任何的建议,都可以在这篇贴在下面跟贴,或者直接发信到我的Email: v-yayou@microsoft.com,你的意见和建议都会最快的反馈到产品组的哦,^_^

 

Windows Live One Care 2.0 beta开始对外测试了

梦想赢得一个Windows Vista Ultimate的产品序列号?

梦想得到Windows Live One Care的订阅密钥?

我想很多人应该都想要,靠盗版,靠算号?NO,我们要靠自己的劳动,这样才是实至名归的。

我现在用的Windows Vista Ultimate的序列号就是Microsoft赠送的,而现在用的Windows Live One Care的订阅也是Microsoft 赠送的

呵呵,身为测试工程师的我,自然要向大家多多介绍微软对外的测试站点

http://connect.microsoft.com

在这里,你可以获得最新的Beta产品信息,再也不用为了尝鲜而四处下载不安全的镜像了,

这个站点有一个特性,如果你是一个活跃的用户,那么你可以参与的项目也就越多,而比如Windows Vista/Windows Server 2008 Beta这样的项目,基本到最后都会去奖励表现优异的用户的,自然是PK了。

刚刚看了一下,最近放的是Windows Live One Care 2.0 Beta,大家可以看看去。

Picture: Microsoft

Microsoft 是一个美丽的地方,而我就在这里的某个地方工作:

DSC00089.JPG 

每天,都会看到一句最经典的“您的潜力,我们的动力”,

DSC00077.JPG 

而Microsoft的装修风格也会和Windows的相似^_^

DSC00078.JPG 

至于我的地方,就没外面那么美了,每天8台机器在身边,好热啊!

DSC00080.JPG

但这都没关系,有可以展示智慧的白板,这是我最喜欢的东西

DSC00079.JPG 

每天,最喜欢的时候是晚上8点以后,一切都静静的,少了很多浮躁与喧哗,此时还在公司OT是一种享受。

DSC00081.JPG 

希望在某个时候某个地方也可以在Microsoft看到各位的身影!

DSC00012.JPG 

 

浅谈Bug的价值

话题由Windows的Explorer.exe进程而起,发表一下自己的看法,

在作SDET之前,很多时候,发现Windows的反常现象,或者是一个看似不正常的现象,总是口诛笔伐,认为微软的东西实在是太烂了,连这种问题都会出现,就像这次的Windows Explorer.exe进程问题一样,但是,我问大家一个问题,你的系统上面为什么会连续去启动Explorer.exe呢?

我和同事们的一些想法:

1.你的键盘Win键和E键被卡住了,但

 a,两个按键同时被卡住的可能真的是太小了。

类似的,还有键盘坏了,睡觉的时候无意的按到了,换个键盘,重启一下就可以搞定。

2. 黑客、木马攻击?

正如Lee所说,如果一个黑客可以帮你启动Explorer.exe,那么他可以作更简单的事情去攻击。

3. 自己按?

但是,你为什么要自己把自己的机器耗尽资源呢?

所以,大家自己想想,这个被外界媒体忽悠的Soooooooooooooooooooooooooooooooooooooooo“致命”的问题,虽然是代码的一个Issue,但是在现实世界中的没有太大的价值。

我们报每个Bug之前,都会去想,这个Bug的价值在哪里?

而,思考是在必须作的一件功课,希望大家也多多思考。

忽悠,是现在很流行的,你今天被忽悠了没?

Windows讨厌的"SPACE" Key rule

问大家一个问题,(不要自己动手实验,用你的第一直觉回答),

如果让你完全用键盘去操作一个Windows的UI,

什么键是负责 UI上面元素(比如Button, CheckBox, RadioButton)的选择?

什么键是负责 这个选中的元素的 点击动作?

我的答案

TAB键, Enter键,

但是,这个答案却是错误的,

Windows里面有一个讨厌的“SPACE” key rule,

那就是,当你遇到CheckBox控件的时候,即使这个控件已经获得了焦点,你还得必须通过Space(空格键)才能选中它。

见我的一封Email:

...... 

IE:

Tools->Internet Options->Security,

OE:

Click Microsoft Communities->Click Yes on the pop up notification->Newsgroup Subscriptions

 

On these pages, the checkbox and buttons behavior are same as XXXXX.

 

And on this Web page:

http://msdn2.microsoft.com/en-us/library/ms670553.aspx

seems the SPACE key is the only key to fire action on the check box.

LVS_EX_CHECKBOXES 

Version 4.70. Enables check boxes for items in a list-view control. When set to this style, the control creates and sets a state image list with two images using DrawFrameControl. State image 1 is the unchecked box, and state image 2 is the checked box. Setting the state image to zero removes the check box.

Version 6.00 Check boxes are visible and functional with all list view modes except the tile view mode introduced in ComCtl32.dll version 6. Clicking a checkbox in tile view mode only selects the item; the state does not change.

You can obtain the state of the check box for a given item with ListView_GetCheckState. To set the check state, use ListView_SetCheckState. If this style is set, the list-view control automatically toggles the check state when the user clicks the check box or presses the space bar.

 

But XXXX, for me, I dont like this design, because the End User has to know, when you use keyboard to control UI, you must use SPACE key to select checkbox, even if the checkbox has the focus,

And Im the person who just know this SPACE Key ruleJ

 

Build-in Guest账户 VS. Net 命令

哎,作SDET的人,基本都是手很壮的(壮的意思是不管干什么都能碰到bug),碰到一个用NET USER命令启用Build-in Guest 账户的问题,写出来,大家谁知道是怎么回事,告诉一声,我感觉是Bug。

Repro Steps:

1. 以Build-in Administrator身份启动CMD,

2. 执行net user Guest 123 /active:yes,回车

检查一下你的Build-in Guest  账户到底是启用了没?

 

出个题,怎么把String里面的数字找出来呢?

Hi, 各位

出个题,看看大家有没有好的算法,^_^,

“I'm 22 years old”

把上面的String中的22找出来,

提示,MS的各类面试和笔试很喜欢这种东东哦。

脚本,代码,爱/恨?

Free OT,成为了我们Automation Test Team的自觉守则了,结果导致了Team Members全体光棍,不是说人不优秀,而是大家把全部时间贡献给了代码,不过欣慰的是我们真的热爱代码,这也是我们引以为毫的一点-爱代码!

恨,

在MS的Automation Test Team,特别是EM组,永远不知道新市场策略是什么,所以Automation Code一定要考虑的几个问题:

1. 跨平台,Windows 2003/XP/Vista (好在.net framework可以解决,但测试代码中一定尽量不要直接调用系统API,如果非要调用,也尽量通过WMI解决)

2. 多语言,简体,台湾繁体,香港繁体,西班牙,俄罗斯,这些LOC build上你的Automation Code能工作否?(一定不要Hard Code String,比较String也需要通过MUI机制转换成本地化的String,写Batch最头痛,也需要考虑不同语言上面的名称是否相同)

3. Automation Test Code是否有Memory Leak?能否经过Stress 和Long Haul test的考验?(不要以为.net语言就没有Memory Leak,当你的Code坚持不了24×10小时的时候,真的比较惭愧^_^)。

4. C#.C++,VB.NET,T-SQL, HTML, ASP.NET,XML, VBS, Batch 这些语言一个都不能少,作测试的,你不要以为一门语言打变天下,因为永远有不同挑战迎接着你(最最痛恨的就是一个19的LCD上面是一屏幕的C#代码,而另外一个LCD上面是一屏幕的VBS代码,恨死我了!!),哦,对了,还少了一个最新的PowerShell,给大家Show一下今天刚刚学的^_^,启用计算机中的Build-in Guest账户:

$a = Get-WmiObject win32_useraccount -filter "LocalAccount=True AND Name='Guest'";

$a.disabled=$false;

$a.Put();

还好,Windows Server 2008中已经集成了PowerShell了,再也不需要写VBS中那些别扭的VB语法了,而也解决了Batch中很多的问题,比如变量传递问题。

用我最常说的一句话,别人都认为我们是折腾计算机的人,实际上我们是被计算机折腾的人,

BTW,

看到这个Blog的单身MM,我们Team里面有很多很优秀的小伙子,^_^ 

 

当Administrator变成Administrador

呵呵,钓了大家一天,现在公布正确答案,

首先,大家看看标题,Administrador?,是我拼错了吗?(t->d)

不是,在西班牙文的Windows Vista中,英文的Administrator账户就是用Administrador来标识的(类似的还有俄文,德文系统)

那么我们的Batch就会遇到一个致命的问题,比如:

Net User Administrator /active:yes

这条语句,在西班牙文的系统上面就会执行失败,原因很简单,因为西班牙文的系统用Administrador代表Build-In administrator账户。

因此,在上一篇文章中的C#代码实际上是起到了一个名称翻译的作用,

其原理是,通过WMI的Win32_UserAccount 类

p.mpInterWMIPath = new ManagementPath(\\\\.\\root\\cimv2:Win32_UserAccount);

获得当前系统的所有账户实例,然后通过枚举每个实例的SID属性判断其是否为需要的账户,

因为Build-In Administrator的最后的SID是500, Guest是501。

上篇文章的工具应该怎么用来支持LOC语言的系统呢?

上面的代码可以通过VS.NET或者C#编译器进行编译,之后形成一个叫做USERS.exe的文件。

那么具体的解决方案如下:

1. 调用这个Users.exe将西班牙文系统上面的Build-in Administrator 账户写到一个TXT文件中,比如如下的Batch

@ECHO OFF

USERS.EXE Administrator > LOCNAME.txt

2. 使用For语句,从LOCNAME.txt文件中读取解析之后的Administrator名称(Administrador),比如如下的Batch

@ECHO OFF

for /f %%H IN (LOCNAME.txt) DO Net User %%H /active:yes

注意,上面的脚本都使用同一个工作文件夹。

当然,上一篇文章的代码只是一个Demo,因为不能将工作中的代码外泄的规定,所以只能写一个Mini版的,但基本的原理就是如上的东西了,

希望对大家工作有帮助。

贴一段代码,大家看看是干什么用的?^_^,

今天累晕了,现在还在公司呢,就不多罗嗦了,大家看看这段代码干什么用的,

其实是很有用的哦,特别是对跨国公司的IT Pro们 

 

using System;

using System.Management;

 

namespace USERS

{

    class Program

    {

        private ManagementClass mcInterWMIClass;

        private ManagementPath mpInterWMIPath;

 

        static void Main(string[] args)

        {

            try

            {

                if (args.Length != 1||args[0]=="")

                {

                    ShowUsage();

                }

                else

                {

                    Program p = new Program();

                    p.mpInterWMIPath = new ManagementPath("\\\\.\\root\\cimv2:Win32_UserAccount");

                    p.mcInterWMIClass = new ManagementClass(p.mpInterWMIPath);

                    ManagementObjectCollection moc = p.mcInterWMIClass.GetInstances();

 

 

                    string sidCompareString = string.Empty;

                        switch (args[0])

                        {

                            case "Administrator":

                                sidCompareString = "500";

                                break;

                            case "Guest":

                                sidCompareString = "501";

                                break;

                            default:

                                break;

                               

                        }

                   foreach (ManagementObject mo in moc)

                    {

                        string[] sidChars = mo.GetPropertyValue("SID").ToString().Split("-".ToCharArray());

                    if (sidChars[sidChars.Length - 1] == sidCompareString)

                    {

                      

                        Console.WriteLine(mo.GetPropertyValue("Name").ToString());

                        break;

                    }

                   }

                    Environment.Exit(0);

                }

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.Message);

                Environment.Exit(1);

            }

 

   

 

        }

 

        private static void ShowUsage()

        {

            Console.WriteLine("*Usage:");

            Console.WriteLine("*This tool will get the local accounts name by SID");

            Console.WriteLine("*Users.exe [AccountName]");

            Console.WriteLine("*Example: Users.exe Administrator");

            Environment.Exit(-1);

        }

       

    }

}

 

Windows XP Service Pack3 只是80+个Hotfix的集合?

Windows XP这个平台真的是太顽强了,挺过了多少个风雨了,慢慢的它的Hotfix在Service Pack2的基础上面也累计到了80多个,也该是Windows XP Service Pack3 出现的时刻了。

不过,关于Windows XP Service Pack3,大家还是不要把它同Service Pack2 相比,从目前安装完毕Service Pack3的机器上面来看,界面这里没有变化,顶多多了一个Windows XP Service Pack3的字样,不过感觉上,这次的Service Pack3基本上就是80多个Hotfix的集合了。

 

更多内容 下一页 »