在Agile中如何進行測試的工作 (2)


QA and Testing in an Agile Environment
Chris, 05Nov
http://edgehopper.com/qatesting-in-an-agile-environment/

* Tim Lesher Says:

Tim認為前面那些agile testing 的作法, 在iteration最後階段會造成, QA會很忙, RD會很輕鬆. 因此為了避免學生症候群Parkinson’s Law (where the work expands to fill the remaining iteration time), Tim提出了一些修正:

1. Dev designs and codes; SQA designs tests and pokes holes in the design
2. SQA executes tests; Dev addresses issues and pokes holes in the tests
3. SQA executes acceptance tests and writes defects; Dev automates tests

    The acceptance-level and integration-level tests that SQA is running during iteration N get automated by development, and take effect as part of the automated suite beginning in interation N+1.

目前這個作法仍持續在觀察中, 但是看起來還work

===============================================

* Gunther Verheyen Says:

Cunther在每天的工作中, 加入以下四項quality loops: (記住是在每天中做, 而不是到sprint的末期才做)

Loop 1.
    - Developers work in pairs upon a test-first basis. By the way, a test-first also includes some GUI-testing
    - For example, using Selenium: is a suite of tools to automate web app testing across many platforms.

Loop 2.
    - Developers can refactor, i.e. rewrite working code to make it better, simpler, remove duplicate code etc.
    - When a test-first no longer fails, the code is checked in and gets picked up by a Continuous Integration system. The CI runs multiple times a day.
    - Logs are being checked regularly and rework is inserted into the team using a Kanban board.

Loop 3.
    - The guide deploys a stable version from the CI to perform the functional testing.
    - Functional feedback is inserted into the team using a Kanban board (items are generally too small to make it a Story).

Loop 4.
    - (if applicabel) Overnight performance tests are performed on a deployed version using scripts with ramp-up’s, think time, etc.

Cunther覺得他們這樣做了以後, 基本上系統沒有在production, 或是sprint review中, 被發現大的bugs或是problems

===============================================

* Surendra Lingareddy Says:

Agile 所帶來的好處: The tendency to natural juxtapose QA and Dev.
- The planning meeting serves to select the stories for this iteration as well as to flush their details out.
- QA and Dev both along with the business (Prod Mgr and SCMs at least) walk out with the same understanding of what the story is.

===============================================

* Patrick Curtain Says:

主要做法: QA following one iteration behind
- Focus on black box test automation and maintenance of tests affected by change.
- That puts the focus (and personnel budgeting) on TDD in the dev team, continuous integration and flowing QA effort back into the team.

===============================================

* Bob Galen Says:

      
對Chirs前面的提作法有疑問
(1)  Isn’t setting up some sort of intra-Sprint ’schedule’ sort of defeating the purpose of self-direction?
因為他認為以下事情比較重要
(1) The team buy-into the notion of getting things ‘done’ and
(2) that they need to work efficiently and effectively to maximize how much they deliver and the quality of what they deliver–so the team should be figuring this out–sort of on their own.
(3) Another part of that is significantly blending the individual roles–so that it’s the team working and not developers handing over things to testers.

所以Bob認為前面這些作法只是限制了sprint的精神, 感覺裡面還是存在著waterfall的骨子. 所以他認為是怪怪的.

Bob建議使用 kanban來幫助會比較好一點
- The whole notion seems to be to throttle the work (cards) that a team can take on to try and reinforce blended team behavior to drive work to done.
- So fewer in-process tasks/features, and heavy collaboration to get it done as quickly as possible. It seems that this leads to (the claims) to higher efficiency / effectiveness.
( notes: kanban是源自於Toyota的看板文化, agile中有使用這個觀念. 不過老實說我不是很清楚Bob指的是什麼, 在網路上我還找到他所講的, 下次找到在share給大家)

===============================================

* Chris Says:

@Bob Galen:
這是Chris對 Bob意見的回應
- This is merely a suggestion as a way for teams to think about organizing their work to maximize the effectiveness and utilization of both the QA’s and the devs.
- Teams can self-organize and self-direct, and that is a real key to agile success.
- However, having some guidance or idea of how to attack the work of an iteration isn’t necessarily a bad idea.

@Patrick Curtain:
如果使用one iteration behind的情況要小心. 根據我的經驗, 一個user story 要到被測試完成才較被做完(done), 也就是到那個時候你才算你拿到那個story point , 也就是說你要到下一個iteration才算是completed or done.

這將會嚴重影響你team的velocity. 更重要的是user story為測試完, 這代表它可能是不能shippable, 因此對你的customer來說是沒有value的.


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

在Agile中如何進行測試的工作 (1)


QA and Testing in an Agile Environment
Chris, 05Nov
http://edgehopper.com/qatesting-in-an-agile-environment/

當作者要adopt 2 weeks的iteration時, 他問了很多人對於這樣的事, 有怎樣的concern. 以下是他得到的主要考量:
(1) QA’s and testers on an agile team have nothing to do at the start of an iteration.
(2) We can’t keep writing new code up until the last minute of an iteration if QA is to adequately test the code. So, what do the developers do at the end of the iteration?

