The 10 Commandments of Load Testing
http://www.myloadtest.com/ten-commandments-of-load-testing/

以下是你在做load testing, 要小心的十件事情

1. 你需要知道test toll是如何運作的
- The worst performance testers I have met were always more concerned about whether they could get their scripts to run, rather than whether the tests they were running were realistic.
- Read the documentation, practice, spend some time figuring out what all the settings do, then relate how your scripts are running back to how real users exercise your application.

2. 你需要收集真實的在運作或使用的資料
- Garbage in, garbage out. If your transaction volumes are wrong, then your load test is wrong.

3. 你需要有可測試的requirements.
- Non-functional requirements (especially load and performance-related requirements) are usually an afterthought for many projects.
- This shouldn’t stop you from trying to gather the requirements you need for your tests.
- The business approach of “let us know how fast it is, and we will let you know if that’s okay” isn’t good enough.
- Get some numbers. The numbers can change in the future (maybe call them “targets” or “guidelines” rather than “requirements”), but you need something to test against before you start.

4. 你應該要撰寫測試計劃
- Even if you already know what you’re going to be doing, other people would probably like to know too - they might even be able to help.
- A a signed-off test plan has saved many a tester from the wrath of project management.

5. 你應該要測試最差的狀況
- Don’t test with transactions from an average day, test for the busiest day your business has ever had.
- Add a margin for growth.
- Testing failover? A server doesn’t fall over at midnight when no one is using your application (would we care in this situation anyway?), it falls over in the middle of the day when lots of real people are using it.

6. 你需要監控你的測試環境
- Monitoring your servers allows you to more easily figure out where the problem is.
- You can also make neat observations like “response times for the new version of the application are the identical to the previous version, but CPU utilisation on the servers has increase by 10%”
- When I say “monitor your servers”, this includes your load generators.

7. 必須要對你的測試環境做change control
- The final thing you tested should be what is deployed into Production - same application version, same system configuration.
- It’s easy to lose track of what you are actually testing against if people are making uncontrolled changes to your environment, or if people are making tuning changes without tracking what they are changing.
- Keep a list of changes that are made…even if you are in a hurry; and always make sure you know what you are testing against.

8. 你應該要使用 defect tracking tool.
- An untracked defect is a little like a tree that fall in the forest when no-one is around - no-one cares.
- Raising defects lets everyone know there is a problem
- It also provides a neat repository to keep track of all the things that have been tried to fix the problem.

9. 在submit defect之前, 你應該先確認那不是你的問題或是工具的問題
- “Oops, my bad!” is a great way to lose credibility with the people who are going to be fixing your defects.
- If you don’t have credibility, you are going to have to work much harder to convince people that the problem you are seeing is due to a fault with the system rather than a fault with your test scripts.
- Don’t be so afraid of making a mistake that you test “around” errors (like people who see HTTP 500 errors under load and “solve” the problem by changing their scripts to put less load on the system).

10. 你應該要傳遞你的知識給相關的人
- Write a Test Summary Report and let management know what you found (and fixed) during testing, make some PowerPoint slides, hold a meeting.
- Let the Production monitoring group know which metrics are useful to monitor, let them re-use your LoadRunner scripts for Production monitoring with BAC.
- Leave some documentation for future testers; don’t make them gather requirements and transaction volumes again, or re-write all your scripts because they don’t understand them.
- Retain your test results until you are sure that no-one is going to ever ask about the results of that test you ran all those months ago.

kojenchieh 發表在 痞客邦 留言(0) 人氣()

Insoucing, Outsourcing, Crowdsourcing, or Testsourcing?


最近我們一群manager再討論, 接下來要研究哪些主題, 其中有一個topic是outsourcing. 雖然有些team已經開始這樣做了, 但是大部分的team還是不熟悉這樣的流程或是model, 並且其中有些team反應的結果也並不十分理想. 所以這個主題是值得研究一下, 不過目前手邊可找的資料真的很少, 實在不知如何下手

不過等到我看到這篇文章時, 當場我就覺得我們又落後人家一大段了. 他提到外包可分成四個階段: Insoucing, Outsourcing, Crowdsourcing, 和 Testsourcing. 說真的, 後面兩各聽都沒聽過. 可是我們現在還在第二階段的初期, 看起來要學的東西還真多啊.

the future of software testing (part 1)
http://blogs.msdn.com/james_whittaker/archive/2008/08/20/the-future-of-software-testing-part-1.aspx

