Wednesday, November 28, 2012

What’s Test Plan?


What’s Test Plan?

. Verify and ensure that a product or system meets its design specification and other requirements.

. Control and monitor

In software testing, a test plan gives detailed testing information regarding an upcoming testing effort, including

.Test Scope

. Test Requirements

. Strategy

. Risk

. Test Environment Configuration

. Test Tools

. Schedule

. Resource

. Test deliverables

From Test Plan, we will know a detail of how the testing will proceed, who will do the testing, what will be tested, in how much time the test take place, and to what quality level the test will be performed.

How to use Test Plan?

Test Plan could be describle by excel and microsoft project file. We can create many sheet.

           

Who write/read Test Plan?

       § QC Lead/QC Manager

       § QC team

       §  Project Manager

Table of Test Plan such as:

1. Coverage:

§ Coverage is included some items such as:

§  Project Name

§  Project Release version

§  Document version

§  Date

§  Prepared by


2. Test Scope:

2.1 Features to be Tested:

§  List the features of the software/product to be tested.

§  Provide references to the Requirements and/or Design specifications of the features to be tested

2.2 Features Not to Be Tested:

§  List the features of the software/product which will not be tested.

§  Specify the reasons these features won’t be tested.


3. Test Requirement:

3.1 Functionality to be Tested:
§  List the functionality of the software/product to be tested.

3.2 Usability

§  Good performance

§   Easy to use

§  Friendly user

   3.3 Reliability

§  Verify all function run correctly

3.4 Performance

§  Fastly and correctly

   3. 5 Supportability


4. Strategy:


4.1 Test type


Function test
Benchmark test

Volume test

Load test

Performance test

Stress test

Integrity test

Add hoc test

Usability test

Installation test

Structure test
Security test

4.2 Test phase

Integration test
System test

4.3 Test Priority

List of module/function list are arranged from top to bottom

5. Risk:

§  Risk list is describled in here

Example:
§Cannot catch change requirements when executing test phase
§Code delivery is late: Code for application under test is behind schedule

6. Test Environment:

6. 1 What is a Testing environment for software testing
§A testing environment is a setup software and hardware on which the testing team is going to perform the testing of the newly built software product. it's included hardware and logical setup that includes Server Operating system, client operating system, database server, front end running environment, browser(if  web application), IIS (version on server side) or any other software components required to run this sofware product.

Nowadays, most testing looks like this: you get a physical environment, execute tests on it, and revert it to a clean state by using images. This approach is convenient because you don’t have to configure everything all over again. But there are some negatives as well.
§  When you modify the hardware configuration, you must update the image, because it’s hardware specific;
§  If the hardware configuration fails, you can lose all your data and test results, which is a potential risk for the project.
§  The approach doesn’t scale well because a single hardware configuration can be at most a single test environment.
Virtualization has the same advantages as images-driven test environment setup and more:
§  Better utilization – you can run more than one virtual machine (VM) on a single piece of hardware as long as there are enough resources. Provide your Quality Engineers their own environment to play with!
§  Revert to a previous state – cleanup is easy because VMs are designed with that in mind. You can easily debug a problem by using snapshots. They are quite fast, too.
§  Hardware failure – it’s irrelevant for the virtualized infrastructure. Since VMs are just files, you can back them up, in order to minimize loss, in case of server crashes
§  Pool of resources - no need to reconfigure and recreate images when you buy new hardware. You just add it to the pool of resources.
§  Maintenance & automation – with minimal effort you can replicate VMs by using virtualization and the already available automation scripts. You can even create your own automation scripts!

6.2 Test Environment Configuration
Example:
§  Cannot catch change requirements when executing test phase
§  Code delivery is late: Code for application under test is behind schedule

By HoaLe



Tuesday, November 27, 2012

Vietnam-bangdaihocgiare

Việt nam sau lại có những chiêu trò như thế này nhỉ?
Vậy chúng ta chỉ cần mua bằng cần gì phải khổ công học tập.
potay với những người là con sâu của xã hội.
http://www.bangdaihocgiare.com.vn/

Sunday, November 25, 2012

Đôi bạn giữa Devs và QCs


Tôi thấy vui khi vừa test sơ sơ 1 app dùng android cho 1 chị bạn.
Tìm cũng kha khá bug trong thời gian ngắn, vui ơi là vui. Và cảm thấy rằng giữa Devs và QCs là một đôi bạn không thể thiếu.

