SE401 Introduction
Regression
After release, when the modules of the system related to the new or updated modules are tested.
Nmae some tools that can automate testing
Ant- automated compilation, build and testing JUnit- automated running of tests Eclipse Debugger- Dubegging Cobertura, EclEmma, JaCoCo - code coverage
Why must we use tools when testing?
Automate repetitive tasks, avoid typos, cope with large programs
Why musn't a developer do the testing?
Because of bias, they will deby the code has errors.
Black Box Testing
Design test cases without knowledge of internal structure and design of the system; based on functional requirements.
Dynamic Testing
Done upon eexecution of the code to see if the expected and actual results match
What are the limitations of software testing?
Exhaustive Testing is impossible, testing is not proof for absence of defects, not knowing when to stop testing.
A program must not be tested by independent testers. True/ False
False
All defects cause failures everytime. True/ False?
False
Assumptions about no new defects being found is okay in testing. True/ False?
False
Early testing is not possible. True/ False?
False
Errors are not underlyiong causes of defects. True/False?
False
Errors can occur in the design, coding but not in requirements or testing. True/ False?
False
It is more expensive to fix a defect in the early stages of testing. True/False?
False
One needs to know how to code in order to become a software tester. True/ False?
False
Principles of software testing are just for reference. True/ False ?
False
QA doesn't set the standards for team to build better software. True/ False?
False
Software Testing includes activities intend to find errors so it can be corrected after the product is released. True/false?
False
Software Testing is equivalent to debugging. true/ False?
False
Test the valid and expected data only. True/ False?
False
Testing does not add to the cost of conformance
False
Testing is not context dependent. True/False?
False
Testing is to ensure that the software does ONLY what it is supposed to do. True/ False?
False
Testing is to show that there are no errors, bugs, defects in the software
False
The goal of QA is to provide assurance that a product is not meeting customer's quality expectations. true/ False?
False
White Box Testing doesn't involve measuring Covergae. True / False?
False
testing can guarentee absence of failures. True/ False?
False
the software product shouldn't be tested on expectations and needs of users and instead only on technical side, True/ False?
False
Programs without known failures may contain defects if they have been verified. True/ False?
False, they may but it might not be covered by the specs
Categories of software Testing
Functional, Non Functional, Maintenance
Pesticide Paradox
If the same tests are repeated over and over again, eventually the sames set of test cases will no longer find any new defects.
What do we gain from testing?
It allows us to find bugs, fix them, and in turn raise the quality of the program
Ad Hoc Testing
It is informal, expected results aren't defined, it isn't sufficient and arbitrariness guides the test execution activity here.
If no defects are found , is the software completely correct?
No, testing can't check for absence of defects
Static Testing
Pre Execution: done by reviewing documentation, code analysis or reading
In order to achieve an optimal amount of testing what may be done?
Prioritization of test cases
Testing should provide feedback to stakeholders to make informed decisions about what?
Release of software, for next development step, handover to customers
Unit testing
Test individual modules of code seperately
Integration Testing
Test the interaction between different modules and see if the changes are reflected
System Testing
Test the systrem as a whole by developers , includes checking the network, connection , database, etc.
Cost of conformance
This is the known cost - human resources, technology, tools, software, hardware Prevention: quality plaanning, trainig, etc Appraisal: testing, inspection
How can we ensure that every defect and failure is sorted out?
Through testing both valid, and invalid conditions
Why is software testing important?
To prevent injuries, fatalities and a huge loss of money, especially in critical systems. It helps ensure the reliability of our systems.
CoQ
Total cost of quality = cost of conformance (coc)+cost of non conformance (conc)
A human makes an error, which leads to a defect, which causesa failure to occur. True / False?
True
A software can only be released if the requirements are met. True/false?
True
Blackbox testing is also known as functional testing. True/ False?
True
Defects can occur in requirements , design or code. True/ False?
True
Each test case must include expected output which must be thoroughly inspected. True/ False?
True
Exhaustive testing is not possible. True/false?
True
Failures can be caused by environmental conditions. True/ False?
True
Finding and fixing defects doesn't help if system build doesn't fullfill user needs. True/ False?
True
If the same tests are repeated numerous times, eventually they won't be able to find new bugs. True/ False?
True
It is important that you achieve optimum test results True/ False?
True
Programs without known failures may contain defects if they haven't been verified. True/ false
True
Software testing is not quality assurance. True/ False?
True
Testing directly reduces cost of non conformance. True/ False
True
Testing is expensive. True/ False?
True
Testing is necessary but not sufficient for quality assurance. true/ False?
True
Testing must consider all possible scenarios, even implied, unstated requirements, it requirees a person to be imaginative and creative. true/ False?
True
Testing the invalid and unexpected data is necessary. True/ False?
True
Tetsing can begin from the requirements phase in the form of static testing. True/ false?
True
The absence of errors is a fallacy when it comes to software testing. True/ False?
True
The test manager works very closely to the project manager in order to plan the entire cost for the testing. True/ False?
True
TrueSoftware Testing takes at least twice as long as estimated. true/False?
True
both, testing and verification attempts to exhibit new failures. True/ false?
True
defects are concerned with specific parts or components of the system. True/ False?
True
software analysi is complementary to software testing . True/ False?
True
the main objective of testing is to DISCOVER defects, it is a destructive activity. True/ False
True
white box testing is also known as structural testing, glass box, clear box testing.. True/ False?
True
The phases/ granularity of testing.
Unit, Integration, System, Acceptance
How can we determine when to stop testing?
Using metrics - such as keeping track of defect rates
Acceptance Testing
Validate system against user requirements, by customers, without formal test cases
Defect Clustering
a small number of modules contain most of the defects detected
Retesting
after release when the new or updated feature is tested itself
Verification techniques
code generation. program synthesis from specifications
Test Case
consists of inputs, steps/actions, expected results, actual results, pass/fail.
White Box testing
design test cases by examining the internal design and source code of the program
Testing Process
developing test plans, designing test cases, running them, and evaluating the results.
failures
deviation of observed behavior of the system from its specification
Explain context with respect to testing?
different products have different elements, featurea and requirements. For example, tetsing for a banking system will focus on authentication whereas for movie ticketing site would focus on viewing the lists and payment
test plan
document that specifies how a system will be tested, including criteria for success
Testing does not show presence of defects. True / false?
false
verification
find evidence for absence of failures ; it guarantees correctness
Defects
flaws, faults, bugs in a system that can cause the system to fail to perform its required fuction
test suite
group of test cases organised around some principles
Errors
human actions that result in a fault or defect in the system; aka: mistakes
Quality Assurance
planned and systematic way to evaluate quality of process used to produce a quality product
software analysis
process of finding defects in a program without executing it; static analysis
If in one test suite, a certain majority amount of cases fail, what must the next step be?
stop testing, and assume the rest failed as well. send back for review and bug fixing and then redo testing
Debugging
systematic process that finds and eliminates the defect that led to an observed failure
Software Testing
systematic process used to identify the correctness, completeness, and quality of developed software.
How to determine the amount of testing done is sufficient?
take into account- the level of risk (technical, safety, business), project constraints (time, budget)
How do we overcome pesticide paradox?
test cases need to be regulary reviewed and revised, and new and different tests need to be written to exercise different parts of the software or system to find potentially more defects.
SDLC- WATERFALL MODEL
testing starts only after implementation is completed, it is very expensive in case a defect id found, as changes must be made back to when design was done or even in requirements
Non functional testing
testing the attributes of system such as scalability, usability, performance
Why are all 12 software test principles important?
they help create an effective task strategy and draft error catching test cases
cost of non conformance
this is the hidden or future cost internal failure: rework external failure: liability, loss of lives and properties
Types of integration testing
top down, bottom up, sandwich
beta testing
type of acceptance testing: having potential consumers examine a product prototype in a real-use setting to determine its functionality, performance, potential problems, and other issues specific to its use