Generation                   Role of Vendors
(1st) Insourcing              Provide tools
(2nd) Outsourcing          Provide testing (which subsumes the tools)
(3rd) Crowdsourcing      Provide testers (which subsumes the testing and tools)
(4th) Testsourcing         Provide test artifacts (which subsumes the testers, testing and tools)

1. Insourcing
- Testing was performed by insourcers, people employed within the same organization that wrote the software.
- Developers and testers (often the same people performing both tasks) worked side by side to get the software written, tested and out the door.
- The vendors’ role in the insourcing days was to provide tools that supported this self service testing.

2. Outsourcing
- Instead of just providing tools to insourcers, vendors emerged that provided testing itself.
- We call this outsourcing and it is still the basic model for the way many development shops approach testing: hire it out.

3. Crowdsourcing (眾包, 群眾外包)
- Crowdsourcing is a neologism for the act of taking a task traditionally performed by an employee or contractor, and outsourcing it to an undefined, generally large group of people, in the form of an open call.
- Throw it to the crowd (uTest). Vendors provide testers.
- 我找了一些相關的文章解釋crowdsourcing, 應該會幫助大家比較好了解
http://en.wikipedia.org/wiki/Crowdsourcing
http://mmdays.com/2007/10/06/crowdsourcing_1/
http://mr6.cc/?p=592

4. Testsourcing
- Vendors provide tests themselves.
   a. Need reusable test assets.
   b. Sharable environments.
- 老實說, 我還是不懂作者在講什麼, 在網路上也沒有好的解釋. 如果大家有資料, 再歡迎分享.

kojenchieh 發表在 痞客邦 留言(0) 人氣()

Microsoft 對QA人員的策略

最近我們和Microsoft有密切的合作, 最主要是想增進我們公司整體軟體開發的能力. 在昨天的會議中, 提到了Microsoft對QA人員的策略, 它讓我想到之前看過的一篇文章. 第一次瞄到時, 還不是很注意. 現在看起來, Microsoft很早就打定這樣的主意.

Test Automation - Takes toll of Microsoft Testers ....
http://shrinik.blogspot.com/2006/08/test-automation-takes-toll-of.html

這篇blog文是在2006年寫的, 作者(他以前也是微軟員工)說他看到Seattle times在 2004 Jan報導, 提到Microsoft lay off了Windows group 中62個testers

http://seattletimes.nwsource.com/html/microsoft/2002155249_mslayoffs20.html

報導中寫著, lay off的原因如下
1. They had automation so testers not required.
2. They need to cut cost - either send jobs to India (low cost option) or aggressively automate...

作者第一時間覺得很可悲, Microsoft居然走到這地步, 居然相信automation可以取代人腦. 不過因為沒有任何官方回應, 或是內部小道消息. 作者也無法確認Microsoft真正的目的為何. 因此作者post這篇文章, 希望內部知情人士能透露一二.

於是就有一些人回應如下:
====================================
  Anonymous said...

    No testers were laid off because they were replaced by automation. Testers, were, however laid off because they were among a group who:
    a) had little or no coding skills
    b) had no potential to learn those skills
    c) weren't very good testers either
    There's a difference, as you know, between button pushers and testers. MS laid off button pushers.

    Anonymous because I've probably said too much.
    3:41 AM, August 11, 2006

這和我昨天聽到的基調大致相同, Microsoft認為tester要能做manual testing, 也要能做 automatic testing, 不能只是會其中一樣. 所以藉由這樣的理由, 一方面把一些舊的tester轉型, 或是lay off掉, 以提升tester整體的能力.

不過他也再三強調人還是最重要的, 這和這篇文章的作者觀點是一致的. 若是人無法思考, 快速應變, 你有再多automation或是tool, 還是無法解決問題的.

