Software Testing (a) large software testing methods Summary

Software testing a wide range of memory up confusion, if the software testing methods are classified, will be much clearer. I refer to some books and online information, the commonly used software testing methods listed, so that we have a general view of the software testing industry.

 

Classification from the test design method

 

Test Name

Test content

Black box black box

The software system as a "black box", or can not understand the internal structure and the knowledge to use the system. From the behavior of the software, rather than starting to design the internal structure of the test.

White box white box

Designers can see the internal structure of the software system, and the use of internal knowledge software to guide the selection of test data and methods.

Gray box. Gray box testing

Between black box and white box

 

Summary: practical work, the better understanding of the system. Most testers are doing black box testing, there is little to do white-box testing. Because white-box testing requirements for software testers is very high, we need to have a lot of programming experience. .NET program do you want to white-box testing can understand .NET code. JAVA program do the test, you need to be able to understand JAVA code. If you can understand, and what you will do the test

 

From the test is manual or automatic classification

 

Test Name

Test content

Manual Test Manual Test

Manual testers to test with the mouse (test GUI)

Automation Automated Test

Program testing program (Test API)

 

For the project, the manual and automated tests are equally important, it is the protection of software quality approach. At present, most of the project team are manual and automated tests combined. Automated test can not be made because many, many complex business logic is difficult to automate, so the automated testing manual testing can not be replaced.

For personal development of software testers, do automated testing is a challenge, but also a test of the direction of staff development, testing needs to learn a lot of development knowledge (development of knowledge is really long learning ah). In the long term, automated testing is definitely more sought-after.

The manual testing more suitable for people who just work soon, manual testing biggest drawback is the low-tech, tedious, easy basket.

 

Overall, the manual test wins in the test business logic, and test automation test wins in the underlying architecture.

 

If the program is being tested testability is better, it is necessary to make automated testing. Automated do try to make automation, the following scenario is possible to do automation

1. Test stored procedure. For example C # stored procedure to test

2. Testing Web servies such as: use SoupUI tool, or C #, Java to test Web servies.

3. The interface and business logic of the system, for example, MVC, MVP architecture, or WPF application. Test scripts can be used to test these API programs.

 

For the purposes of classification test

function test

Tested range from small to large, from the inside out, from the program developer (unit tests) to the tester, the general user Alpha / Beta Testing

Test Name

Test content

Unit Test  Unit Testing

At the lowest functional / verify the accuracy of the program parameters, such as testing the correctness of a function (developers do)

Functional Test  Functional Test

Functional verification module (testers do)

Integration Test  Integration Test

Several functional verification module dependencies of each other  (testers do)

Scenario Test   Scenario Test

Several modules can be completed to verify a user scenario  (testers do)

System Test   System Test

For the test the whole system functions  (testers do)

Alpha Testing

Software testing personnel to conduct a comprehensive testing of the software in the real user environment  (testers do)

Beta Testing

The real test of the user in the real user environment, also known as beta (end users do)

 

 

 

Non-functional testing

In addition to the basic functions of a software, there are a lot of properties outside the function, which is called " at Quality of Service Requirement " quality of service requirements. No software features, these features are unable to show it, so we should at an appropriate stage of software development - do these tests after the completion of basic functions.

 

Test Name

Test content

Stress test Stress Test

Verification software can still return the correct results in the case of exceeding the design load, no crashes

Load test load test

Test software can work under load

Performance test Performance Testing

Performance testing software, whether to provide satisfactory service quality

Accessibility test

Software accessibility testing - testing whether the software to provide adequate accessibility to disabled users

Localization/Globalization

Localization / globalization testing

Compatibility Test

Compatibility Test

Configuration Test

Configuration testing - testing software can work in a variety of configurations

Usability Test

Usability testing  - testing software is easy to use

Security Test

Software security testing

 

Performance Testing

Performance Testing Test requires skilled personnel performance testing tools, such as QTP, LoadRunner, Jmeter. Visual Studio also provides a lot of performance testing tool for testers required low-level protocol is very understanding and scripting

