????e????? Smoke Test

??????????????????????????????????Smoke Test?????????????????????????ζ???????prototype????????????e?????????????????

??????smoke test?????????????????????smoke test????????????(a quick test)??????????????????????????????????????????????????????

????A simple integration test where we just check that when the system under test is invoked it returns normally and does not blow up.

???????smoke test??????Χ????????????????????????/??????????

???????磬???????????????????????????????????????????????????????????????????

?????????smoke test??????????????????????????????????????web??????????????????????????????????????????????????

????????????????????????????first tests on which testers can conclude if they will continue testing. ?????????????

?????????? Regression Test

????A test that was written when a bug was fixed. It ensure that this specific bug will not occur again. The full name is "non-regression test".

????A regression test re-runs previous tests against the changed software to ensure that the changes made in the current software do not affect the functionality of the existing software."

??????????????????£?????????????????????fix??bug???????????????????????????????

????????????????????????????????????

?????????????????????·?????仯?????е?????

???????????????????????д?????????????????д??

??????????????????????1??????bug??UT????????????д????ò???????

???????????? End-To-End Test

????validates the entire application to ensure that it satisfies previously established acceptance criteria and performs as an integrated system. The purpose of system testing is not to test all possible positive and negative conditions (reserved for functional and integration testing)?? but to instead execute business functions and infrastructure management (i.e.?? batch processing?? system security features?? backup and recovery etc.) in an isolated and controlled environment to validate that a quality system is ready for production.

?????????????????????????????????????????????

????????仰??????????????production??

???????????????????????????????????????ù????????????????

??????????? Functional Test

????Functional tests are related to integration tests?? but refer more specifically to tests that test an entire system or application with all of the code running together?? almost a super integration test.

???????????? Non-funtional Test

???????????????????????????????????????????????????GMI??log??report??failover??????????????У??????????????????????

????acceptance tests ?????????????

????????????acceptance tests ?? Functional Test????????????????Щ???????????????????????????????

????functional testing?? This is a verification activity?? did we build the thing right?? Does the software meet the business requirements??

????For this type of testing we have test cases that cover all the possible scenarios we can think of?? even if that scenario is unlikely to exist "in the real world". When doing this type of testing?? we aim for maximum code coverage. We use any test environment we can grab at the time?? it doesn't have to be "production" caliber?? so long as it's usable.

????acceptance testing?? This is a validation activity?? did we build the right thing?? Is this what the customer really needs??

????This is usually done in cooperation with the customer?? or by an internal customer proxy (product owner). For this type of testing we use test cases that cover the typical scenarios under which we expect the software to be used. This test must be conducted in a "production-like" environment?? on hardware that is the same as?? or close to?? what a customer will use. This is when we test our "ilities"??

????Reliability?? Availability?? Validated via a stress test.

????Scalabilitiy?? Validated via a load test.

????Usability?? Validated via an inspection and demonstration to the customer. Is the UI configured to their liking?? Did we put the customer branding in all the right places?? Do we have all the fields/screens they asked for??

????Security (aka?? Securability?? just to fit in)?? Validated via demonstration. Sometimes a customer will hire an outside firm to do a security audit and/or intrusion testing.

????Maintainability?? Validated via demonstration of how we will deliver software updates/patches.

????Configurability?? Validated via demonstration of how the customer can modify the system to suit their needs.

???????????functional testing???????????????о?????????????????????????е?????

????acceptance testing????????????????????????顣?????????????????????????????production????????????????С?

????????????????????????в????

??????????仰???????

????Acceptance Tests/Criteria (in Agile Software Development) are usually created by business customers and expressed in abusiness domain language. These are high-level tests to test the completeness of a user story or stories 'played' during any sprint/iteration.

????a business domain language????????????????????????????????????е?????JBehave??

????Acceptance test cards are ideally created during sprint planning or iteration planning meeting?? before development begins so that the developers have a clear idea of what to develop. Sometimes (due to bad planning??) acceptance tests may span multiple stories (that are not implemented in the same sprint) and there are different ways to test them out during actual sprints. One popular technique is to mock external interfaces or data to mimic other stories which might not be played out during an iteration (as those stories may have been relatively lower business priority). A user story is not considered complete until the acceptance tests have passed.

?????????????sprint?У???????????????????????????????????????acceptance test?????

?????????Acceptance-Test Driven Development?????ɡ?