Monday, April 28, 2008

Effective Software Testing (Cont)

To ensure software application reliability and project success Software Testing plays a very crucial role. Everything can and should be tested. Few steps below (as far as i know base on theory and implementation in my company) to make Software Testing Effective:

  1. Requirement Phase

    1. Involve Testers from the beginning

    2. Verify the Requirements

    3. Design Test Procedures as soon as Requirements are available

    4. Ensure that Requirement changes are communicated

    5. Beware of Developing and Testing based on an Existing System

  2. Test Planning

    1. Understand the task at hand and The Related Testing Goal

    2. Consider The Risks

    3. Base Testing efforts on a Prioritized feature schedule

    4. Keep Software issues in mind

    5. Acquire Effective Test Data

    6. Plan The Test Environment

    7. Estimate Test Preparation and Execution Time

  3. The Testing Team

    1. Define Roles and Responsibilities

    2. Require a Mixture of Testing skills, subject-matters expertise, and experience

    3. Evaluate The Testers effectiveness

  4. The System Architecture

    1. Understand the Architecture and Underlaying Components

    2. Verify that the System Supports Testability

    3. Use Logging to Increase System Testability

    4. Verify that the System Supports Debug and Release Execution Modes

  5. Test Design and Documentation

    1. Divide and Conquer

    2. Mandate the use of Test Procedure Template and other Test Design standards

    3. Derive Effective Test Cases from Requirements

    4. Treat Test Procedures as 'Living' Documents

    5. Utilize System Design and Prototypes

    6. Use proven Testing Techniques when designing Test Cases scenarios

    7. Avoid including constraints and detailed data elements within Test Procedures

    8. Apply Exploratory Testing

  6. Unit Testing

    1. Structure the Development Approach to support Effective Unit Testing

    2. Develop Unit Test in paralel or before the Implementation

    3. Make Uni-Test Execution Part of the Build Process

  7. Automated Testing Tools

    1. Know the different types of Testing Support Tools

    2. Consider building a Tool instead of buying one

    3. Know the impact of Automated Tools on The Testing Effort

    4. Focus on the needs of your organization

    5. Test the Tools on an Application Prototype

  8. Automated Testing

    1. Do not rely solely on capture/playback

    2. Develop Test Harness when necessary

    3. Use proven Test Script Development techniques

    4. Automate Regression Tests when feasible

    5. Implement Automated Builds and Smoke Tests

  9. Non Functional Testing

    1. Do not make Non Functional Testing an Afterthought

    2. Conduct Performance Testing with Production-Sized Databases

    3. Tailor usability Test to the intended audience

    4. Consider all aspects of Security for specific requirements and system-wide

    5. Investigate the System's Implementation to plan for concurrency Tests

    6. Set up an efficient environment for Compatibility Testing

  10. Managing Test Execution

    1. Clearly define the beginning and end of The Test Execution Cycle

    2. Isolate the Test Environment from the Development Environment

    3. Implement a Defect Tracking Life Cycle

    4. Track the execution of The Testing Program

For a few incoming posts next, i will explain one by one all the steps that explained before. And I will combine with my experienced as Software Tester in my company

1 komentar:

moeyo said...

Saya udah pasang LINKnya di blog ssaya, trims ya..?