Performance testing is very technical content, promising, is a career development software testers.

 

Security testing

Content security testing is very broad, very difficult ah. My only contact with XSS (cross-site scripting) and SQL injection attacks.

Security testing is very technical content, I think that career development is a software tester

 

 

By timing and the role of classification test

 

In the software development process, many test acts as a "beacon" role, they told us that the software development process is smooth.

 

Test Name

Test content

Smoke Test

" Smoke" - if the test is not passed, it can not be the next step

Build Verification Test(BVT)

Verify whether to build the basic test.

Acceptance Test

Acceptance tests, in order to fully assess certain features / characteristics do the test

 

BVT test is a Smoke Test, refers to the generation after Build good, automated test scripts run automatically to check the basic functions of the Build. If the BVT test fails, it requires developers to immediately modify, rebuild Build

 

 

 

Measured by test strategies classification.

 

Test Name

Test content

Regression Test  Regression Testing

For a new version, re-run the previous test case to see if there is a new version of degradation and a known version compared to the  (regression)

Ad hoc Test exploratory testing

The randomized, exploratory testing.

Sanity Test

Rough test, only part of the implementation of test cases

 

Regression Test  Regression Testing:  

Software testers is to repeat the test, so the best automated regression testing, otherwise the tester will repeat the test over and over again, 

1. Developers do some small changes, we need to test staff to do regression testing. Ensure existing functionality has not been destroyed

2. Bug Fix regression testing also needs to ensure that the new code fixes Fix, also ensure that existing functionality has not been destroyed

3. Project late, we need to do a full regression testing to ensure that all functions are good

 

Ad hoc Test exploratory testing: 

I usually like to do random testing, and set aside test case. In accordance with their own ideas, just little. If the test GUI, Ad hoc can find a lot of bug. 

 

Classification from the test design method

 

Test Name

Test content

Black box black box

The software system as a "black box", or can not understand the internal structure and the knowledge to use the system. From the behavior of the software, rather than starting to design the internal structure of the test.

White box white box

Designers can see the internal structure of the software system, and the use of internal knowledge software to guide the selection of test data and methods.

Gray box. Gray box testing

Between black box and white box

 

Summary: practical work, the better understanding of the system. Most testers are doing black box testing, there is little to do white-box testing. Because white-box testing requirements for software testers is very high, we need to have a lot of programming experience. .NET program do you want to white-box testing can understand .NET code. JAVA program do the test, you need to be able to understand JAVA code. If you can understand, and what you will do the test

 

From the test is manual or automatic classification

 

Test Name

Test content

Manual Test Manual Test

Manual testers to test with the mouse (test GUI)

Automation Automated Test

Program testing program (Test API)

 

For the project, the manual and automated tests are equally important, it is the protection of software quality approach. At present, most of the project team are manual and automated tests combined. Automated test can not be made because many, many complex business logic is difficult to automate, so the automated testing manual testing can not be replaced.

For personal development of software testers, do automated testing is a challenge, but also a test of the direction of staff development, testing needs to learn a lot of development knowledge (development of knowledge is really long learning ah). In the long term, automated testing is definitely more sought-after.

The manual testing more suitable for people who just work soon, manual testing biggest drawback is the low-tech, tedious, easy basket.

 

Overall, the manual test wins in the test business logic, and test automation test wins in the underlying architecture.

 

If the program is being tested testability is better, it is necessary to make automated testing. Automated do try to make automation, the following scenario is possible to do automation

1. Test stored procedure. For example C # stored procedure to test

2. Testing Web servies such as: use SoupUI tool, or C #, Java to test Web servies.

3.   界面和业务逻辑分离的系统,比如,MVC,MVP架构, 或者WPF 程序。 可以用测试脚本去测试这些程序的API。

 

从测试的目的分类

功能测试

测试的范围从小到大,从内到外, 从程序开发人员(单元测试)到测试人员,到一般用户Alpha/Beta测试