因此作者提出它的作法, 希望能mitigate這些問題, 並且能讓QA在agile iteration中融入的很好.
1. 第一週
Day 1
    Dev: Coding
    QA: Write Tests
Day 2
    Dev: Coding
    QA: Write Tests
Day 3
    Dev: Coding/Defect Fixes
    QA: QA/Testing
Day 4
    Dev: Coding/Defect Fixes
    QA: QA/Testing
Day 5
    Dev: Coding/Defect Fixes
    QA: QA/Testing

2. 第二週
Day 1
    Dev: Coding/Defect Fixes
    QA: QA/Testing
Day 2
    Dev: Coding/Defect Fixes
    QA: QA/Testing
Day 3
    Dev: Defect Fixes/Design/Story Development
    QA: QA/Testing
Day 4
    Dev: Defect Fixes/Design/Story Development
    QA: QA/Testing
Day 5
    Dev: Defect Fixes
    QA: Acceptance Testing

細部說明:
前兩天
Dev:
    - Get busy coding the stories in their backlog while the QA’s start writing test cases/acceptance tests.
QA:
    - Start writing test cases/acceptance tests.
    - Should also be running these tests against the existing code base.
    - This validates that the test harness is working correctly and that the new tests do not mistakenly pass without requiring any new code.
    - Obviously, the new tests should also fail for the expected reason.
    - This tests the tests themselves, in the negative: it rules out the possibility that the new tests will always pass, and therefore be worthless.
    
接下來五天
Dev
    - Continue coding and also start working on fixing any defects picked up in the testing.
    - Pretty standard days. Code-test-fix.
QA
    - Begin testing any testable code that has been completed.

第 8 天開始
Dev
    - Effectively stop writing “new” code and focus their energy on fixing all defects identified in testing.
    - If has no defect work or find themselves with down-time while waiting for testing results, they can and should be helping the product owner develop and refine the user stories that are likely to be played in the next iteration.
    - Start considering the design aspects of the immediate upcoming stories and coordinating design decisions with the project architect.
QA
    - Continue to test all of the remaining code written during the iteration.

最後一天上午
Dev
    - Focus on bashing any remaining defects and making the code bombproof.
QA
    - Spend most of their time doing some final acceptance testing

最後一天下午    
    - It’s time for your review and demo.
    - You’ve tested and fixed everything so you and your team can demo with total confidence.
    - No surprises for your team, you’ve built serious quality into your software!

作者在post完他的做法之後, 精采的來了, 一共有54 篇response. 一起來討論他們自己怎麼做agile testing. 讓各位看倌繼續欣賞下去吧, 很精采ㄡ!!

===============================================
*    Dave Rooney Says:

定義了何謂一個user story是已經done了:
- A story is “done and tested by development, tested by QA and accepted by the business”.

主要想法
- You need sufficient QA capacity to handle the pipeline of completed stories coming from the developers.
- After all 2 stories completed to 100% in an iteration delivers more business value than 8 stories completed to 75%.

對於defect的處理態度
- I have the developers, QA and the business triage them -
- 確認 Is it a technical issue or an unclear, misunderstood or missing requirement?
- Does it affect the done state of a story? If so, fix it immediately. If not, confer with the business about its priority and schedule it accordingly.

===============================================

* Basim Baassiri Says:

Agile對testing所帶來的優點
- To start early and to shorten the feedback loop

Agile對testing上所造成的難處
- From a QA perspective, code complete has a different meaning then when development code is complete.
- What if the code completed by dev is a dependency for another set of features?
- What if the code completed by dev is not testable from an acceptance test perspective?
- Testing a moving target or code base causes unnecessary churn. Here is the scenario:
      Dev completes story 1 –> QA tests it and marks as DONE
      Dev completes story 2 that affects story 1 –> QA tests it and marks as DONE
    ==> The result here is that story 1 now has to be re-tested as a result of the changes done to story 2. Story 1 is at a state of quality unknown

解法
- We tried the approach where by QA is an iteration behind.
- What I mean by behind, the build candidate at the end of the iteration is taken and testing starts.

所採取的測試流程
1. test cases definition done early in the iteration
2. Test case review (not being done but ideally solicit feedback from dev and story owners)
3. We use keyword and domain based automation techniques so test cases are written once and can be used with the automation framework
4. Once dev signals the story is complete, start testing manually
5. Code supporting features in the automation framework if required. This obviously can’t be done until the code is complete
6. Verify defects and run regression testing activity
7. Release

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

3 week iteration中的測試工作

Testing Tasks in a 3 week iteration
http://www.testcommon.com/content.php?cid=918

在網路上我找到, 別人如何對3 週的iteration, 安排testing的工作.

首先這是他規劃的測試工作: (這裡是6RD對1 QA)
    * 2 days in the daily scrums and administrative meetings.
    * 1 day in some form of review with developers on feature implementations, bugs, test approach, XP test pairs, etc.
    * 2 days creating, or updating the test cases (low priority, time permitting).
    * 5 days on feature testing the new/modified features and residual bug fixes.
    * 2 days of strategic long-term tasks ie performance tests, automating regressions, environment build-up/clean-up (the lowest priority until critical to the functional testing)
    * 3 days regression testing (not complete regression, only a partial, evolving regression subject to features changed)

