Tuesday 16 April 2013

Software Testing Terminology


Error - The difference between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition.

Fault - An incorrect step, process, or data definition in a computer program.

Debug - To detect, locate, and correct faults in a computer program.

Failure - The inability of a system or component to perform its required functions within specified performance requirements. It is manifested as a fault.

Testing - The process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the features of the software items.

Static analysis - The process of evaluating a system or component based on its form, structure, content, or documentation.

Dynamic analysis - The process of evaluating a system or component based on its behavior during execution.

Correctness - The degree to which a system or component is free from faults in its specification, design, and implementation. The degree to which software, documentation, or other items meet specified requirements. The degree to which software, documentation, or other items meet user needs and expectations, whether specified or not.

Verification - The process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. Formal proof of program correctness.

Validation - The process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements.

Tip to create workflow in JIRA quickly


To my colleagues who want to create quickly new workflow and don't want to touch xml \ property files.

On Administrator \ Workflows

If you don't have default workflow then create default Workflow with default JIRA "workflow" - it will show status as "active" so we cannot update its scheme \ workflow steps.
Copy this workflow -- it has status as "Inactive" so we can update workflow scheme.
Go to link "steps" and add new status \ transitions for new steps as required in your workflow.

On Administrator \ Workflow Schemes

Create new "Workflow Scheme" then click on "Workflows" link operation of new workflow just created.
Assign workflow to scheme,... Issue type "Bug" and select our workflow from the list.
Assign other workflows for issue types : Task, New Feature or Improvement with default workflow ( named JIRA ) or your workflow.

Now our workflow scheme is ready to associate with our project.
Go to your project admin panel and set workflow scheme there.

What are advantages or disadvantages of automated testing?


Following are the advantages for using automated tools: 
  • Fast: Human be slow but Automated Testing Tool runs tests significantly faster than human users.
  • Reliable: Tests perform precisely the same operations each time they are run, thereby eliminating human error.
  • Repeatable: You can test how the software reacts under repeated execution of the same operations.
  • Programmable: You can program sophisticated tests that bring out hidden information from the application.
  • Reusability: You can reuse the Automated Test scripts, user defined functions etc. 

Automated tools have following disadvantages: 
  • Usability Testing: Usability of software can not be automated so automated tools cannot rate the usability of an application.
  • Cost:  Usually these are licensed so automated tools are quite expensive
  • Programming knowledge required: To customize test scripts according to test requirement. Test maintenance is costly: In case of playback methods. Even though a minor change occurs in the GUI, the test script has to be rerecorded or replaced by a new test script.

What is a test cases review?

Software Testing plays a vital role in ensuring the quality of a Software product. Test cases are the key tools for testing. Test cases review has to be thorough in order to ensure that effective and adequate testing is done

What is the importance of test cases review?
  • Test cases are written with the intent to detect the defects
  • Understanding of the requirement is correct
  • Impact areas are identified and brought under test
  • Test data is correct and represent every possible class of the domain
  • Positive and negative scenarios are covered
  • Expected behavior is documented correctly
  • Test coverage is adequate
What is the methodology of test cases review?

Typically, reviews should be done during each phase in the Testing Life cycle
The phases involved in Software testing lifecycle are

Requirements understanding --During the Requirements Understanding phase, review of requirements is an activity that should be undertaken with utmost care and such review should be done systematically to ensure the clarity, correctness and testability of the requirements.
Test preparation--During the Test preparation phase, after the test scenarios are identified and test conditions and cases are built for each scenario, it is advisable to do a thorough and detailed review. Checklist for Test cases review during the Test Preparation Phase
Test Execution--During the test execution phase, doing a review after the cases are executed is very important .
Test Reporting--During the Test Reporting phase, it would help to ensure that all the required documents are prepared, metrics are collated and all the project specific formalities are completed.

What are the most common test case review defects?
  • Incomplete Test Cases
  • Missing negative test cases
  • No Test Data
  • Inappropriate/Incorrect Test data
  • Incorrect Expected behavior
  • Grammatical errors
  • Typos
  • Inconsistent tense/voice
  • Incomplete results/number of test runs
  • Defect details not updated
  • Changes to requirements not updated in Test case