-
51培训结束了
2008-12-20 21:50:23
12月19号,在51testing的培训结束了。
7月16号,第一天来上课,我是8:45到的课室,但已经坐满了人~~51的传统,第一天不讲课,发教材,讲51历史,讲课程安排,而且还要自我介绍。那天,我看到了徐老师,朴老师,盛老师。
每一节课都非常认真的听讲,真的从未这么认真过。可能是因为高额的学费,可能是因为就业的压力,可能是因为班上的氛围。
每个星期一三五上课,二四六自习or休息,就这样重复着。
不知道什么时候,突然来了一个漂亮的老师,魏老师。哦,原来是我们班主任哦,呵呵~~同学们都非常高兴。那些天,我看魏老师都是好悠闲的过日子。
也不知道什么时候,金融危机降临了,当时还没有什么感觉。
后来,班上有几个大四还没毕业的同学要回学校弄他们的毕业论文,提前离开了51。
再后来,就开始推荐就业了,不少的同学开始找工作了。我当时还不急,只是随随便便投了几个公司。但是,一直都没有回音,班上的同学也陆陆续续的离开了,来上课的人变得越来越少了。徐老师之前讲过,越到后面,心就越急了。确实如此,看着大家都离去了,自己还在这里,真有一种说不出的感受,偶尔只能用“他们浪费了培训的金钱”之类的借口来安慰自己了。
之后就开始疯狂的投递简历,但可能因为是刚毕业,没有工作经验,所以网上投的根本就没有回应。
到最后一周,每天就那5-8个人来上课,大家都没有什么心思听课了。
一直以为自己不会是最后走的人,怎么知道...看着大家都把自己卖出去了,自己却还在这,自信心确实受到不小的打击。不过谢谢各位老师给我的鼓励,呵呵~~谢谢你们!!
昨天,最后一天上课,因为魏老师推荐,所以有了一次去文思创新面试的机会,早上去了,下午回来,人都走光了。看着空荡荡的教室,回想起这5个月的点点滴滴。
其实自从推荐就业以来,魏老师一直都忙着帮我们找企业,都希望我们能找到好的工作,每天很晚才下班。今天又有一个面试机会,大家都回学校面试,刚好给我看到魏老师的打卡记录,这些日子,老师都是8点多到学校,晚上10点多11点才走的。魏老师,辛苦你了。
来51testing培训,学到了很多,也因为这里,得到了更多的机会。
加入了51,就等于加入了一个黑社会!!我们在测试这一行,是有很多人脉的,呵呵!!
祝愿51发展的更好,这样,我们学员也就走得更好了,呵呵!!!
谢谢51,谢谢各位老师!!
-
QTP小结
2008-11-25 16:11:40
昨天朴老师给我们上了一天QTP的总结,朴老师实在喜欢折腾人。还记得月初的一次模拟面试,学习了3个多月,感觉自己还是挺牛的嘛,不过朴老师的技术面试简直是把我的自信心给完全打碎了。技术牛的人,就是喜欢深究,他问一个问题,你回答上了,他就会不停的在你的回答中寻找下一个问题,直至把你问倒!
印象很深刻的一个问题,GUI功能测试和性能测试的区别:GUI是基于开发语言的,而性能测试是基于协议的。
QTP识别对象的原理:QTP要求先在仓库文件里定义仓库对象,里面存有实际对象的特征属性的值,运行的时候,QTP会根据仓库对象的特征属性描述,寻找到实际对象,然后操作实际对象。
QTP对象中有两个很重要的东西,就是Test Object(简称TO)和Runtime Object(简称RO)。根据字面意思,TO是静态的,RO是动态的,我们做自动化测试,大部分是使用动态数据,所以RO用得比较多。对于这两个概念,网上有很多资料,大家可以去搜搜看。昨天上课主要是做计算器的自动化框架,因为是数据驱动框架,所以分三层设计:配置层,驱动层,执行层。
首先是配置层,就是读取config.txt配置文件,选取具体的数据来源(Access,SQL,Excel,File)。然后把配置文件内容传给驱动层,由驱动层选择相应的执行函数。编写完基本框架后,就是写增强型代码了。读取路径函数,自己通过Descrīption.Create()创建对象,减小对象库的空间。最后还可把代码放入lib.vbs中,在QTP加入相关vbs文件,即可直接调用相关函数,大大简化QTP中的代码行数。
经过一天的努力,竟然写出一个近200行的代码,嗯,就像老师说的,感觉很爽,呵呵~~
明天就是徐老师的LoadRunner,要养足精神,好好听课!
'-------------------------------------------------------------------
Dim dirpath
dirpath = folder_path '保存相对路径Dim sumresult
SystemUtil.Run "calc.exe"
Call Config_Level'-------------------------------------------------------------------
'#########################################
'# 创建对象
'#########################################
Sub Object_Create(str_x_Button)
Set Win_Calc=Descrīption.Create()
Win_Calc("regexpwndtitle").Value="计算器"
Win_Calc("regexpwndclass").Value="SciCalc"Set Win_Calc_Btn=Descrīption.Create()
Win_Calc_Btn("text").Value=str_x_Button
Win_Calc_Btn("nativeclass").Value="Button"Window(Win_Calc).WinButton(Win_Calc_Btn).Click
Set Win_Calc_Btn=Nothing
Set Win_Calc=NothingEnd Sub
'-------------------------------------------------------------------
'#########################################
'# 得到相对路径
'#########################################
Function folder_path()
Dim str_full_path 'as string
Dim str_testname 'as string
str_full_path = Environment("TestDir")
str_testname = Environment("TestName")
folder_path = mid(str_full_path,1,len(str_full_path) - len(str_testname) -len( "scrīpt")-1)
End Function'-------------------------------------------------------------------
'######################################
'# 点击函数
'######################################
Function operation(num1,num2,operate)
Dim tmp1
Dim tmp2
i = 1
While i <= len(num1)
tmp1 = mid(num1,i,1)
Object_Create tmp1
i = i + 1
Wend
Object_Create operate
j = 1
While j <= len(num2)
tmp2 = mid(num2,j,1)
Object_Create tmp2
j = j + 1
Wend
Object_Create "="
End Function'-------------------------------------------------------------------
'配置层
'读取配置文件
Sub Config_Level
Dim fsoconfig
Dim fconfig
Set fsoconfig = CreateObject("scrīpting.FileSystemObject")
Set fconfig = fsoconfig.OpenTextFile(folder_path + "\config\config.txt",1,False)Do While fconfig.AtEndOfLine <> True
str_Config = fconfig.ReadLine
Driver_Level str_Config
Loopfconfig.Close
Set fconfig = Nothing
Set fsoconfig = Nothing
End Sub'-------------------------------------------------------------------
'驱动层
Sub Driver_Level(s_Config)
Dim str_file
Dim i
str_file = split(s_Config,",")
For i = lbound(str_file) to ubound(str_file)
Select Case str_file(i)
Case "auto"
Execute_AutoSource
Case "f"
Execute_FileSource
End Select
Next
End Sub'-------------------------------------------------------------------
'执行层
'######################################
'# 使用access数据库
'######################################
Sub Execute_AccessSource
Dim Conn 'as Adodb.Connection
Dim Rst 'as Adodb.RecordSet
Set Conn = CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + folder_path + "\data\data.mdb;Persist Security Info=False"
Set Rst = CreateObject("ADODB.RecordSet")
Rst.Open "select * from actest",ConnRst.MoveFirst
Do While Rst.Eof<>True
acnum1 = Rst.Fields(1)
acnum2 = Rst.Fields(2)
acoperate = Rst.Fields(3)
operation acnum1,acnum2,acoperate
Rst.MoveNext
Loop
End Sub'######################################
'# 使用txt文件
'######################################
Sub Execute_FileSource
Dim fso
Dim f
Set fso = CreateObject("scrīpting.FileSystemObject")
Set f = fso.OpenTextFile(folder_path + "\data\data.txt",1,False)Do While f.AtEndOfLine <> True
str_temp = f.ReadLine
temp_split = split(str_temp,",")
num1 = temp_split(0)
num2 = temp_split(2)
ōperate = temp_split(1)
operation num1,num2,operate
Loopf.Close
Set f = Nothing
Set fso = Nothing
End Sub'######################################
'# 自动产生随机数和操作符
'######################################
Sub Execute_AutoSource
Dim num1
Dim operate
Dim num2
Dim result'随机数1
num1 = 10 * Rnd
'随机数2
num2 = 1000 * Rnd
'随即操作符
Randomize
operate_temp = Int((4 * Rnd) + 1)
Select Case operate_temp
Case 1
ōperate = "+"
Case 2
operate = "-"
Case 3
operate = "*"
Case 4
operate = "/"
End Selectoperation num1,num2,operate
End Sub'######################################
'# 使用Excel数据
'######################################
Sub Execute_ExcelSource
DataTable.Import(folder_path + "\data\data.xls") '把excel数据导入default.xls中临时存放
DataTable.SetCurrentRow (1)
For i_Record_Count = 1 to DataTable.GetRowCount
operation DataTable("exnum1","Global"), DataTable("exnum2","Global"), DataTable("exoperate","Global")
DataTable.SetNextRow
Next
End Sub
'-------------------------------------------------------------------
本人编码能力较差,代码是给自己留念和日后参考。 有许多漏洞,请各位见谅。 -
想做好测试,必须要不断的思考!
2008-11-16 22:16:19
上星期,北京的马林老师给我们上了两天的课,虽然时间短暂,但老师给了我好多信息。
之前可能收理论课程的影响,在做项目测试的时候,编写用例,都是非常的死板。看到输入框就是等价类,边界值。看到有下拉列表或者复选框,就选正交分析。思想好像就被固化掉了~
马林老师刚到,就说要我们测“海达票务”,又是海达,又是测试。原本还以为要重复劳动了。第一次的分析,基本上和第一阶段时没啥区别,因为一直以来都只是上课听老师灌输知识,学到什么是什么,很少去思考真正应该怎样测试。
但当其中一组在介绍功能点时,就发现了我们的不足,很严重的不足。对于一个被测试软件,我们只是看其表面,基本上是根据GUI去测试的。但经过马林老师的讲解,发现好多好多可测试点。要从软件的界面,输入框,去抠程序内部的一些逻辑问题,然后再分析这些逻辑,找出测试点。
例如一个“船票查询”功能,有很多的组合,想当然的就使用正交分析,但如果要真正组合,那需要很多的用例啊。接着老师给我们分析,里面有一个工号和用户名两个可选项,如果有一个工号是000,用户名为admin的用户,我们选择工号001,用户名admin,查询的结果为空。这说明什么呢?!就是说明程序内部这个查询功能的select语句是使用and来连接所有的条件。
这样分析之后,就发现用正交分析法是多余的了。选择所有条件组合测一遍就已经可以把所有组合都测试完毕了。因为使用and,你抽取某两个选项来测试,只是在and语句中去掉某些条件,那全部都能通过,其中的几个一样也能通过。
通过马林老师这样的讲解,我真正明白了,测试不是那么简单,51也不仅仅是培训。第一阶段,xulinlin老师讲的理论知识非常重要,这是基础,只有打好地基,才能把楼建得更高,更好!每一个老师来讲课,都能吸收不同的思想。
想做好测试,必须要不断的思考!
-
SugarCRM项目心得1
2008-10-09 17:04:37
放假回来以后,就进入到SugarCRM项目的实战了。
做一个项目,首先要了解当前项目的基本知识。首先要了解什么是CRM,这个去Google一把,就一堆答案了。CRM的三大功能一定要记住:销售管理,市场管理,服务管理。然后就是对测试的项目的了解。由于我们是使用SugarCRM这个开源的客户关系管理系统,所以,没有需求说明书,我们只能依靠纯英文的用户手册来自己总结出一些功能点,作为以后设定计划和方案的测试项。
由于系统比较庞大,所以老师是给我们分组进行的。我们小组是负责Calendar和Activities模块。一上来,老师就直接叫我们阅读文档,然后总结功能点。由于之前没有任何经验,所以无从下手,只能依靠英语知识,来翻译用户手册。最后交付给老师的文档,是我们小组5人总结出来的内容。但经过老师课上的讲评,这是功能点的总结,而不是翻译。我们需要对文档仔细的阅读,对该模块内存在的功能点描述清楚就可以了。
其实Calendar模块和Activities模块是有密切关系的两个模块。在我的理解,Calendar是对时间表的一个大致了解,能够知道你某个时间段内各活动的时间安排。Activities模块则是对活动的内容进行细化,安排每一个活动的细节内容。
Calendar模块:
1.以日视图,周视图,月视图,年试图,共享模式查看时间表
2.安排电话
3.安排会议
4.添加任务
5.电话管理
6.会议管理
7.任务管理Activities模块:
1.安排电话
2.安排会议
3.添加任务
4.电话管理
5.会议管理
6.任务管理
(以上功能同Calendar模块)
7.创建备忘录和附件
8.添加存档电子邮件(电子邮件模块)
9.备忘录管理
10.存档电子邮件管理(电子邮件模块)
11.今日管理
12.导入备忘录
13.搜索功能
14.批量增加Activities模块是销售活动模块,它规定了具体的活动内容,而且与许多模块都有关联,例如Account,Opportunities等模块,这说明销售活动模块是这个系统内的一个主流程。是最重要的功能之一。
-
第一阶段结束了~~
2008-09-13 10:00:46
从7月16号,到9月10号。第一阶段的学习结束了,也迎来了第一次的考试。
首先说一下51吧。51的教学方法是1,3,5上课;2,4,6,7休息。我认为这是一种很好的教学方式,我很喜欢。因为这样,对于没有基础的同学(例如我),可以在休息的时候,恶补自己的计算机基础知识,什么编程语言啊,数据库知识,数据结构之类的。还可以给自己时间去消化课堂上的知识。如果没弄懂,又没时间精力去搞明白,然后第二天接着上课,这样,问题就会越积越多!回想起刚入学的时候,对软件测试毫无了解的我,经过51史上最有智慧的男人,xulinlin老师的教导后,终于对软件测试有了基本的了解。
从小学开始,就不太喜欢学习的我,笔记自然也就很少。但是,在51这里,良好的学习氛围,还有就是面临着以后工作的压力,使得我真正的有了改变。第一阶段我就记了满满一本笔记本的笔记,自己看到还会觉得有些恐怖。因为我之前是读通信专业的,只是自己对电脑,对编程的热情,使自己对计算机系的内容有所了解,不过也就停留在皮毛上。
好了,废话就说这么多,正式进入正题。
软件测试基础,就像徐老师说的,其实所有的东西基本都是围绕这三个方面,就是成本,质量,进度。测试过程,软件质量,测试方法,各类的管理,个种测试类型等等,最终需要解决的就是怎样使这三方便达到一个平衡,或者说使他们的关系更符合你公司,你的产品的需要。
第一阶段的内容,基本都是理论知识为主,都是基础内容。基础很重要,我已经是感受良多。小时候,对英语的热情,还有就是和朋友一起去参加补习,所以英语基础好。所以,初中,高中,大学的英语都能够学得比较轻松。但数学,语文,因为基础太差,所以无论怎么学,感觉都还是很困难。(本人文采基本为0,所以文章有什么问题,希望大家见谅)所以,大家一定要记住,有好的基础,才能使你更轻松的往上发展!
这一次的考试,说难嘛,不会很难,说容易嘛,又有很多小问题会在复习的时候被忽略掉。好像“在oracle中,如何使用Sql*Plus查看表的表结构”;“在oracle中,使用什么命令过滤掉有重复的内容”;还有就是简答题,换一种问法,自己就不知道改怎么回答了,“谈谈你对Bug的认识”之类的。这还是因为自己平时忽略了一些问题,只是看笔记,但没有真正的去思考,去总结。
说到总结,这真的很重要。如果记了笔记,背了笔记,你把考试考完了,基本上就忘了。所以,看笔记的时候,一定要结合几本参考书,上网找找相关资料,去理解,去总结!这样,你才能够真正把老师讲的变成你的东西。
不知道以后会不会有什么师弟们会在搜索的时候,搜到我这篇东西呢。
再给要准备第一阶段的人一个提醒,就是上课一定要认真听!!练习和作业一定要认真做!!因为题目很有可能是做过的!!还有,就是如果开通了权限,可以到“就业专版”,有一个同志非常厉害的用Mindjet MindManager Pro 7做了第一阶段各知识点的概括,总结。是一个非常不错复习资料!!
好了,第二阶段开始了!!!真正的动手了~~~要继续努力!!!要记得自己入学时的计划,承诺!
标题搜索
我的存档
数据统计
- 访问量: 13711
- 日志数: 16
- 建立时间: 2008-08-05
- 更新时间: 2012-03-07