--------------------------------------------------------------
Shrini Kulkarni said...

    Thanks anonymous for clarifying about firing of button pushers.

    I am not sure about designations of those - were they SDETs or STEs?
    Going by what you explained it appears that they were laid off for performance reasons.

    I am surprised as why Microsoft did not do a good PR work at clarifying this? Can you point to any official clarification this - article, blog post or some thing like that?

    Some statements/views mentioned in the quoted news post point to a story that seem to justify layoff and link them with automation/cost cutting

    1. spokeswoman Tami Begasse said there is no correlation between the tester layoffs and the company's growing use of workers abroad. She said the group was restructured because it's automating some testing tasks.

    2. In September, the server group said it was cutting 93 positions as part of its move toward automated testing.

    3. One factor is the push by executives to cut costs and adjust to the slower growth in the technology industry.

    4. The 62 work in the core operating system division, headed by Brian Valentine, a senior vice president. In the past, Valentine has called on managers to consider outsourcing work to India as a way to get more done for less cost.

    other thing I would like to know is - will you fire a tester for not having skills for coding?
    Having gone through microsoft interview process (at india) - I know that mediocre tester can not make it to Microsoft Job. No coding skills, no aptitude or potential for learning and no good testing skills - Did MS make those 62 hiring mistakes and attempted to correct by firing them at once?

    I would encourage you to me write to me to discuss more about this...

    Shrini
    11:01 AM, August 11, 2006

====================================
這裡是那篇Seattle times新聞的全文

Microsoft lays off 62 testers
By Brier Dudley

Seattle Times technology reporter


Microsoft is laying off 62 test engineers in the second round of cuts hitting Windows testers in the past five months.

The company has recently sent test work overseas, but a spokeswoman denied that's a factor. She said automation, not globalization, led to the cuts.

Microsoft notified the employees Tuesday and Wednesday last week, and the layoffs took effect Friday. The testers were given the option of staying, with pay, for six weeks while they look for other jobs in the company.

But finding other test jobs in the company may be a challenge.

The 62 work in the core operating system division, headed by Brian Valentine, a senior vice president. In the past, Valentine has called on managers to consider outsourcing work to India as a way to get more done for less cost.

Microsoft is outsourcing some test work to overseas companies such as Wipro, Infosys and Tata Consultancy in India. It's also expanding its overseas research and development facilities with a new campus opening this month in Hyderabad, India.

But spokeswoman Tami Begasse said there is no correlation between the tester layoffs and the company's growing use of workers abroad. She said the group was restructured because it's automating some testing tasks.

"It's not outsourcing related, offshoring related," she said. "It's simply they no longer meet the needs of this position."

The company initially told employees that 64 people were being laid off, but the number was later reduced to 62.

In September, the server group said it was cutting 93 positions as part of its move toward automated testing.

Separately, the company in August announced that it was laying off 76 employees in its Xbox division.

Layoffs used to be a rarity at Microsoft, but the company has become more aggressive about pruning its ranks. One factor is the push by executives to cut costs and adjust to the slower growth in the technology industry.

The Windows division has also embraced automated testing systems, including tools developed by the company's research group to check for software bugs.

Begasse said the move to automate some testing ultimately benefits customers.

"These changes are designed to improve the quality of our products and efficiencies in delivering them to customers, so the realignment demonstrates commitment to improving test-engineer efficiencies within that group," she said.

kojenchieh 發表在 痞客邦 留言(3) 人氣()

讓QA還會繼續想做QA

keeping testers in test
http://blogs.msdn.com/james_whittaker/archive/2008/11/20/keeping-testers-in-test.aspx

這個問題, 我想是大多數公司或是QA manager的夢靨. 一方面找不到好人才, 一方面人才也不易留住. 很容易地, QA不是離職就是換跑道到RD去. 讓我們來看看Microsoft資深的QA manager如何看待這個問題.

在某一場合, 作者被問到一個問題: 你如何保持在QA這條路上, 而不會想轉換到RD去呢?

他說他已經聽過很多次這樣的問題. 許多人把QA視為是RD的一個跳板, 一個先期訓練中心. 他說如果是這樣也不錯, 因為那將會有許多RD知道QA在做什麼, 會比較注重品質, 也會比較容易和QA溝通.

作者也認為並不是因為RD要寫code, 所以QA想過去. 其實QA自己也是需要寫code, 去做automation或是幫助測試更方面. 他認為QA會想離開是因為太多QA manager無法求新, 只考慮shipment和 schedule, 缺乏有求新求變的環境和心態.

而至於願意留下來的QA, 則是因為在team裡面, 他們有機會去做invent, investigate and discover, 使得他們有成就感.

所以如何讓你的QA願意留下來呢? 讓他們有機會去創新. 如果他們都只是focus 在test cases execution和ship schedule, 那大家都會想跑的

以下是一些讀者的回應
===============================
calkelpdiver said:

