Kiểm thử trong phần mềm là công việc rất phức tạp và hết sức quan trọng. Vậy làm thế nào để thực hiện kiểm thử tốt? Đây là một câu hỏi ko dễ để trả lời. Trong tài liệu này sẽ đưa ra một số kỹ thuật kiểm thử phổ biến, giúp cho các kiểm thử viên thực hiện công việc của mình hiệu quả. Những kỹ thuật này như là một kim chỉ nam cho công việc kiểm thử vần mềm.
Presented by Ngo Thi Hoan Contents What is a testing technique? How to choose that which testing technique is best? Black box test techniques White box test techniques Error Guessing What is a testing technique? a procedure for selecting or designing tests based on a structural or functional model of the software successful at finding faults 'best' practice a way of deriving good test cases a way of objectively measuring a test effort Testing should be rigorous, thorough and systematic How to choose that which testing technique is best? This is the wrong question! Each technique is good in its own way in finding out the certain kind of defect, and not as good for finding out the other kind of defects Ex: Structure-based technique – find out the defect/problem in the code Specification-based techniques find out missing specification of code Each individual technique is aimed at particular types of defect For example, state transition testing is unlikely to find boundary defects Three types of systematic technique Static (non-execution) • examination of documentation, source code listings, etc Functional (Black Box) • based on behaviour / functionality of software Structural (White Box) • based on structure of software Some test techniques Dynamic Static etc Reviews Inspection Walkthroughs Structural Desk-checking Symbolic Execution Non-functional Functional etc etc Control Flow Data Flow etc Behavioural Static Analysis Performance etc Statement Branch/Decision Definition -Use Branch Condition Equivalence Partitioning Usability Arcs LCSAJ Branch Condition Combination Boundary Value Analysis Cause-Effect Graphing Random State Transition Black box versus white box? Black box appropriate at all levels but dominates higher levels of testing White box used predominately at lower levels Acceptance System Integration Component Black box versus white box? Black- box testing Black Box Testing is testing technique having no knowledge of the internal functionality/structure of the system Black-box Testing focuses on testing the function of the program or application against its specification Determines whether combinations of inputs and operations produce expected results It is also called as behavioral testing and closed box testing Example Read A Read B IF A > THEN IF B = THEN Print “No values” ELSE Print B IF A > 21 THEN Print A ENDIF ENDIF ENDIF Read A>0 Yes B=0 Yes No Print No Print Yes A>21 Print No End Cyclomatic complexity: _ Minimum tests to achieve: Statement coverage: Branch coverage: _ Example Read A[...]...Black-Box Testing Techniques Techniques defined in BS 7925-2 Equivalence partitioning Boundary value analysis Decision table testing Cause-effect graphing State transition testing Equivalence partitioning (EP) Divide (partition) the inputs, outputs, etc into areas which are the same... user with disc space Expected Outcome Tag Invalid username Invalid username A A Invalid password B Restricted access C Unrestricted access D Cause –effect graphing Cause-Effect Graph is a black box testing technique that graphically illustrates the relationship between a given outcome and all the factors that influence the outcome Cause –effect graphing Step 1: Identify the causes and the effects