FIT4004 Lecture Notes - Lecture 4: Fuzz Testing, Security Testing, Integration Testing

29 views6 pages
Week 4 - Software testing strategies
Software testing: consists of the dynamic verification that a program provides expected
behaviors on a finite set of test cases , suitably selected from the usually infinite
execution domain.
What’s not testing: (things you don’t run)
Formal methods
Inspections
Testing objectives:
Functional correctness
Perfection is infeasible
Eliminate as many faults as possible
Improve reliability as much as possible
Performance: testing to ensure that software meets resource utilization
requirements(eg. clock or CPU time) *usually automated
Security: (Hardest things to provide as a developer, and hardest to assess from a
QA perspective)
“Fuzz testing”: bombarding the system under test with random, or
randomly-modified data
Vulnerability scanners that systematically test applications against known
bugs in non-updated libraries and infrastructure
Pen testing: will examine not only the software, but also the
organizational context in which it is deployed
Usability
Reliability - How regularly will it fail to perform as specified
Robustness - Determines how often things break. Failures are injected into the
system (for instance, by shutting down part of a system in the middle of an
operation) and the behaviour of the system is monitored to ensure that the
consequences of the failures are acceptable.
User acceptance: Is where the system as a whole is tested to ensure it meets
users’ high-level business requirements. In the "verification and validation"
spectrum, this is very much at that validation end.
Regression - repeating some testing of a system to ensure that software
behaviour hasn't changed (except in some desirable way) after modification.
User Acceptance Testing:
Unlock document

This preview shows pages 1-2 of the document.
Unlock all 6 pages and 3 million more documents.

Already have an account? Log in
Is the last phase of the software testing process
The most important peer group to include in UAT testing are “real” end
users of your software. Every role and stakeholder group should be
included.
to make sure it can handle required tasks in real-world scenarios,
according to specifications.
Meets the user’s needs, which may be different to specifications.
Test Levels:
1. Unit testing
2. Integration testing
3. System Testing
Functional testing
GUI testing/Usability testing
Security testing
Performance testing
Functional correctness testing
How to select test cases:
Exploratory testing (ad-hoc)
Used in industry
Not useful for unit testing
Issues with repeatability
Iterative: firstly ‘go with ur gut’ then gradually develop mental model of
system
Systematic approaches
Structural (white-box)
Insufficient - if functionality is missing, won’t pick it up as testing’s
based on code
Easier to mechanically assess for adequacy
Functional (black-box)
Random testing
Equivalence Partitioning (subdomain testing)
Black-box testing techniques:
Unlock document

This preview shows pages 1-2 of the document.
Unlock all 6 pages and 3 million more documents.

Already have an account? Log in

Get access

Grade+20% off
$8 USD/m$10 USD/m
Billed $96 USD annually
Grade+
Homework Help
Study Guides
Textbook Solutions
Class Notes
Textbook Notes
Booster Class
40 Verified Answers
Class+
$8 USD/m
Billed $96 USD annually
Class+
Homework Help
Study Guides
Textbook Solutions
Class Notes
Textbook Notes
Booster Class
30 Verified Answers