Skip to content
Maggie She edited this page Jul 24, 2017 · 12 revisions

敏捷软件测试常见的七个误区

http://insights.thoughtworkers.org/agile-testing-misunderstanding/

Agile Test Strategy Example Template

http://www.testingexcellence.com/agile-test-strategy-example-template/

Integration Testing

In Integration Testing, individual software modules are integrated logically and tested as a group.

A typical software project consists of multiple software modules, coded by different programmers.

Integration testing focuses on checking data communication amongst these modules.

Hence it is also termed as 'I & T' (Integration and Testing), 'String Testing' and sometimes 'Thread Testing'.

https://www.guru99.com/integration-testing.html

System Testing

System testing is the testing of a complete and fully integrated software product.

Usually software is only one element of a larger computer based system. Ultimately, software is interfaced with other software/hardware systems.

System testing is actually a series of different tests whose sole purpose is to exercise the full computer based system.

Two Category of Software Testing

Black Box Testing White Box Testing System test falls under the black box testing category of software testing. White box testing is the testing of the internal workings or code of a software application. In contrast, black box or system testing is the opposite. System test involves the external workings of the software from the user's perspective.

Different Types of System Testing There are more than 50 types of System Testing. For an exhaustive list of software testing types click here. Below we have listed types of system testing a large software development company would typically use

Usability Testing - Usability testing mainly focuses on the user's ease to use the application, flexibility in handling controls and ability of the system to meet its objectives

Load Testing - Load testing is necessary to know that a software solution will perform under real-life loads.

Regression Testing- - Regression testing involves testing done to make sure none of the changes made over the course of the development process have caused new bugs. It also makes sure no old bugs appear from the addition of new software modules over time.

Recovery Testing - Recovery testing is done to demonstrate a software solution is reliable, trustworthy and can successfully recoup from possible crashes.

Migration Testing - Migration testing is done to ensure that the software can be moved from older system infrastructures to current system infrastructures without any issues.

Functional Testing - Also known as functional completeness testing, functional testing involves trying to think of any possible missing functions. Testers might make a list of additional functionalities that a product could have to improve it during functional testing.

Hardware/Software Testing - IBM refers to Hardware/Software testing as "HW/SW Testing". This is when the tester focuses his/her attention on the interactions between the hardware and software during system testing. https://www.guru99.com/system-testing.html

Smoke Testing

Smoke Testing is a kind of Software Testing performed after software build to ascertain that the critical functionalities of the program is working fine. It is executed "before" any detailed functional or regression tests are executed on the software build. The purpose is to reject a badly broken application, so that the QA team does not waste time installing and testing the software application.

In Smoke Testing, the test cases chosen cover the most important functionality or component of the system. The objective is not to perform exhaustive testing, but to verify that the critical functionalities of the system is working fine. For Example a typical smoke test would be - Verify that the application launches successfully, Check that the GUI is responsive ... etc. https://www.guru99.com/smoke-sanity-testing.html

Regression Testing

Regression testing is defined as a type of software testing to confirm that a recent program or code change has not adversely affected existing features.

Regression testing is nothing but full or partial selection of already executed test cases which are re-executed to ensure existing functionalities work fine.

This testing is done to make sure that new code changes should not have side effects on the existing functionalities. It ensures that old code still works once the new code changes are done. https://www.guru99.com/regression-testing.html

Non-functional Testing

Like functional testing, there are non-functional requirements like performance, usability, load factor that are also important.

https://www.guru99.com/non-functional-testing.html

Test Scenario

A Test Scenario is any functionality that can be tested. It is also called Test Condition or Test Possibility. As a tester, you may put yourself in the end user’s shoes and figure out the real-world scenarios and use cases of the Application Under Test.

Scenario Testing is a variant of Software Testing where Scenarios are Used for Testing. Scenarios help in an Easier Way of Testing of the more complicated Systems

https://www.guru99.com/test-scenario.html

Test Case

https://www.guru99.com/test-case.html

Automation Testing

Manual testing is performed by a human sitting in front of a computer carefully executing the test steps.

Automation Testing means using an automation tool to execute your test case suite.

The automation software can also enter test data into the System Under Test , compare expected and actual results and generate detailed test reports.

Test Automation demands considerable investments of money and resources.

Why Automated Testing?

Automated software testing is important due to following reasons:

Manual Testing of all work flows, all fields , all negative scenarios is time and cost consuming

  • It is difficult to test for multi lingual sites manually
  • Automation does not require Human intervention. You can run automated test unattended (overnight)
  • Automation increases speed of test execution
  • Automation helps increase Test Coverage
  • Manual Testing can become boring and hence error prone.

Which Test Cases to Automate?

Test cases to be automated can be selected using the following criterion to increase the automation ROI

  • High Risk - Business Critical test cases
  • Test cases that are executed repeatedly
  • Test Cases that are very tedious or difficult to perform manually
  • Test Cases which are time consuming

The following category of test cases are not suitable for automation:

  • Test Cases that are newly designed and not executed manually atleast once
  • Test Cases for which the requirements are changing frequently
  • Test cases which are executed on ad-hoc basis.

Define the scope of Automation

Scope of automation is the area of your Application Under Test which will be automated. Following points help determine scope:

  • Feature that are important for the business
  • Scenarios which have large amount of data
  • Common functionalities across applications
  • Technical feasibility
  • Extent to which business components are reused
  • Complexity of test cases
  • Ability to use the same test cases for cross browser testing

Planning, Design and Development

During this phase you create Automation strategy & plan, which contains following details-

  • Automation tools selected
  • Framework design and its features
  • In-Scope and Out-of-scope items of automation
  • Automation test bed preparation
  • Schedule and Timeline of scripting and execution
  • Deliverables of automation testing

Test Execution

Automation Scripts are executed during this phase. The scripts need input test data before there are set to run. Once executed they provide detailed test reports.

Execution can be performed using the automation tool directly or through the Test Management tool which will invoke the automation tool.

Example: Quality center is the Test Management tool which in turn it will invoke QTP for execution of automation scripts. Scripts can be executed in a single machine or a group of machines. The execution can be done during night , to save time.

Maintenance

As new functionalities are added to the System Under Test with successive cycles, Automation Scripts need to be added, reviewed and maintained for each release cycle. Maintenance becomes necessary to improve effectiveness of Automation Scripts.

Framework in Automation

A framework is set of automation guidelines which help in

  • Maintaining consistency of Testing
  • Improves test structuring
  • Minimum usage of code
  • Less Maintenance of code
  • Improve re-usability
  • Non Technical testers can be involved in code
  • Training period of using the tool can be reduced
  • Involves Data wherever appropriate

There are four types of framework used in automation software testing:

  1. Data Driven Automation Framework
  2. Keyword Driven Automation Framework
  3. Modular Automation Framework
  4. Hybrid Automation Framework

Different types of software testing that can be automated

  • Smoke Testing
  • Unit Testing
  • Integration Testing
  • Functional Testing
  • Keyword Testing
  • Regression Testing
  • Data Driven Testing
  • Black Box Testing

https://www.guru99.com/automation-testing.html