他提到QA會想換工作的原因
(1)  lack of credibility & respect, lack of pay, lack of support, insane work schedules, finger pointing
(2) getting the opportunity to do new and innovate things in this line of work doesn't come often for the average tester in the average company (Microsoft, and other large shops may be different).
(3) Want to earn more money (RD's pay is higher)

===============================
 swn1 said:

他提出一個可能的改善方法: rotation
Assign testers to development teams, assign developers to test rotations.

Developers became very conscious of the need for documentable designs, meaningful messages, and such. And customers were shocked to have the phone answered by someone who understood and could actually fix their problem.  Good for everyone.

===============================
 ru_altom said:

他認為rotation不太可行, 原因如下
(1) 你需要假設RD是一個好的QA, QA 也是一個好的RD
(2) RD 和QA的mindset不同, A tester will write code to break someone else's code, while a developer will aim to write unbreakable code.

所以他贊同JW的作法:
Innovation is the best way to keep your testers (and developers as well) content and at their best. Give them a chance to invent, to find new ways, to try their ideas - and they won't leave, not for another department and not for another company.



kojenchieh 發表在 痞客邦 留言(4) 人氣()

RD:QA到底幾比幾好? 看看Microsoft的講法

google v. microsoft, and the dev:test ratio debate
http://blogs.msdn.com/james_whittaker/archive/2008/12/09/google-v-microsoft-and-the-dev-test-ratio-debate.aspx

RD和QA的比例到底要多少才好呢? 始終沒有定論, 並且也一直在做調整. 像微軟大部分是1:1, 我們公司也大約是1:1. 前年曾聽我們公司美國部門的人說, 那時候流行是3:1. 那國內呢?可能是無限大比一, 因為很多公司根本沒有QA.

作者提到大部分微軟是1:1, 有些team是 2或3 : 1, 可是Google的狀況剛好相反, 他們是一個tester負責很多developers. (作者還戲稱是bug-writing的developers, 這點上Microsoft和Google倒是有共識)

所以那個比較好呢? 以下是作者的看法

A. 1:1
1. 優點
- It shows the importance we place on the test profession and frees developers to think about development tasks and getting the in-the-small programming right.
- It maximizes the number of people on a project actively thinking about quality.
- It speeds feature development because much of the last minute perfecting of a program can be done by testers.
- And it emphasizes tester independence, minimizing the bias that keeps developers from effectively testing their own code.

2. 缺點
- It’s an excuse for developers to drop all thoughts of quality because that is someone else’s job.
- Devs can just build the mainline functionality and leave the error checking and boring parts to the testers.

B. Many: 1
1. 優點
- When testers are scarce, it forces developers to take a more active role in quality and increases the testability and initial quality of the code they write.
- We can have fewer testers because we our need is less.

2. 缺點
- It stretches testers too thin.
- Developers are creators by nature and you need a certain number of people to take the negative viewpoint or you’re going to miss things.
- Testing is simply too complicated for such a small number of testers.
- Developers approach testing with the wrong, creationist attitude and are doomed to be ineffective.

作者也觀察到一個有趣的現象: 在微軟的QA都想扮演RD的角色, 因為在發現 bug的時候, 通常都有能力把它解掉. 但是作者也說, 這樣的行為對RD來說並沒有好處, 因為他並沒有幫RD從錯誤中學到經驗. 同時也可能造成RD偷懶的主要原因.

在我們公司, 也有不少RD提出這樣的見解, 認為1:1的狀況下, 造成RD被寵壞了. 有些RD常常只要收集不到debug log, 就宣稱他們無法解這個bug. 或許真的是太幸福了.

那什麼是理想的比例呢? 作者認為有些複雜的系統, 自然需要比較多的QA, 或是專門的QA測試專門的項目. 當然也有些地方或是方法, 可以將unit testin, automation 和manual testing混合著進行.  但是最重要的是, 作者認為要注意到的是你的工作中, 有多少比例的內容是在做quality assurance.

這句話在我的解讀是: 像是RD不應該只是寫寫code而已, 也需要有unit testing, code review, design review等工作項目. QA的工作也不是因為你在做testing, 你就都是在做quality assurance, 那test case review, design review, bug report inspection, test result inspection等等, 你有沒有在處理. 所以不在於你扮演什麼角色, 而是在於你有沒有任何工作項目, 是來檢查你工作的內容好不好.

否則你只是bug creator而已, 當然啦不是只有RD會這樣, QA若是沒有這種認知, 同樣也是幫兇.


kojenchieh 發表在 痞客邦 留言(0) 人氣()

Close

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

reload

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