Chapter 4 and 5 Group
1. What is “correctness” in agile processes?
2. Do TDD tests do a good job testing the software?
3. Can we automate our tests without TDD?
4. Can we use TDD without automating our tests?
5. What four structures do we use for test criteria?
6. What usually prevents our tests from achieving 100% coverage?
100% coverage does not mean it meets user expectations:Your tests could cover 100% of the code, but that does not mean that the application satisfies potential users. The application could:
100% unit test coverage does not mean integration tests will run:
100% unit test coverage does not mean the application will run:
100% coverage does not prevent display issues:
100% coverage is not 100% path coverage:
Test coverage only catches what's been coded:
Code complexity or the Architecture of the code.
8. A few software organizations use test criteria and report great success. However, most organizations do not currently use test criteria. Based on your knowledge and experience, why do you think test criteria are not used more?
Correctness is a measure to a code that targets the level in which such code meets the specified requirements. Basically it checks if the code has the desired behavior.
2. Do TDD tests do a good job testing the software?
TDD is very good for testing the functionally of small parts of your code as you develop. However TDD will not be able to guarantee that your tests are well thought and enough.
3. Can we automate our tests without TDD?
Yes, we can create tests after the creation of our code. These tests aren’t considered as TDD but still a way of automation.
4. Can we use TDD without automating our tests?
No, the whole idea of using TDD is having the ability to automate our tests due to the fact that we don’t already have a code to test.
5. What four structures do we use for test criteria?
Input domains, graphs, logic expressions, and syntax descriptions.
6. What usually prevents our tests from achieving 100% coverage?
100% coverage does not mean it meets user expectations:Your tests could cover 100% of the code, but that does not mean that the application satisfies potential users. The application could:
- have performance issues under load
- have workflows that users find too awkward or too difficult to use
- not include information users expect to see
- be insecure or not secure enough
- be missing functionality users want or need
- have issues handling data outside the test data parameters
- have memory leaks causing crashes after a period of time
100% unit test coverage does not mean integration tests will run:
If MethodA does not provide MethodB with the correct parameters, the unit tests for both could succeed where integration tests fail.
100% unit test coverage does not mean the application will run:
Unit tests run inside a harness that exercises specifically those units. It's possible to miss setting a reference to be bundled in with the deployment package and have an application with 100% unit test coverage (all passing) that can't run.
100% coverage does not prevent display issues:
You can run into display issues when the user's screen size isn't what you expected, or the user runs the application on a system that doesn't have the fonts you used, or doesn't use the same encoding as you. These are not things that get caught with unit tests - or integration tests, or most automated functional tests for that matter.
100% coverage is not 100% path coverage:
Most applications have an infinite or near-infinite number of paths through the application. It's not practical to test for a user opening and closing a screen ten times before they start entering data, then 11 times, then 12, then... It's not practical to test using the back and forward browser buttons in every possible combination while entering data.
Test coverage only catches what's been coded:
You can't test functionality that hasn't been implemented. If an error scenario isn't coded for, it can't be covered in test cases - but an experienced tester could realize it's not there.
7. Some organizations in industry who adopt TDD report that it succeeds very well, and others report that it fails. Based on your knowledge of TDD and any experience you have, why do you think it succeeds sometimes but not all?
7. Some organizations in industry who adopt TDD report that it succeeds very well, and others report that it fails. Based on your knowledge of TDD and any experience you have, why do you think it succeeds sometimes but not all?
Code complexity or the Architecture of the code.
8. A few software organizations use test criteria and report great success. However, most organizations do not currently use test criteria. Based on your knowledge and experience, why do you think test criteria are not used more?
Because test criteria can change over the course of projects and because they're very subjective, it depends on the developers, clients, company, and other things.
Comments
Post a Comment