Basics of Software Testing & Common Problems.
Day 1-Session 1 Lavanya.M
What is Software Testing “Testing is the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirements” On a whole, testing objectives could be summarized as: Testing is a process of executing a program with the intent of finding an error and make sure the bugs are closed within the given time frame. A good test 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.
Why do we need Testing Testing is required to ensure that the applications meets the objectives related to the applications’ functionality, performance, reliability, flexibility, ease of use, and timeliness of delivery. Developers hide their mistakes To reduce the cost of rework by detecting defects at an early stage. Avoid project overruns by following a defined test methodology. Ensure the quality and reliability of the software to the users.
SIX ESSENTIALS OF TESTING The quality of the test process determines the success of the test effort. Prevent defect migration by using early life cycle testing techniques The time taken for software testing tools Testing activities responsibilities for improving the process to be taken. Testing is a professional discipline requiring trained, skilled people. Cultivate a positive team attitude of creative destruction.
Software Testing 10 Rules. Test early and test often. Integrate the application development and testing life cycles. You'll get better results and you won't have to mediate between two armed camps in your IT shop. Formalize a testing methodology; you'll test everything the same way and you'll get uniform results. Develop a comprehensive test plan; it forms the basis for the testing methodology. Use both static and dynamic testing. Define your expected results. Contd…
Software Testing 10 Rules. Contd… Understand the business reason behind the application. You'll write a better application and better testing scripts. Use multiple levels and types of testing (regression, systems, integration, stress and load). Review and inspect the work, it will lower costs. Don't let your programmers check their own work; they'll miss their own errors
A Good Test Engineer. A Good Test Engineer has a ‘test to break’ attitude. An ability to take the point of view of the customer. A strong desire for Quality. Gives more attention to minor details. Tact & diplomacy are useful in maintaining a co-operative relationship with developers Ability to communicate with both technical & non-technical people is useful. Judgment skills are needed to assess high-risk areas of an application on which to focus testing efforts when time is limited.
When to Stop Testing. This can be difficult to determine. Many modern software applications are so complex and run in such an interdependent environment, that complete testing can never be done. Common factors in deciding when to stop are Deadlines, e.g. release deadlines, testing deadlines; Test cases completed with certain percentage passed; Test budget has been depleted; Coverage of code, functionality, or requirements reaches a specified point; Bug rate falls below a certain level; or Beta or alpha testing period ends.
Common Problems in Software. Erroneous Analyze of the Requirement – Un clear requirement, Lack of Knowledge – Due to development Team/ Testing Team. Inadequate testing – Lack of Process flow up in the STLC phase Resources Allocation – Terminated due to some reasons, Resignation, plummet Sick Lack of Communication – Client side. Within the team. Time lap in the Schedule – Due to development bug fix, Testing, Requirement change.