Có câu chuyện vui thế này:
QC: Có bug rồi dev ơi
Dev: Có gì đâu mà vui. Bạn có biết niềm vui của bạn là nỗi buồn của tôi không?
QC: ơ, có bug thì vui chứ, vì tôi đã phát hiện lỗi trong chương trình cho bạn mà.
Dev: hiccc, bạn đừng tìm thêm bug nữa nha. Nếu bạn tìm nhiều quá làm sao tôi xem Euro cho được.
QC: vậy thì bạn code kỹ đi, unit test trước đi.
Dev: kỹ rồi đó.
QC: kỹ hơn chút nữa đi. Tôi tin chắc bạn có đủ thời gian để xem  vòng chung kết Ero đó.
Dev:hiccc

Kỹ năng ra quyết định


Trong cuộc đời của mỗi người ai cũng phải trải qua những lần ra quyết định cho bản thân cho sự chọn lựa của mình từ gia đình, hôn nhân, nghề nghiệp.
Nhưng làm thế nào để bản thân mình có được sự quyết định một cách đúng nhất đây?
Tìm sách đọc
Tham khảo bạn bè

Nhưng cốt lõi hơn hết là phải biết mình là ai? Mình đang đứng ở đâu?
Và mình muốn gì? Mục tiêu của cuộc đời mình là gì đây?
Nói chung quyết định của mình còn dựa vào 1 yếu tố nữa:
Thiên thời-Địa lợi-Nhân Hòa

Và bước đi đến thành công:
1.       Xác định mục tiêu
2.       Định vị
3.       Lên kế hoạch và triển khai
4.       Làm việc đội nhóm
5.       Kiểm soát tiến độ
6.       Đánh giá quá trình
7.       Hoạch định lại chiến lược


Niềm vui trong công việc


Mỗi ngành mỗi nghề ai cũng có lúc gặp khó khăn, khổ sở  trong công việc. Nhưng hãy nghĩ về hướng tích cực của nó.
Nếu mỗi ngày các bạn đem tâm trạng mệt mỏi, ể oải và cảm thấy chán nản đến nơi làm việc thì tôi nghĩ rằng các bạn hãy xem xét lại công việc đó có thật sự phù hợp với các bạn?
Không nên để suy nghĩ rằng mình đi làm cho qua ngày đoạn tháng. Hướng suy nghĩ như vậy rất bế tắc và không thấy vui.
Chúng ta nên  tìm niềm vui trong công việc bằng cách tạo ra một đột phá hay suy nghĩ và học hỏi thêm trong lĩnh vực của mình. Nếu bạn làm được một cái gì đó có kết quả thật sự sau bao ngày miệt mài thì các bạn cảm thấy rất vui và phấn kích vì thành quả nhỏ trong công việc ấy.
Hãy luôn nghĩ về công việc và yêu nó!!!

Teamwork


Cảm xúc vẫn còn đó. Nhớ ngày nào làm việc cùng các đồng chí những đêm thật khuya nhưng các bạn của tôi vẫn không gục ngã.

Năm 2009, chúng tôi làm cho 1 dự án liên quan đến thiết bị siêu âm, vì tính chất nghiêm trọng của dự án và đến ngày hôm đó phải giao sản phẩm đến khách hàng. Thế là cả đội ở lại đêm để làm cho xong. Đã 11 giờ khuya chỉ còn 2 bugs, mừng quá trời, sắp được về rồi. Nhưng …phải họp gấp, vì sao? Vì 1 trong 2 bug đó có liên về logic, về cách hiểu. Thế là anh PM phải contact ngay với khách hàng và kết quả: chúng tôi sẽ phải sửa lại và làm thêm ngay trong đêm.
Sau khi contact với khách hàng xong, chúng tôi đã ngồi gần nhau dùng café và bánh ngọt để lấy sức chiến đấu trận mới.
Sauk hi đánh chén no nê, chúng tôi lại cùng nhau phân tích, thiết kế, code và test.
Cuối ngày hôm sau thì sản phẩm cũng hoàn thành giai đoạn test rồi. Mừng quá!!!

Câu chuyện vui với nghề test software