這是他執行後實際的工作狀況:
    * 1-2 days on the combination of scrums and design/developer discussions
    * <1 day on combination of test planning, test case maintenance and development of strategic test tasks
    * 3 days investigating field support issues and rumors of bugs
    * 1 day rebuilding/recovering the test environment for particular feature tests
    * 1 day on regression testing the final build(s)
    * 8 days or more on feature and bug testing

這裡是另一個iterative的pratice, 它是一家startup 公司的例子. (這裡是3RD對1QA) 基本上, 這家公司的feature 管理很混亂, 並沒有適當的document給QA, 或是和QA提醒一些implementation的改變.

所以他的規劃如下:
    * <1 day in all combinations of scrum, discussions, test planning, test case and environment maintenance
    * 2 days (and ever increasing) investigations of field reported issues
    * 1 day regression testing the prior iteration after it completed
    * 11 days on feature and bug fix verification and exploratory/ad-hoc testing

看完他的規劃後, 我很好奇幾點:
1. 它如何有這麼長的測試時間? 我的意思是RD如何這麼快deliver東西出來, 我很好奇他們是如何做開發設計的
2. 還是說他所謂的測試, 不只包含test case 的execution, 可能還有一些inpsection, static analysis?
3. 或者是說他其實包含對前一 iteration的功能持續在做測試?
4. 或者是說RD 的unit testing 他也算進去?

不知各位看倌, 你們的經驗或是作法是什麼?

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

Scrum 和 XP的比較

Should We Adopt Scrum or XP?
http://jamesshore.com/Blog/Should-We-Adopt-Scrum-or-XP.html


XP
(1) 著重於 "let's create excellent software."
(2) 比較不容易開始, 因為要學習TDD, refactoring, pair programming, customer on site...不是很快可以做到.
(3) 開開始會花很多時間, 會很痛苦, 因為要adopt很多engineering practices. 如果度過後, 就不太會有code quality的問題, 並且performance會很高. 但是若是沒有撐過, 最後可能會失敗, 或是放棄.
(4) XP 不容易開始, 但是容易去精通它, 但是失敗時會以很吵鬧的方式結束
(5) You're less likely to successfully adopt XP, but you'll be well positioned for long-term success and mastery.
(6) If you're missing pieces, you'll probably be able to tell.

Scrum
(1) 著重於 "let's create a self-organizing team"
(2) 比較容易開始, 只要team願意adopt, 工作規劃上照著scrum 的規則走就可以
(3) 但是Scrum 有較長的ramp-up時間, 並且很長一段時間會有code quality的問題
(4) Scrum 容易開始, 但是不容易去精通它, 但是失敗時會以無聲無息的方式結束
(5) You're more likely to successfully adopt Scrum, but the benefits won't extend to your codebase and you'll struggle with legacy code for many years.
(6) If you're missing pieces, you may not realize it.



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

如何做瀏覽器的相容性測試

Browser compatibility testing
http://www.teknologika.com/blog/browser-compatibility-testing/


1. 什麼是網站的瀏覽器相容性測試?
- The goal of browser compatibility testing is to ensure that the site renders without error on the target web browsers.
- Some minor rendering differences are expected from browser to browser, or within different versions of the same browser.

2. 瀏覽器內rendering engine 的特性
- These types of rendering differences will occur typically across major versions of browsers.
- The same rendering engine is typically used on all platforms for multi-platform browsers, the same version of the same browser will typically render the same result on all platforms that it supports.
- This reduces the need for testing the same version of a browser on multiple platforms, however simple sanity checking of browsers cross platform is recommended if the configuration is already available.

3. 各家瀏覽器市佔率的狀況
Source: http://marketshare.hitslink.com/


4. 如何決定哪些瀏覽器需要測試
- It is used by a significant portion of a sites users, and is in common, widespread usage.
- It is the default browser on the latest version of Windows or Mac OS X.
- It is a newly released browser which is expected to quickly gain a significant portion of browser market share, e.g. IE 8 or Google Chrome

5. 根據以上的市佔率和要測試的規則, 作者認為以下是入圍的瀏覽器
Browser                            Reason for inclusion in test matrix
Internet Explorer 7.x         Most common browser in use today.
Internet Explorer 6.x         Second most common browser in use today.
Firefox 3.0                         Latest version of Firefox, and has > 10% market share.
Safari 3.x                         Default browser on Mac OS X.
Internet Explorer 8.x         Latest version of Internet Explorer that is expected to be the most common browser in the future.
Google Chrome                 Expected to be a common browser in the future.

6. 哪些Bug我可能會發現?
- To decide what we need to test we need to understand what is likely to break.
- The current batch of web browsers have a set of commonly known bugs and differences.
- If you understand these differences, you can go a long way to understanding why pages render differently in different browsers.
- Internet explorer has a large number of CSD layout issues and rendering bugs.
- reference information: http://www.positioniseverything.net/explorer.html


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

Close

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

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

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

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

reload

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