Showing posts with label Process testing. Show all posts
Showing posts with label Process testing. Show all posts

Monday, December 3, 2012

Testing Strategies


Testing Strategies
Strategy is a general approach rather than a method of devising particular systems for component tests.
Different strategies may be adopted depending on the type of system to be tested and the development process used. The testing strategies are

Top-Down Testing
Bottom - Up Testing
Thread Testing
Stress Testing
Back- to Back Testing
1. Top-down testing
Where testing starts with the most abstract component and works downwards.

2. Bottom-up testing
Where testing starts with the fundamental components and works upwards.

3. Thread testing
Which is used for systems with multiple processes where the processing of a transaction threads its way through these processes.

4. Stress testing
Which relies on stressing the system by going beyond its specified limits and hence testing how well the system can cope with over-load situations.

5. Back-to-back testing
Which is used when versions of a system are available. The systems are tested together and their outputs are compared.

 6. Performance testing.
This is used to test the run-time performance of software.

7. Security testing.
This attempts to verify that protection mechanisms built into system will protect it from improper penetration.

8. Recovery testing.
This forces software to fail in a variety ways and verifies that recovery is properly performed.



Large systems are usually tested using a mixture of these strategies rather than any single approach. Different strategies may be needed for different parts of the system and at different stages in the testing process.

Whatever testing strategy is adopted, it is always sensible to adopt an incremental approach to sub-system and system testing. Rather than integrate all components into a system and then start testing, the system should be tested incrementally. Each increment should be tested before the next increment is added to the system. This process should continue until all modules have been incorporated into the system.

When a module is introduced at some stage in this process, tests, which were previously unsuccessful, may now, detect defects. These defects are probably due to interactions with the new module. The source of the problem is localized to some extent, thus simplifying defect location and repai


Debugging
Brute force, backtracking, cause elimination. 
Unit Testing
Coding
Focuses on each module and whether it works properly. Makes heavy use of white box testing
Integration Testing
Design
Centered on making sure that each module works with another module.
Comprised of two kinds:
Top-down and
Bottom-up integration.
Or focuses on the design and construction of the software architecture.
Makes heavy use of Black Box testing.(Either answer is acceptable)
Validation Testing
Analysis
Ensuring conformity with requirements
Systems Testing
Systems Engineering
Making sure that the software product works with the external environment, e.g., computer system, other software products.
Driver and Stubs

Driver: dummy main program
Stub: dummy sub-program
This is because the modules are not yet stand-alone programs therefore drive and or stubs have to be developed to test each unit.

Some different types of tests, and their level:
·         Unit Tests to test individual classes or objects (default)
·         Acceptance tests / Functional tests (everything)
·         Performance Tests: how fast it is (extensive)
·         Load Tests: how it performs under a large load (extensive)
·         Smoke Tests: fast tests for the key functionality (mandatory)
·         Integration Tests: how the pieces work together (default)
·         Mock Client Tests: tests from the client's point of view (default)

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



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