Tháng 7 năm 2007, tôi chuyển sang làm nghề test từ là dân code php. Chị bạn tôi chửi tôi.
“Em nghĩ sao em học IT lại đi làm test, không học IT cũng làm test được em ơi”.
Nhưng tôi nói: thôi là con gái qua làm test cho nhẹ nhàng.
Và thế là đi xin việc. Cũng rất may tôi gặp được sư phụ, tôi nghĩ chắc lúc interview Sự phụ(leader) tôi cũng bất ngờ. Hỏi tôi biết gì về test không? Tôi nói là không biết. Hỏi sao tôi lại qua làm test. Tôi nói vì tò mò và muốn làm thử.
Sau 1 giây suy nghĩ , leader tôi interview tôi theo hướng logic và hỏi về 1 số chuyên môn trong lập trình.(Cũng may su phụ tôi cũng là dân code ra)
Thật may tôi qua giai đoạn interview. Và vào làm ở 1 công ty cũng tầm trung thời ấy.
Tôi bắt đầu khổ sở với sếp: do tôi tò mò nhiều quá, nên hầu như tôi phải vừa làm vừa học.
Phải seminar những gì hiểu về test trước team QC rồi mọi người trao đổi sửa cho tôi.
Bây giờ cách học ấy tôi thấy hay và thú vị, áp lực sẽ giúp mình nhớ dai hơn. Rồi làm dự án về ngân hàng, bắt buộc tôi phải biết chút về kế toán.
Làm dự án về chứng khoán thì phải như thế nào? Thì tôi cũng phải biết nghiệp vụ luôn không những vậy tôi cũng phải chơi chứng khoán luônJ
Vì đối với 1 software, mình có thể test giả lập, nhưng đối với những project cần trải nghiệm thực tế thì mình nên đặt mình là 1 user thật sự. Có như vậy mình sẽ thấy nhiều lỗi dở hơi mà mình không phát hiện ra hết

Thursday, November 22, 2012

Basis Path Testing


1.3 Basis Path Testing

A testing mechanism proposed by McCabe.
Aim is to derive a logical complexity measure of a procedural design and use this as a guide for defining a basic set of execution paths.
Test cases which exercise basic set will execute every statement at least once.

1.3.1 Flow Graph Notation

Notation for representing control flow


On a flow graph:
  • Arrows called edges represent flow of control
  • Circles called nodes represent one or more actions.
  • Areas bounded by edges and nodes called regions.
  • predicate node is a node containing a condition
Any procedural design can be translated into a flow graph.
Note that compound boolean expressions at tests generate at least two predicate node and additional arcs.
Example:

1.3.2 Cyclomatic Complexity

The cyclomatic complexity gives a quantitative measure of the logical complexity.
This value gives the number of independent paths in the basis set, and an upper bound for the number of tests to ensure that each statement and both sides of every condition is executed at least once.
An independent path is any path through a program that introduces at least one new set of processing statements (i.e., a new node) or a new condition (i.e., a new edge)

Example has:
  • Independent Paths:
    1. 1, 9
    2. 1, 2, 3, 8, 1, 9
    3. 1, 2, 4, 5, 7, 8, 1, 9
    4. 1, 2, 4, 6, 7, 8, 1, 9
  • Cyclomatic Complexity of 4; computed using any of these 3 formulas:
    1. #Edges - #Nodes + #terminal vertices (usually 2)
    2. #Predicate Nodes + 1
    3. Number of regions of flow graph.
Cyclomatic complexity provides upper bound for number of tests required to guarantee coverage of all program statements.
Could we omit path #1 since it's covered in #2?

1.3.3 Deriving Test Cases

  1. Using the design or code, draw the corresponding flow graph.
  2. Determine the cyclomatic complexity of the flow graph.
  3. Determine a basis set of independent paths.
  4. Prepare test cases that will force execution of each path in the basis set.
Note: some paths may only be able to be executed as part of another test.

I have example such as:




Monday, November 19, 2012

Overview Jmeter


Java Version

• JMeter requires a fully compliant JVM 1.4 or higher.

• Version 2.2 and later no longer support Java 1.3.

• It is recommended to use JVM 1.5 to conduct HTTPS test with JMeter.

Operating System

• JMeter is a 100% Java application and should run correctly on any system that
has a compliant Java implementation.

• JMeter has been tested and works under:

• Unix (Solaris, Linux, Fedora etc)

• Windows (98, NT, XP, etc)

• OpenVMS Alpha 7.3+


Downloading and Installing JMeter

Jmeter is a Java application, so a JRE or SDK first needs to be installed with a JAVA_HOME environment variable.
Jmeter can be downloaded in the below link:
• Download Jmeter, and install by unzipping the .zip or .tgz file in any directory.
• Go to jakarta-jmeter Directory (Directory in which the .zip of .tgz file is unzipped)
• Type ./bin/jmeter on command prompt(for Unix) or Run bin/jmeter.bat (for Windows)
• JMeter is ready to test application.
When you run jmeter.bat file in bin directory of  jakarta-jmeter Directory, you will see the following JMeter Screen.

The user interface has two panes. The left pane displays the elements used in our testing. Initially, there are the Root and two sub-elements, Test Plan and WorkBench.
In this article we're only concerned with Test Plans. Add an element to a node by right-clicking it and selecting Add. To remove an element, select the element by clicking on it, then right-click on the element and choose the Remove option.

Test Plan: A test plan describes a series of steps JMeter will execute when run. A complete test plan will consist of one or more Thread Groups, logic conrollers, sample generating controllers, listeners, timers, assertions, and configuration elements.

