看到 Wikipedia 上面有一篇对于软件测试的综述,挺有总结性,做下读书笔记。
Wikipedia 的这篇文章,可以通过下面的 URL 访问:
http://en.wikipedia.org/wiki/Software_testing
Testing Level : 根据测试在整个软件项目中的的介入时间,或者层面,可以将测试分为四个 Level:
1 - Unit Testing
2 - Integration Testing
3 - Component Interface testing
4 - System Testing
慢慢的可以看到, 其实这四个 Testing level, 可以理解为测试目标的范围来区分本质的不同, 当其他三个级别的测试都做完的时候,剩下的就是 system testing 了。
1 - 当增加/减少一个功能的时候,我们都需要来一次整体性的测试,以保证新增加或者减少的功能不影响原先的一致性
2 - system testing 可以包括, 登录,增/删/改/查,性能,异常捕获以及并发等测试
列举一些 system testing 用到的 testing type:
Graphical user interface testing
Usability testing
Software performance testing( 个人理解: 可以编程的方式模拟并发,大数据量等)
Compatibility testing
Exception handling
Load testing
Volume testing
Stress testing
Security testing
Scalability testing
Sanity testing(个人理解: 类似于数据库中的 ACID 的测试)
Smoke testing
Exploratory testing(个人理解:爆破性的测试,安全性测试)
Ad hoc testing
Regression testing
Installation testing
Maintenance testing[clarification needed]
Recovery testing and failover testing.
Accessibility testing, including compliance with:
Americans with Disabilities Act of 1990
Section 508 Amendment to the Rehabilitation Act of 1973
Web Accessibility Initiative (WAI) of the World Wide Web Consortium (W3C)
> 参考:http://en.wikipedia.org/wiki/System_testing
工作中,用到了 regression testing, 所以着重了解了下:
1 定义:Regression testing is a type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas of a system after changes such as enhancements, patches or configuration changes, have been made to them.
2 目的:从定义可以看到, regression testing 目的就是为了消灭新增加/减少的功能是不是会给系统带来影响
The intent of regression testing is to ensure that changes such as those mentioned above have not introduced new faults.[1] One of the main reasons for regression testing is to determine whether a change in one part of the software affects other parts of the software
3 常用方法: 配置一整套测试系统功能,健壮性的测试流程,每一次在产品完成之后,做一回 regression testing. 其实这里更应该做自动化的测试。
Common methods of regression testing include rerunning previously completed tests and checking whether program behavior has changed and whether previously fixed faults have re-emerged. Regression testing can be performed to test a system efficiently by systematically selecting the appropriate minimum set of tests needed to adequately cover a particular change.
以上引用来自:http://en.wikipedia.org/wiki/Regression_testing
偶尔也会用到 smoke testing:
目的: quick testing. 简单理解就是要快。通过 smoke testing,可以回答类似于“是否可以打开”,”是否可以登录“, ”是否可以显示报表“等等小问题,如果这些都错误,那么不需要再进一步做 Integration testing, regression testing 了。
方法: 自动化测试工具,regression testing 的一系列测试案例也可以用来做 smoke testing.