Monday, November 1, 2010

Manual Testing and more.


5 years back I got assignment writing on Manual testing. We know about it but when I have started searching on Manual testing it was really hard to find info. I was really surprised for not finding enough resources and because all the way we are using the term and working. Then why it’s too hard to find it?

I have studied on it and made documents for Manual testing. Even today I cannot recall the reference paper those I have followed. I have added few things from wiki and it could be useful for people not to memorizing but having an idea.

 

Manual Testing


                a. Paper based test cases
                b. Tools for version management of test cases
                c. Usability Test


*Definition of Manual Testing: Developing and executing tests that rely primarily on direct and continuous human interaction, especially evaluating correctness and test status (pass, fail, warn, etc.)

Manual testing is when testers:
·         Enter data
·         Observe behaviors
·         Actively run tests

Note: Manual testing may involve the use of tools
·         To create specific test conditions like load or errors
·         To capture performance statistics or internal states

**Stages: There are several stages of Manual testing. They are:

  • Unit Testing: This initial stage in testing normally carried out by the developer who wrote the code and sometimes by a peer using the white box testing technique.

  • Integration Testing: This stage is carried out in two modes viz. as a complete package or as an increment to the earlier package. Most of the time black box testing technique is used. However, sometimes a combination of Black and White box testing is also used in this stage.

  • System Testing: In this stage the software is tested from all possible dimensions for all intended purposes and platforms. In this stage Black box testing technique is normally used.

  • User Acceptance Testing: This testing stage carried out in order to get customer sign-off of finished product. A 'pass' in this stage also ensures that the customer has accepted that the software is ready for their use.

Process of Manual Testing:

  • Preparing Test Cases
                                                SRS (Software Requirement Specification)
                                                UserStorySpec
A/V (Audio/video) files
ESSS (Electronic Static Screenshots)
RAD template
  • Reviewing Test Cases
  • Test Executes

*Challenges of Manual Testing:

• How do you staff the manual test team?
• What do test neophytes need to know?
• Can you maximize use of scarce equipment with manual testing?
• Can you sell management on the plan?
• What technical and managerial pitfalls exist for manual testing?

*Sizing the Manual Test Effort:

Given a set of tests to run in a period of time, plan number of techs needed
                a. Test considerations
·         For each test case, know…
Person-hours effort
Wall-clock duration
Dependencies and prerequisites
b. Use project-planning software to create schedule, keeping in mind...
c. Project considerations
·         For process and team, know overhead of…
Reporting defects
Documenting test status
Communication, e-mail and management guidance
Breaks
Blocking issues/debugging
d. Rules of thumb
·         6 test hrs/8-10 hr day
·         75% downtime (bad SW), 25% (good SW)

*Technical Caveats:

a. Tests Well-Suited for Manual Testing
·         Functional
·         Use cases (user scenarios)
·         Error handling and recovery
·         Localization
·         User interface
·         Configurations and compatibility
·         Operations and maintenance
·         Date and time handling
·         Installation, conversion, and setup testing
·         Documentation and help screens

b. Tests Poorly Suited for Manual Testing
·         Monkey (or random)
·         Load, volume, and capacity
·         Reliability and stability (MTBF)
·         Code coverage
·         Performance
·         Standards compliance

Caution: Using manual testing inappropriately can mislead people about the extent of test coverage

Weaknesses of Manual Testing:

  • Incomplete testing
  • Skipped input event sequences
  • Incorrect verification of output
  • Personal attention required
  • Unattended testing ruled out
  • Aborting a test implies manual retesting
  • Increased cost
  • Regression testing implies re -executing test cases
  • Overall testing cost and effort multiplies
  • No unattended testing
  • Same test
Different inputs
Different versions
Different platforms

**Comparison to Automated Testing:

Test automation may be able to reduce or eliminate the cost of actual testing. A computer can follow a root sequence of steps more quickly than a person, and it can run the tests overnight to present the results in the morning. However, the labor that is saved in actual testing must be spent instead authoring the test program. Depending on the type of application to be tested, and the automation tools that are chosen, this may require more labor than a manual approach. In addition, some testing tools present a very large amount of data, potentially creating a time consuming task of interpreting the results. From a cost-benefit perspective, test automation becomes more cost effective when the same tests can be reused many times over, such as for regression testing and test-driven development, and when the results can be interpreted quickly. If future reuse of the test software is unlikely, then a manual approach is preferred.

Things such as device drivers and software libraries must be tested using test programs. In addition, testing of large numbers of users (performance testing and load testing) is typically simulated in software rather than performed in practice.

Conversely, graphical user interfaces whose layout changes frequently are very difficult to test automatically. There are test frameworks that can be used for regression testing of user interfaces. They rely on recording of sequences of keystrokes and mouse gestures, then playing them back and observing that the user interface responds in the same way every time. Unfortunately, these recordings may not work properly when a button is moved or relabeled in a subsequent release. An automatic regression test may also be fooled if the program output varies significantly (e.g. the display includes the current system time). In cases such as these, manual testing may be more effective

*All about Manual Testing:

·         Full test automation is not always possible
·         Manual testing is an effective and economical alternative
·         Manual testing involves facing some unique but tractable challenges
·         Proper planning of the manual effort and training of the technicians are critical
·         Manual testing can solve problems for you and for management



References:

  1. http://www.rbcs-us.com/images/documents/ShoestringManualTesting%28Slides%29.pdf (*)
  2. http://en.wikipedia.org/wiki/Manual_testing (**)
  3. Asterisks are for reference indication

3 comments:

  1. in my point of view, testing preparation (test cases and test plans) are not sufficient to make a full test for the system... at some points Ad-Hoc and unplanned testing is required.
    This applies too when talking about manual and automation testing, since you can make an automation testing but you can't put the manual testing aside..

    ReplyDelete
  2. I think you are misinformed.

    Do you really think you can prove the correctness of software?

    Do you always need to enter data when you test?

    Do you really think a "pass" in acceptance testing ensures that the software is ready?

    If the weakness of manual testing is "incomplete testing", then what in your opinion is complete testing?


    There are a lot more wrong remarks in this post.

    Regards,
    Sajjadul Hakim

    ReplyDelete
  3. I do agree with Mohammad...Only Planned testing can not pull out all the bugs...Unplanned testing plays a key role in testing life cycle......

    ReplyDelete