测试名称

测试内容

Unit Test 单元测试

在最低的功能/参数上验证程序的准确性,比如测试一个函数的正确性(开发人员做的)

Functional Test 功能测试

验证模块的功能  (测试人员做的)

Integration Test 集成测试

验证几个互相有依赖关系的模块的功能 (测试人员做的)

Scenario Test  场景测试

验证几个模块是否能完成一个用户场景 (测试人员做的)

System Test  系统测试

对于整个系统功能的测试 (测试人员做的)

Alpha 测试

软件测试人员在真实用户环境中对软件进行全面的测试 (测试人员做的)

Beta 测试

真实的用户在真实的用户环境中进行的测试, 也叫公测   (最终用户做的)

 

 

 

非功能测试

一个软件除了基本功能之外,还有很多功能之外的特性,这些叫“Quality of Service requirement服务质量需求。没有软件的功能,这些特性都无从表现出来,因此,我们要在软件开发的适当阶段-基本功能完成后做这些测试。

 

测试名称

测试内容

Stress test 压力测试

验证软件在超过负载设计的情况下仍能返回正确的结果,没有崩溃

Load test 负载测试

测试软件在负载情况下能否正常工作

Performance test性能测试

测试软件的效能,是否提供满意的服务质量

Accessibility test

软件辅助功能测试-测试软件是否向残疾用户提供足够的辅助功能

Localization/Globalization

本地化/全球化测试

Compatibility Test

兼容性测试

Configuration Test

配置测试-测试软件在各种配置下能否正常工作

Usability Test

可用性测试 –测试软件是否好用

Security Test

软件安全性测试

 

性能测试

性能测试要求测试人员熟练性能测试工具,比如QTP, LoadRunner, Jmeter。  Visual Studio也提供了很多性能测试的工具. 要求测试人员对低层协议非常理解和编写脚本

性能测试非常有技术含量, 很有发展前途, 是软件测试人员的一个职业发展方向。

 

安全性测试

安全性测试的内容很广, 非常有难度啊。 我只接触过XSS(跨站脚本攻击)和SQL注入攻击。

安全性测试非常有技术含量, 我认为也是软件测试人员的一个职业发展方向

 

 

按测试的时机和作用分类

 

在开发软件的过程中,不少测试起着“烽火台”的作用,它们告诉我们软件开发的流程是否畅通。

 

测试名称

测试内容

Smoke Test

冒烟”如果测试不通过,则不能进行下一步工作

Build Verification Test(BVT)

验证构建是否通过基本测试。

Acceptance Test

验收测试,为了全面考核某功能/特性而做的测试

 

BVT测试是一种Smoke Test, 指Build生成好之后,自动运行的自动化测试脚本来检查这个Build的基本功能。 如果BVT测试失败了,需要开发人员马上修改,重新生成Build

 

 

 

按测试测策略分类。

 

测试名称

测试内容

Regression Test 回归测试

对一个新的版本,重新运行以往的测试用例,看看新版本和已知的版本相比是否有退化 (regression)

Ad hoc Test 探索性测试

随机进行的,探索性的测试。

Sanity Test

粗略的测试, 只需要执行部分的测试用例

 

Regression Test 回归测试:  

对软件测试人员来说就是重复测试,所以回归测试最好是自动化的, 否则测试人员就要一遍又一遍地重复测试, 

1. 开发人员做些小改动,就需要测试人员做回归测试。确保现有的功能没有被破坏

2. Bug Fix 也需要回归测试,确保新的代码修复了Fix, 也确保现有的功能没有被破坏

3. 项目后期,需要做一个完整回归测试, 确保所有的功能都是好的

 

Ad hoc Test 探索性测试: 

平常我最喜欢做随机测试了, 抛开test case.  自己按照自己的思路,随便点点。 如果测试GUI,Ad hoc能发现大量的bug. 

Guess you like

Origin www.cnblogs.com/gxunique/p/11593819.html