WorkBench: Workbench is place where we store test elements which are saved and used in later stages. It has two elements which are HTTP proxy server and HTTP mirror server. Http proxy server is used for recording purpose.

You can executed some steps such as:
Scenario:
1.       Run jmeter.bat
2.       Create Threat group
We need establish Thread Properties(example):
Numer of Threads(users): 100
Ram-up Period (in seconds): 1
Loop Count: 1





3.       Create Summary Report


4.       Setup HTTP Proxy server->Click [Start] button->Open website in Firefox->Finish click [Stop] button

5.       Run scenario


Good Luck!!!



Sunday, November 18, 2012

Overview Performance testing


Performance Testing is a combination of 3 type of Testing:
          – Performance test
          – Load test
          – Stress test

Performance test: Need to know at least two things:
       Expected load in terms of concurrent users or HTTP connections.
       Acceptable response time.è Goals: You want to make sure your code runs as efficiently as possible and your database is optimized on a given OS/hardware configurations.

Load test:
          Load testing as part of the process of performance testing and tuning
          Load testing is sometimes called volume testing, or longevity/endurance testing
è Goals: Expose bugs that do not surface in cursory testing, such as memory management bugs, memory leaks, etc.Ensure that the application meets the performance baseline established during performance testing. This is done by running regression tests against the application at a specified maximum load.

Stress test:
          Stress testing tries to break the system under test by overwhelming its resources or by taking resources away from it (in which case it is sometimes called negative testing)
ð  The main purpose behind this madness is to make sure that the system fails and recovers gracefully.

 Differentiation between P&L&S:
Performance testing and load testing can seem similar, their goals are different



Example: Yahoo has a website. We know that million of people are going to access this site every day. 
In fact thousands will be clicking this website at same movement of time. But Yahoo has limited hardware capability. Now they want to know how many people can access their website (hitting their servers) at the same time.

1. Load testing - is expected rate is matched? Yahoo estimated that a maximum of 90,000 people (example) can hit at any point of time. So load testing is performed that whether with 90,000 virtual users system is performing well or not?

2. Performance testing - Suppose with one user yahoo page opens in 1 sec. Then with 1000 users is it opening in 1 sec? then with 50,000 users hitting website at same time, is it opening in 1 sec....so what is performance of website up to a desired level? (up to 90,000 in this example)

3. Stress testing - if we slowly increase users from 90,000 to say 91,000 then to 92,000 then to 93,000 and so on...then at what time servers crash or site stopped responding? 

Determining Acceptable Response Time or Acceptable User Experience
Factor : The customer’s value system expectation


Performance Testing Key Factors
Performance testing involves the evaluation of three primary elements :
          Workload
          System environment and available resources
          System response time
Workload: Workload is the amount of processing and traffic management that is demanded of a system.
          Three elements be considered :
          - Users
          - The application
          - Resource
     System Environment and Available Resources:
          There are three primary elements that represent the resources involvement in any online transaction :
          -A browser on the client-side
          -A net work
          -Server-side

NOTIONS
          Running Vusers
          Hits Per Second Graph
          HTTP Responses per Second Graph
          Throughput Graph
          Transaction Summary
           Average Transaction Response Time

Running Vuers
This line graph shows the impact of Ramp-Up and Ramp-Down specified for run-time. This also shows the time when Errors begin to occur during the test run.


Hits Per Second Graph
The one line on this graph helps you evaluate the amount of load Vusers generate, in terms of the number of hits to all web servers. It displays the number of hits made on all Web servers by Vusers during each second of the load test.


HTTP Responses per Second Graph
The HTTP Responses per Second graph shows the number of HTTP status codes—which indicate the status of HTTP requests


Throughput Graph
This line chart helps you to evaluate the amount of load Vusers generate on network resources. It displays the raw amount of bytes that the Vuser client received each second as a result of the hits on the web server during load testing.


Transaction Summary
This bar graph displays, by transaction action, how many transactions passed, failed, stopped, or ended with errors


Average Transaction Response Time
This line graph is used to determine whether performance is within acceptable minimum and maximum transaction performance time ranges expected of the system. It displays the average time taken to perform transactions during each second of the load test.










Friday, November 16, 2012

Testcase template



Why do we write tes cases?
. Find bugs
. Limit bugs
What’s testcase?
A test case is scenario that describes an input, action, expected output, to determine for a feature of an application is working correctly
How to use testcases?
                . Report bugs
Who write/read testcases?
                . Tester
                . Customer/User
                . Team (in Project: PM, devs)

This is testcase template
To use excel file, i think it is ok.
we have to create some sheet such as:

.  [Coverage] sheet




. Report Sheet


. [Testcases] sheet