Why Software Testing?

Testing Definition:
Testing is a set of activities that can be planned in advance and conducted systematically to uncover the defects or errors to assess the quality.

Why testing is necessary?
Without testing, we have no way to establishing the quality of an information system. This means that the product we are developing could have faults that may damage our business when we implement it. Some faults can cause minor disruptions, but others can be potentially life threatening. Therefore, we need to establish which faults are nested in an information system before it is released.

Some developers believe that the goal of testing is to ensure that an information system does what it is supposed to do. While this is certainly an important part of testing, it is not a complete requirement. When we test an information system, we want to add value to it – testing costs money, so there must be a cost benefit in performing tests. This means adding quality through the identification of issues, and reporting them to the development team responsible for fixing them. Therefore, the assumption that we should start with is not that an information system works correctly, but rather that it contains faults, which must be identified. Testing should aim to identify as many faults as possible. Looking at testing in this light can give you a very different mindset – you will be looking for faults and failures instead of monitoring if the information system performs as described. Our test cases will be more focused on the thing testers really want, finding the bugs.

Not all encountered failures have to be solved before an information system can be taken into production – instead of ‘unknown bugs’, they become ‘known errors’ and can be scheduled for debugging by a developer. Testers provide this information to the decision makers in an Organization so that a well-founded risk assessment can be undertaken prior to an implementation decision being made.


Testing is always risk based – where there are no risks, we should not put any effort into testing an information system.
You cannot test everything – some risks will always remain, even in a fully tested system.
You can demonstrate that there are faults in an information system, but you cannot say with certainly that there are no faults.
The bugs are social creatures – if you find errors in one area, you would expect to find more errors in that specific area.
Testing is a job that is very distinct from development, requiring special skills, even if it is not always looked upon that way.
In previous years, testing was considered to be just another phase in the cycle of system development – testing followed coding as night follows day. This implied that a precondition to testing was that coding was largely finished, and that any code changes identified by testing would be minimal. Testing was always on a critical path, and every delay that the development team suffered meant less time for testing. Faults in an information system were identified in the testing phase only by the obvious method of executing the code.

Firstly, it has been recognized that faults cannot be found only by executing the code – potential defects can be identified much earlier in the development cycle. For example, every product developed during a project can be tested by using techniques such as reviews, structured walkthroughs, and inspections.

Software Testing Objectives

Testing is a process of executing a program with the intent of finding an error.

Software testing is a critical element of software quality assurance and represents the ultimate review of system specification, design and coding. Testing is the last chance to uncover the errors / defects in the software and facilitates delivery of quality system.

Software Testing Principles
The basic principles for effective software testing are as follows:

A good test case is one that has a high probability of finding an as-yet undiscovered error.
A successful test is one that uncovers an as-yet-undiscovered error.
All tests should be traceable to the customer requirements
Tests should be planned long before testing begins
Testing should begin “ in the small” and progress towards testing “in the large”
Exhaustive testing is not possible

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11379785/viewspace-670823/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11379785/viewspace-670823/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值