The main objective of testing is to find defects in requirements, design, documentation, and code as early as possible. The test process should be such that the software product that will be delivered to the customer is defect less. All Tests should be traceable to customer requirements.
Test cases must be written for invalid and unexpected, as well as for valid and expected input conditions. A necessary part of a test case is a definition of the expected output or result. A good test case is one that has high probability of detecting an as-yet undiscovered error.
Eight Basic Principles of Testing
· Define the expected output or result.
· Don't test your own programs.
· Inspect the results of each test completely.
· Include test cases for invalid or unexpected conditions.
· Test the program to see if it does what it is not supposed to do as well as what it is supposed to do.
· Avoid disposable test cases unless the program itself is disposable.
· Do not plan tests assuming that no errors will be found.
The probability of locating more errors in any one module is directly proportional to the number of errors already found in that module.
Best Testing Practices to be followed during testing
· Testing and evaluation responsibility is given to every member, so as to generate team responsibility among all.
· Develop Master Test Plan so that resource and responsibilities are understood and assigned as early in the project as possible.
· Systematic evaluation and preliminary test design are established as a part of all system engineering and specification work.
· Testing is used to verify that all project deliverables and components are complete, and to demonstrate and track true project progress.
· A-risk prioritized list of test requirements and objectives (such as requirements-based, design-based, etc) are developed and maintained.
· Conduct Reviews as early and as often as possible to provide developer feedback and get problems found and fixed as they occur.
Tuesday, January 15, 2008
Software Testing
Why software Testing?
Software testing helps to deliver quality software products that satisfy user’s requirements, needs and expectations. If done poorly,
Ø defects are found during operation,
Ø it results in high maintenance cost and user dissatisfaction
Ø It may cause mission failure
Ø Impact on operational performance and reliability
Software Bug: A Formal Definition
Calling any and all software problems bugs may sound simple enough, but doing so hasn’t really addressed the issue. To keep from running in circular definitions, there needs to be a definitive description of what a bug is.
A software bug occurs when one or more of the following five rules is true:
1) The software doesn’t do something that the product specification says it should do.
2) The software does something that the product specification says it shouldn’t do.
3) The software does something that the product specification doesn’t mention.
4) The software doesn’t do something that the product specification doesn’t mention but should.
5) The software is difficult to understand, hard to use, slow, or –in the software tester’s eyes- will be viewed by the end user as just plain not right.
What exactly does Software Tester Do? (Or Role of Tester)
From the above Examples you have seen how nasty bugs can be and you know what is the definition of a bug is, and you can think how costly they can be. So main goal of tester is
“The goal of Software Tester is to find bugs”
As a software tester you shouldn’t be content at just finding bugs, you should think about how to find them sooner in the development process, thus making them cheaper to fix.
“The goal of a Software Tester is to find bugs, and find them as early as possible”.
But, finding bugs early isn’t enough.
“The goal of a Software Tester is to find bugs, and find them as early as possible and make sure they get fixed”
Software testing helps to deliver quality software products that satisfy user’s requirements, needs and expectations. If done poorly,
Ø defects are found during operation,
Ø it results in high maintenance cost and user dissatisfaction
Ø It may cause mission failure
Ø Impact on operational performance and reliability
Software Bug: A Formal Definition
Calling any and all software problems bugs may sound simple enough, but doing so hasn’t really addressed the issue. To keep from running in circular definitions, there needs to be a definitive description of what a bug is.
A software bug occurs when one or more of the following five rules is true:
1) The software doesn’t do something that the product specification says it should do.
2) The software does something that the product specification says it shouldn’t do.
3) The software does something that the product specification doesn’t mention.
4) The software doesn’t do something that the product specification doesn’t mention but should.
5) The software is difficult to understand, hard to use, slow, or –in the software tester’s eyes- will be viewed by the end user as just plain not right.
What exactly does Software Tester Do? (Or Role of Tester)
From the above Examples you have seen how nasty bugs can be and you know what is the definition of a bug is, and you can think how costly they can be. So main goal of tester is
“The goal of Software Tester is to find bugs”
As a software tester you shouldn’t be content at just finding bugs, you should think about how to find them sooner in the development process, thus making them cheaper to fix.
“The goal of a Software Tester is to find bugs, and find them as early as possible”.
But, finding bugs early isn’t enough.
“The goal of a Software Tester is to find bugs, and find them as early as possible and make sure they get fixed”
Software Testing
Software testing is a critical element of software quality assurance and represents the ultimate process to ensure the correctness of the product. The quality product always enhances the customer confidence in using the product thereby increases the business economics. In other words, a good quality product means zero defects, which is derived from a better quality process in testing.
Software is an integrated set of Program codes, designed logically to implement a particular function or to automate a particular process. To develop a software product or project, user needs and constraints must be determined and explicitly stated. The development process is broadly classified into two.
1. Product development
2. Project development
Product development is done assuming a wide range of customers and their needs. This type of development involves customers from all domains and collecting requirements from many different environments.
Project Development is done by focusing a particular customer's need, gathering data from his environment and bringing out a valid set of information that will help as a pillar to development process.
Testing is a necessary stage in the software life cycle: it gives the programmer and user some sense of correctness, though never "proof of correctness. With effective testing techniques, software is more easily debugged, less likely to "break," more "correct", and, in summary, better.
Most development processes in the IT industry always seem to follow a tight schedule. Often, these schedules adversely affect the testing process, resulting in step motherly treatment meted out to the testing process. As a result, defects accumulate in the application and are overlooked so as to meet deadlines. The developers convince themselves that the overlooked errors can be rectified in subsequent releases.
The definition of testing is not well understood. People use a totally incorrect definition of the word testing, and that this is the primary cause for poor program testing.
Testing the product means adding value to it by raising the quality or reliability of the product. Raising the reliability of the product means finding and removing errors. Hence one should not test a product to show that it works; rather, one should start with the assumption that the program contains errors and then test the program to find as many of the errors as possible.
Definitions of Testing:
“Testing is the process of executing a program with the intent of finding errors ”
Or
“Testing is the process of evaluating a system by manual or automatic means and verify that it satisfies specified requirements”
Or
"... the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirements or to identify differences / between expected and actual results..."
Software is an integrated set of Program codes, designed logically to implement a particular function or to automate a particular process. To develop a software product or project, user needs and constraints must be determined and explicitly stated. The development process is broadly classified into two.
1. Product development
2. Project development
Product development is done assuming a wide range of customers and their needs. This type of development involves customers from all domains and collecting requirements from many different environments.
Project Development is done by focusing a particular customer's need, gathering data from his environment and bringing out a valid set of information that will help as a pillar to development process.
Testing is a necessary stage in the software life cycle: it gives the programmer and user some sense of correctness, though never "proof of correctness. With effective testing techniques, software is more easily debugged, less likely to "break," more "correct", and, in summary, better.
Most development processes in the IT industry always seem to follow a tight schedule. Often, these schedules adversely affect the testing process, resulting in step motherly treatment meted out to the testing process. As a result, defects accumulate in the application and are overlooked so as to meet deadlines. The developers convince themselves that the overlooked errors can be rectified in subsequent releases.
The definition of testing is not well understood. People use a totally incorrect definition of the word testing, and that this is the primary cause for poor program testing.
Testing the product means adding value to it by raising the quality or reliability of the product. Raising the reliability of the product means finding and removing errors. Hence one should not test a product to show that it works; rather, one should start with the assumption that the program contains errors and then test the program to find as many of the errors as possible.
Definitions of Testing:
“Testing is the process of executing a program with the intent of finding errors ”
Or
“Testing is the process of evaluating a system by manual or automatic means and verify that it satisfies specified requirements”
Or
"... the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirements or to identify differences / between expected and actual results..."
Software Testing
Software testing is a critical element of software quality assurance and represents the ultimate process to ensure the correctness of the product. The quality product always enhances the customer confidence in using the product thereby increases the business economics. In other words, a good quality product means zero defects, which is derived from a better quality process in testing.
Software is an integrated set of Program codes, designed logically to implement a particular function or to automate a particular process. To develop a software product or project, user needs and constraints must be determined and explicitly stated. The development process is broadly classified into two.
1. Product development
2. Project development
Product development is done assuming a wide range of customers and their needs. This type of development involves customers from all domains and collecting requirements from many different environments.
Project Development is done by focusing a particular customer's need, gathering data from his environment and bringing out a valid set of information that will help as a pillar to development process.
Testing is a necessary stage in the software life cycle: it gives the programmer and user some sense of correctness, though never "proof of correctness. With effective testing techniques, software is more easily debugged, less likely to "break," more "correct", and, in summary, better.
Most development processes in the IT industry always seem to follow a tight schedule. Often, these schedules adversely affect the testing process, resulting in step motherly treatment meted out to the testing process. As a result, defects accumulate in the application and are overlooked so as to meet deadlines. The developers convince themselves that the overlooked errors can be rectified in subsequent releases.
The definition of testing is not well understood. People use a totally incorrect definition of the word testing, and that this is the primary cause for poor program testing.
Testing the product means adding value to it by raising the quality or reliability of the product. Raising the reliability of the product means finding and removing errors. Hence one should not test a product to show that it works; rather, one should start with the assumption that the program contains errors and then test the program to find as many of the errors as possible.
Definitions of Testing:
“Testing is the process of executing a program with the intent of finding errors ”
Or
“Testing is the process of evaluating a system by manual or automatic means and verify that it satisfies specified requirements”
Or
"... the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirements or to identify differences / between expected and actual results..."
Software is an integrated set of Program codes, designed logically to implement a particular function or to automate a particular process. To develop a software product or project, user needs and constraints must be determined and explicitly stated. The development process is broadly classified into two.
1. Product development
2. Project development
Product development is done assuming a wide range of customers and their needs. This type of development involves customers from all domains and collecting requirements from many different environments.
Project Development is done by focusing a particular customer's need, gathering data from his environment and bringing out a valid set of information that will help as a pillar to development process.
Testing is a necessary stage in the software life cycle: it gives the programmer and user some sense of correctness, though never "proof of correctness. With effective testing techniques, software is more easily debugged, less likely to "break," more "correct", and, in summary, better.
Most development processes in the IT industry always seem to follow a tight schedule. Often, these schedules adversely affect the testing process, resulting in step motherly treatment meted out to the testing process. As a result, defects accumulate in the application and are overlooked so as to meet deadlines. The developers convince themselves that the overlooked errors can be rectified in subsequent releases.
The definition of testing is not well understood. People use a totally incorrect definition of the word testing, and that this is the primary cause for poor program testing.
Testing the product means adding value to it by raising the quality or reliability of the product. Raising the reliability of the product means finding and removing errors. Hence one should not test a product to show that it works; rather, one should start with the assumption that the program contains errors and then test the program to find as many of the errors as possible.
Definitions of Testing:
“Testing is the process of executing a program with the intent of finding errors ”
Or
“Testing is the process of evaluating a system by manual or automatic means and verify that it satisfies specified requirements”
Or
"... the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirements or to identify differences / between expected and actual results..."
Subscribe to:
Posts (Atom)