The goals of this chapter are: Have a working understanding of XT, given a description of a software testing process, discuss its conformance with XT, what are the major arguments for XT? Given a development scenario, discuss whether XT could be applied, develop black-box unit tests from a unit specification. | Software Construction Lecture 20 Software Quality Learning Goals for Today 2 Have a working understanding of XT Given a description of a software testing process, discuss its conformance with XT. What are the major arguments for XT? Against it? Given a development scenario, discuss whether XT could be applied. If it is applicable, what benefits might be expected from its use? Develop black-box unit tests from a unit specification Input validation Boundary-value analysis Extreme Testing (XT) 3 XT is the testing methodology of an XP development process The philosophy is “extreme”. Maximise the main defect-finding activities, stop other testing activities. Main activities: unit testing and acceptance testing. Extreme unit testing (XUT) Do only the main activities in a unit test. Do them at maximum levels, within the time & resource constraints. (What are these main activities?) Extreme acceptance testing (XAT) Do only the main activities in an acceptance test. Do them at maximum levels. | Software Construction Lecture 20 Software Quality Learning Goals for Today 2 Have a working understanding of XT Given a description of a software testing process, discuss its conformance with XT. What are the major arguments for XT? Against it? Given a development scenario, discuss whether XT could be applied. If it is applicable, what benefits might be expected from its use? Develop black-box unit tests from a unit specification Input validation Boundary-value analysis Extreme Testing (XT) 3 XT is the testing methodology of an XP development process The philosophy is “extreme”. Maximise the main defect-finding activities, stop other testing activities. Main activities: unit testing and acceptance testing. Extreme unit testing (XUT) Do only the main activities in a unit test. Do them at maximum levels, within the time & resource constraints. (What are these main activities?) Extreme acceptance testing (XAT) Do only the main activities in an acceptance test. Do them at maximum levels. Extreme Unit Testing 4 XUT has two “simple rules”: All code modules must have unit tests before coding begins All code modules must pass unit tests before being released into production. Nothing new here, except the insistence on writing unit tests before coding. Wow, that’s a disciplined approach! Would you do this willingly, or would you be tempted to “code early, on the sly” (when you think your manager isn’t looking)? Note: if you’re writing executable tests, then I’d say you’re coding. You can write assertions in Java or Junit. You might be programming in a language with goal-directed evaluation (. Icon): specify the outcome (in restricted settings) and let the computer figure it out! In a futuristic/AI development scenario, you could be “programming by example” . goal-directed programming without any sharply-defined restrictions. Benefits of “Test-First Coding” 5 You gain confidence that your code will meet its specification. You express the end result of your code before