Chapter 1 Flashcards
what is Software testing
is a process used to identify the correctness, completeness and quality of developed computer software.
Testing is executing a program on a tiny sample of the input domain
t
what are the Two Important aspect of testing:
1 Dynamic technique
2 Optimistic approximation
Why is Testing Important ?
- Cost of bugs: 60 B/year US Economy
- On average: 1-5 bugs/KLOC
Causes of Software Defects
- Faulty requirements definition
- Time Pressure
- Complex Code
- Many System Interactions
- Coding errors
- Complexity of Infrastructure
- Changing technologies
- Non compliance with standards
what are the Roles of Testing in Software Development?
- Testing helps to reduce the risk of problems occurring during operation
- Testing contribute to the quality of the software system
- Testing may be required to meet contractual requirements, legal requirements, or industry specific standards
explain Testing and Quality
- Testing ensures that key functional and non functional requirements are met
Testing measures the quality of software in terms of …
- the number of defects found
- the tests run
- the system covered by the tests
Do you think testing increases the quality of the software ?
- Testing cannot directly enhance quality.
- Testing can give confidence in the quality of the software if it finds fewer or no defects
what is Quality Assurance(QA)
is a way of preventing mistakes or defects in manufactured products when delivering solutions or services
List tester roles?
Functional Tester
Automation Tester
Performance Tester
Mobile Tester
Pen Tester
… is responsible for checking if the product works based on business requirements
Functional Tester
… is responsible for writing script that automate testing rather than manual testing the functionality
Automation Tester
… is responsible for testing the product on different load and report the finding the developer
Performance Tester
… is responsible for testing the product on different mobile devices
Mobile Tester
… is responsible for exposing all security flaws(SQL Injection, Cross scripting, session hijacking …)
Pen Tester-
List the Testing Levels
- Unit Testing
- Integration Testing
- System Testing
- Acceptance Testing
- Validation Testing
- Regression Testing
- Alpha Testing
- Beta Testing
explain unit testing
- Testing individual components or units of a software application to ensure they function correctly in isolation.
what are some key concepts of unit testing
Algorithms and logic
Data structures(global and local) Interfaces
Independent paths
Boundary conditions
Error handling
explain Integration Testing:
Verifying that different units or modules of the software work together as expected when integrated.
why is integration testing needed?
- Ensures Modules function together without adverse effects.
- Ensures Combined sub-functions produce the desired major function.
- It catches errors that may magnify from acceptable imprecision.
- Detects interfacing and timing issues not found in unit testing.
- Identifies resource contention problems not spotted in unit testing.
explain Validation Testing:
Determines if the software meets all of the requirement defined in the SRS
explain Regression Testing:
Is performed to ensure that recent code changes have not adversely affected existing features or functionality.
Regression testing involves selectively repeating existing …
validation tests
explain differences between Alpha and Beta testing
Alpha Testing: Conducted internally by developers or a dedicated QA team before releasing the software to a limited audience.
Beta Testing: conducted by a select group of external users or customers to identify issues and provide feedback before the software is released to the general public.
explain Acceptance Testing:
Evaluating the system’s compliance with business requirements and determining whether it is ready for deployment.