【轉載】自動化測試體系整體解決方案探討
摘要: 一個完整的自動化測試框架體系包含以下幾個部分:1、自動化測試框架;2、測試腳本以及測試數(shù)據(jù)管理;3、測試腳本的執(zhí)行管理系統(tǒng);4、測試結果的顯示與分析系統(tǒng)。其中最重要的是自動化測試框架部分。 閱讀全文posted @ 2011-08-30 18:59 XXXXXX 閱讀(352) | 評論 (0) | 編輯 收藏
2011年3月7日 #
posted @ 2011-08-30 18:59 XXXXXX 閱讀(352) | 評論 (0) | 編輯 收藏
posted @ 2011-08-30 17:29 XXXXXX 閱讀(351) | 評論 (0) | 編輯 收藏
posted @ 2011-08-29 11:41 XXXXXX 閱讀(1854) | 評論 (1) | 編輯 收藏
posted @ 2011-08-28 23:47 XXXXXX 閱讀(333) | 評論 (0) | 編輯 收藏
posted @ 2011-08-23 13:25 XXXXXX 閱讀(394) | 評論 (0) | 編輯 收藏
posted @ 2011-08-23 09:25 XXXXXX 閱讀(362) | 評論 (0) | 編輯 收藏
posted @ 2011-08-19 23:24 XXXXXX 閱讀(1395) | 評論 (0) | 編輯 收藏
posted @ 2011-08-16 23:12 XXXXXX 閱讀(290) | 評論 (0) | 編輯 收藏
posted @ 2011-08-13 10:14 XXXXXX 閱讀(507) | 評論 (0) | 編輯 收藏
posted @ 2011-08-12 14:49 XXXXXX 閱讀(1218) | 評論 (0) | 編輯 收藏
posted @ 2011-07-31 08:53 XXXXXX 閱讀(249) | 評論 (0) | 編輯 收藏
posted @ 2011-07-29 11:53 XXXXXX 閱讀(262) | 評論 (0) | 編輯 收藏
posted @ 2011-07-25 11:42 XXXXXX 閱讀(313) | 評論 (0) | 編輯 收藏
posted @ 2011-07-21 23:25 XXXXXX 閱讀(254) | 評論 (0) | 編輯 收藏
posted @ 2011-07-21 09:21 XXXXXX 閱讀(218) | 評論 (0) | 編輯 收藏
posted @ 2011-07-15 22:30 XXXXXX 閱讀(316) | 評論 (0) | 編輯 收藏
posted @ 2011-07-10 10:08 XXXXXX 閱讀(2616) | 評論 (0) | 編輯 收藏
posted @ 2011-07-09 09:38 XXXXXX 閱讀(243) | 評論 (0) | 編輯 收藏
posted @ 2011-07-08 09:37 XXXXXX 閱讀(1577) | 評論 (0) | 編輯 收藏
posted @ 2011-06-18 15:25 XXXXXX 閱讀(693) | 評論 (1) | 編輯 收藏
看看 project euler 的第一道題:
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000.
用 python 語言寫出來是:
posted @ 2011-06-17 20:26 XXXXXX 閱讀(4387) | 評論 (2) | 編輯 收藏
This is the first edition of what is expected to become a recurring series on InfoQ. The idea behind this minibook is that a number of InfoQ articles and interviews which deal with a particular topic (in this case, REpresentational State Transfer, or REST) are combined together to provide a detailed exploration suitable for both beginners and advanced practitioners.
Read More: http://www.infoq.com/minibooks/emag-03-2010-rest;jsessionid=1E2375E822D980824403DAD46588FAFE
posted @ 2011-06-15 12:39 XXXXXX 閱讀(250) | 評論 (0) | 編輯 收藏
#定義:如果在一個內部函數(shù)里,對在外部作用域(但不是在全局作用域)的變量進行引用,那么內部函數(shù)就被認為是閉包(closure)
分解來說,包含下面3個條件:
1) 需要函數(shù)嵌套, 就是一個函數(shù)里面再寫一個函數(shù).
2) 外部函數(shù)需要返回一個內部函數(shù)的引
3) 外部函數(shù)中有一些局部變量, 并且, 這些局部變量在內部函數(shù)中有使用
一些概念:
1)自由變量: 外部函數(shù)中定義的局部變量, 并且在內部函數(shù)中被使用
2) 閉包: 那個使用了自由變量并被返回的內部函數(shù)就稱為閉包
#支持閉包的語言有這樣的特性:
1)函數(shù)是一階值(First-class value),即函數(shù)可以作為另一個函數(shù)的返回值或參數(shù),還可以作為一個變量的值
2)函數(shù)可以嵌套定義,即在一個函數(shù)內部可以定義另一個函數(shù)
#代碼示例
posted @ 2011-06-15 07:31 XXXXXX 閱讀(1310) | 評論 (0) | 編輯 收藏
posted @ 2011-06-14 16:57 XXXXXX 閱讀(1085) | 評論 (0) | 編輯 收藏
posted @ 2011-06-12 23:58 XXXXXX 閱讀(303) | 評論 (0) | 編輯 收藏
posted @ 2011-06-06 16:03 XXXXXX 閱讀(342) | 評論 (0) | 編輯 收藏
posted @ 2011-06-04 16:08 XXXXXX 閱讀(245) | 評論 (0) | 編輯 收藏
posted @ 2011-06-04 16:08 XXXXXX 閱讀(265) | 評論 (0) | 編輯 收藏
posted @ 2011-06-04 15:54 XXXXXX 閱讀(294) | 評論 (0) | 編輯 收藏
posted @ 2011-06-04 15:43 XXXXXX 閱讀(263) | 評論 (0) | 編輯 收藏
posted @ 2011-06-04 10:44 XXXXXX 閱讀(293) | 評論 (0) | 編輯 收藏
posted @ 2011-06-02 11:00 XXXXXX 閱讀(276) | 評論 (0) | 編輯 收藏
posted @ 2011-06-01 14:52 XXXXXX 閱讀(343) | 評論 (0) | 編輯 收藏
posted @ 2011-05-31 11:06 XXXXXX 閱讀(550) | 評論 (0) | 編輯 收藏
posted @ 2011-05-31 09:31 XXXXXX 閱讀(291) | 評論 (0) | 編輯 收藏
posted @ 2011-05-30 08:10 XXXXXX 閱讀(703) | 評論 (0) | 編輯 收藏
posted @ 2011-05-29 10:20 XXXXXX 閱讀(264) | 評論 (1) | 編輯 收藏
posted @ 2011-05-29 09:48 XXXXXX 閱讀(287) | 評論 (1) | 編輯 收藏
By James Whittaker
I’ve had a number of questions about the SET role and it seems I have confused folks when I say that the SWE is a tester and the SET is a tester and at the same time the SWE is a developer and the SET is a developer. What could possibly be confusing about that?
Oh, yeah. Right.
My next series of posts are going to detail the role of the SET and all will eventually be clear but some clarification on career path seems worthwhile.
SETs are developers who write test code and automation as their primary task. They are in every sense of the word a developer. When we interview SETs, SWEs are on the interview loop and SWE questions are asked. They are not all of the interview, but they are part of it.
This means that the skill set that our SETs possess makes them perfect candidates for switching to the SWE role. There is neither incentive nor deterrent to do so. SETs and SWEs are on the same pay scale and bonus structure (I have both roles reporting to me so I have real visibility into salary data) and their promotion velocity (again based on actual data) is roughly equivalent. This means that SETs have no outside influences to prompt them one way or the other.
The key factor is really the type of work you are doing. SETs who find themselves involved in SWE work usually convert to SWE. SWEs are also drawn in the opposite direction. Much of this happens through our 20% time work. Any SET interested in SWE work can take on a 20% task doing feature development. Any SWE interested in automation can find a group and sign up for a 20%. Right now I have both SWEs and SETs involved in such cross pollination.
The ideal situation is that the title reflects the actual work that you are involved in. So if an SET starts doing more feature dev work than automation, he or she should convert, same for SWEs doing automation work. In my time here, conversions in both directions have happened, but it is not all that common. The work of both roles is engaging, interesting and intense. Few Googlers are walking around bored.
Bottom line: do the work you are passionate about and capable of and the right job title will find you.
posted @ 2011-05-25 00:04 XXXXXX 閱讀(282) | 評論 (0) | 編輯 收藏
posted @ 2011-05-24 16:54 XXXXXX 閱讀(1630) | 評論 (1) | 編輯 收藏
記錄關于REST的一些技術:
1、REST簡介:http://zh.wikipedia.org/zh/REST
2、InfoQ 深入淺出REST: http://www.infoq.com/cn/articles/rest-introduction
posted @ 2011-05-10 22:07 XXXXXX 閱讀(321) | 評論 (0) | 編輯 收藏
posted @ 2011-05-10 22:02 XXXXXX 閱讀(436) | 評論 (0) | 編輯 收藏
posted @ 2011-05-07 15:35 XXXXXX 閱讀(648) | 評論 (0) | 編輯 收藏
posted @ 2011-05-07 15:10 XXXXXX 閱讀(260) | 評論 (0) | 編輯 收藏
posted @ 2011-05-07 09:58 XXXXXX 閱讀(186) | 評論 (0) | 編輯 收藏
posted @ 2011-04-29 22:36 XXXXXX 閱讀(367) | 評論 (0) | 編輯 收藏
posted @ 2011-04-28 11:59 XXXXXX 閱讀(227) | 評論 (0) | 編輯 收藏
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
posted @ 2011-04-18 09:10 XXXXXX 閱讀(353) | 評論 (0) | 編輯 收藏
posted @ 2011-04-05 10:34 XXXXXX 閱讀(433) | 評論 (0) | 編輯 收藏
posted @ 2011-04-04 00:08 XXXXXX 閱讀(1149) | 評論 (0) | 編輯 收藏
posted @ 2011-03-22 20:23 XXXXXX 閱讀(477) | 評論 (3) | 編輯 收藏
dstat -ta --output osstat.csv
posted @ 2011-03-17 00:19 XXXXXX 閱讀(801) | 評論 (0) | 編輯 收藏
1. 安裝JDK
http://wiki.ubuntu.org.cn/Java%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE
2. 安裝Python
1). apt-get install python
2). PyDev for eclipse:
Name:PyDev,Location:http://pydev.org/updates
Ref:http://www.cnblogs.com/Realh/archive/2010/10/10/1847251.html
3. 安裝dstat--性能監(jiān)測工具
apt-get install dstat
posted @ 2011-03-16 19:46 XXXXXX 閱讀(220) | 評論 (0) | 編輯 收藏
下面是來自 Taobao QA Team中的安全測試方面的文章,對初學者很有指導意義
安全測試學習筆記系列:
1. http://qa.taobao.com/?p=11352
2.http://qa.taobao.com/?p=11363
3.http://qa.taobao.com/?p=11472
4.http://qa.taobao.com/?p=11479
5.http://qa.taobao.com/?p=11484
------
WEB漏洞攻擊之SQL注入:http://qa.taobao.com/?p=11403
posted @ 2011-03-15 15:54 XXXXXX 閱讀(386) | 評論 (0) | 編輯 收藏
posted @ 2011-03-09 15:59 XXXXXX 閱讀(216) | 評論 (0) | 編輯 收藏
數(shù)組類Array是Java中最基本的一個存儲結構。它用于存儲一組連續(xù)的對象或基本類型的數(shù)據(jù)。其中的元素的類型必須相同。
Array是最有效率的一 種:
1、效率高,但容量固定且無法動態(tài)改變。 Array還有一個缺點是,無法判斷其中實際存有多少元素,length只是告訴我們Array的容量。
2、Java中有一個Arrays類,專門用來操作Array,提供搜索、排序、復制等靜態(tài)方法。 equals():比較兩個Array是否相等,Array擁有相同元素個數(shù),且所有對應元素兩兩相等。 fill():將值填入Array中。 sort():用來對Array進行排序。 binarySearch():在排好序的Array中尋找元素。 System.arraycopy():Array的復制。
Java Collections Framework成員主要包括兩種類型,即:Collection和Map類型。 在Java中提供了Collection和Map接口。其中List和Set繼承了Collection接口;Vector、ArrayList、 LinkedList三個類實現(xiàn)List接口,HashSet、TreeSet實現(xiàn)Set接口,HashTable、HashMap、 TreeMap實現(xiàn)Map接口。由此可見,Java中用8種類型的基本數(shù)據(jù)結構來實現(xiàn)其Collections Framework;下面分別進行介紹。
Vector:基于Array的List,性能也就不可能超越Array,并且Vector是"sychronized"的,這個也是Vector和ArrayList的唯一的區(qū)別。
ArrayList:同Vector一樣是一個基于Array的,但是不同的是ArrayList不是同步的。所以在性能上要比Vector優(yōu)越一些,但 是當運行到多線程環(huán)境中時,可需要自己在管理線程的同步問題。從其命名中可以看出它是一種類似數(shù)組的形式進行存儲,因此它的隨機訪問速度極快。
LinkedList:LinkedList不同于前面兩種List,它不是基于Array的,所以不受Array性能的限制。它每一個節(jié)點(Node) 都包含兩方面的內容:
1、節(jié)點本身的數(shù)據(jù)(data);
2、下一個節(jié)點的信息(nextNode)。所以當對LinkedList做添加,刪除動作的時候 就不用像基于Array的List一樣,必須進行大量的數(shù)據(jù)移動。只要更改nextNode的相關信息就可以實現(xiàn)了所以它適合于進行頻繁進行插入和刪除操 作。這就是LinkedList的優(yōu)勢。Iterator只能對容器進行向前遍歷,而 ListIterator則繼承了Iterator的思想,并提供了對List進行雙向遍歷的方法。
List總結:
1、所有的List中只能容納單個不同類型的對象組成的表,而不是Key-Value鍵值對。例如:[ tom,1,c ];
2、所有的List中可以有相同的元素,例如Vector中可以有 [ tom,koo,too,koo ];
3、所有的List中可以有null元素,例如[ tom,null,1 ];
4、基于Array的List(Vector,ArrayList)適合查詢,而LinkedList(鏈表)適合添加,刪除操作。
HashSet:雖然Set同List都實現(xiàn)了Collection接口,但是他們的實現(xiàn)方式卻大不一樣。List基本上都是以Array為基礎。但是 Set則是在HashMap的基礎上來實現(xiàn)的,這個就是Set和List的根本區(qū)別。HashSet的存儲方式是把HashMap中的Key作為Set的 對應存儲項,這也是為什么在Set中不能像在List中一樣有重復的項的根本原因,因為HashMap的key是不能有重復的。HashSet能快速定位 一個元素,但是放到HashSet中的對象需要實現(xiàn)hashCode()方法0。
TreeSet則將放入其中的元素按序存放,這就要求你放入其中的對象是可排序的,這就用到了集合框架提供的另外兩個實用類Comparable和 Comparator。一個類是可排序的,它就應該實現(xiàn)Comparable接口。有時多個類具有相同的排序算法,那就不需要重復定義相同的排序算法,只要實現(xiàn)Comparator接口即可。TreeSet是SortedSet的子類,它不同于HashSet的根本就是TreeSet是有序的。它是通過SortedMap來實現(xiàn)的。
Set總結:
1、Set實現(xiàn)的基礎是Map(HashMap);
2、Set中的元素是不能重復的,如果使用add(Object obj)方法添加已經(jīng)存在的對象,則會覆蓋前面的對象; Set里的元素是不能重復的,那么用什么方法來區(qū)分重復與否呢? 是用==還是equals()? 它們有何區(qū)別? Set里的元素是不能重復的,即不能包含兩個元素e1、e2(e1.equals(e2))。那么用iterator()方法來區(qū)分重復與否。 equals()是判讀兩個Set是否相等。==方法決定引用值(句柄)是否指向同一對象。
HashMap、TreeMap、Hashtable:
1、HashMap也用到了哈希碼的算法,以便快速查找一個鍵,TreeMap則是對鍵按序存放,因此它有一些擴展的方法,比如 firstKey(),lastKey()等。
2、Hashtable:不允許空(null)鍵(key)或值(value),Hashtable的方法是Synchronize的,在多個線程訪問 Hashtable時,不需要自己為它的方法實現(xiàn)同步,而HashMap 就必須為之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。
3、HashMap和Hashtable的區(qū)別:HashMap是Hashtable(線程案例的)的輕量級實現(xiàn)(非線程安全的實現(xiàn)),他們都完成了Map接口。主要區(qū)別在于HashMap允許空(null)鍵(key)或值(value),非同步,由于非線程安全,效率上可能高于Hashtable。
Map總結:
是一種把鍵對象和值對象進行關聯(lián)的容器,Map有兩種比較常用的實現(xiàn): HashTable、HashMap和TreeMap。
posted @ 2011-03-07 14:25 XXXXXX 閱讀(1585) | 評論 (0) | 編輯 收藏