Software Testing Principles and Concepts: By: Abel Almeida
The document discusses principles of software testing including using a maturity model to reduce defects, factors that affect testing such as requirements and scope, and types of testing like unit, integration, and acceptance testing. It also covers testing techniques, levels of testing from verification to validation, and concepts like static versus dynamic testing and the "V" model of testing.
Download as PPT, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
86 views
Software Testing Principles and Concepts: By: Abel Almeida
The document discusses principles of software testing including using a maturity model to reduce defects, factors that affect testing such as requirements and scope, and types of testing like unit, integration, and acceptance testing. It also covers testing techniques, levels of testing from verification to validation, and concepts like static versus dynamic testing and the "V" model of testing.
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 16
Software Testing Principles and
Concepts
By: Abel Almeida
How to reduce the frequency of defects in software? Use the maturity model1 There are five levels1 One is AD Hoc – unstructured. Two Control – Discipline, training and leadership. Three – Core Competency -communication, hardware and software selection. Four –Predictable- management can become coaches to help people address their day-to-day challenges in performing work processes in a predictable manner. Innovative What are the Factors Affecting Software Testing?
People relationships - several variables that affect the
testing process including: the development process itself, software risk, customer/user participation, the testing process, a tester’s skill set, use of tools, testing budget and resource constraints, management support, and morale and motivation of the testers. Scope of Testing- A narrow scope may be limited to determining whether or not the software specifications were correctly implemented Misunderstanding Life Cycle Testing – Testing after coding is the only method used to determine the adequacy of the system. When testing is constrained to a single phase and confined to the later stages of development, severe consequences can develop. Requirements- Both product requirements and validation requirements should be established. Design- During detailed design, validation support tools should be acquired or developed and the test procedures themselves should be produced. Program (Build/Construction) - Actual testing occurs during the construction stage of development. Many testing tools and techniques exist for this stage of system development. Test Process- During the test process, careful control and management of test information is critical Installation- The process of placing tested programs into production is an important phase normally executed within a narrow time span. Maintenance- Test cases generated during system development are reused or used after appropriate modifications. The quality of the test documentation generated during system development and modified during maintenance will affect the cost of regression testing. What are some Testing Constraints? Budget and Schedule Constraints Lacking or Poorly Written Requirements Changes in Technology Limited Tester Skills Life Cycle Testing? Life cycle testing involves continuous testing of the solution even after software plans are complete and the tested system is implemented IT must provide and agree to a strict schedule for completing various phases of the process for proper life cycle testing to occur. Test Matrices The test matrix shows the interrelationship between functional events and tests. The completed test matrix defines the conditions that must be tested during the test process to verify the proper functioning of the application system. Cascading Test Matrices In the creation of the test plan, IT people sometimes lose track of the interrelationship of functional events. The creation of the cascading test matrix reinforces the interrelationship of functional events and enables that aspect of systems to be better tested. Independent Testing ? Where an independent test team exists, they are usually responsible for system testing, the oversight of acceptance testing, and providing an unbiased assessment of the quality of an application. The team may also support or participate in other phases of testing as well as executing special test types such as performance and load testing. Tester’s Workbench a pictorial representation of how a specific test task is performed. (Need to understand work process). Process - a set of activities that represent the way work is performed. The outcome from a process is usually a product or service. Work bench built on: 1. Objective – States why the process exists, or its purpose 2. People Skills - The roles, responsibilities, and associated skill sets needed to execute a process. Workbench components – Inputs – The entrance criteria or deliverables needed to perform testing. Procedures – Describe how work must be done; how methods, tools, techniques, and people are applied to perform a process. Deliverables – Any product or service produced by a process. Standards – Measures used to evaluate products and identify nonconformance. Tools – Aids to performing the process. Levels of Testing? • Verification Testing -Static testing of development interim deliverables (Examples? Ask the class!) • Unit Testing -These tests verify that the system functions properly; for example, pressing a function key to complete an action. (Examples? Ask the class!) • Integration Testing -The system runs tasks that involve more than one application or database to verify that it performed the tasks accurately. (Examples? Ask the class!) • System Testing - These tests simulate operation of the entire system, and verify that it ran correctly. (Examples? Ask the class!) • User Acceptance Testing - This real-world test means the most to your business; and, unfortunately, there’s no way to conduct it in isolation. Once your organization staff, customers, or vendors begin to interact with your system, they’ll verify that it functions properly for you (Examples? Ask the class!) Verification versus Validation? Verification ensures that the system (software, hardware, documentation, and personnel) complies with an organization’s standards and processes, relying on review or non-executable methods. (“Did we build the right system”) Validation physically ensures that the system operates according to plan by executing the system functions through a series of tests that can be observed and evaluated.(“Did we build the system right?”) Static versus Dynamic Testing Static testing is performed using the software documentation. Dynamic testing requires the code to be in an executable state to perform the tests. The “V” Concept of Testing Testing Techniques Structural VS Functional Technique Categories. Functional testing ensures that the requirements are properly satisfied by the application system. Structural testing ensures sufficient testing of the implementation of a function