software quality Flashcards
load testing
checks application ability to perform under anticipated user loads. identify performance bottle necks
stress testing
testing application under extreme workloads to see how it handles high traffic. identify breaking point
endurance testing
make sure that the software can handle the load over a long period of time
spike testing
tests reaction to sudden large spikes in user load
scalability testing
determine the application’s effectiveness in scaling up to support an increase in the user load
smoke testing
software testing process that determine whether the deployed software build is stable or not. confirmation for the QA team to proceed with further software testing. consists of minimal set of tests run on each build to test software functionalities
vulnerability scanning
done through automated software to scna a system against known vulnerability signatutes
security scanning
identifying network and system weaknesses and later provides solutions for reducing these risks
penetration testting
simulates an attack frm a malicious hacker
risk assessment
involves analysis of security risks observed in the organization and recommends control measures
security auditing
internal inspection of applications and OS for security flaws
ethical hacking
hacking organization software systems - expose security flaws in the system
posture assessment
combines security scanning, ethical hacking and risk assessments to show an overall security posture of an organization
software quality attributes - runtime
performance security availability functionality usability
software quality attributes - runtime AVAILABILITY
probability that the sysyem is operating properly when it is requested for use. probability that a system is not failed or undergoing a repair action when it needs to be used
MTBF
mean time between failures - average time between failures of a tech product. higher the time between failure, the more reliable the system.
MTTR
mean time to repair a system either manually or technically. includes repair and testing time. clock only stops when system is fully functional again
MTTR (the other one)
mean time to recovery/restore - time to recover from failure
MTTF
Mean time to failure - average time between non-repairable failures of a tech product
why do usability tests
uncover problems in the design
discover opportunities to improve
learn about users behavior and preferences
software quality attributes - non-runtime
modifiability/maintainability portability reusability integrability testability
modifiability
relates to the cost of change and refers to the ease with which a software system can accommodate changes
portability
the possibility to use the same software in different environments
software that is available for two or more different platforms or can be recompiled for that system
reusability
modularity - dividing code into reusable sections
high cohesion - modules should be functionally related to perform a task
low coupling - low level of interdependence between modules
integrability vs interoperability
interoperability - real time data exhange between different system that speak directly to one another in the same language
integration - process of combining mulitple applications to function together as one uninterrupted system often using middleware
testability
should be easy enough to run any test
Benefits of code reviews
consistent design and implementation
minimizing your mistakes and their impact
ensureing project requirements and meeting requirements
improving code performance
sharing new techniques
some software quality metrics
number of lines, files field bugs code churn static analysis findings bug arrival rate test failures