Skip to content

Commit

Permalink
Add sumup files for course including anki files
Browse files Browse the repository at this point in the history
  • Loading branch information
Philip Larsson committed Mar 30, 2016
1 parent 1b65770 commit 38d2bd1
Show file tree
Hide file tree
Showing 31 changed files with 579 additions and 0 deletions.
52 changes: 52 additions & 0 deletions ETS200-softwaretesting/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Software Testing

## Menu
- [Terms](terms.md)
- [Types](types.md)
- [Levels](levels.md)
- [Methods](methods.md)
- **Box Methods**
- [White Box](whitebox.md)
- [Black Box](blackbox.md)


## Mind Map
[Press here for large image](img/mindmap-large.png).

![Software Testing Mindmap](img/mindmap.png)

## Videos
Some section, such as this one, contains videos that I've found useful.

The videos below gives an introduction to software testing.

- Why testing is important <https://www.youtube.com/watch?v=TDynSmrzpXw>

- Seven testing principles <https://www.youtube.com/watch?v=rFaWOw8bIMM>

- Software Development Life Cycle vs. Software Test Life Cycle <https://www.youtube.com/watch?v=An7HC1LolDM>



## Anki

Some sections contains Anki files.

"Anki is a program which makes remembering things easy. Because it's a lot more efficient than traditional study methods, you can either greatly decrease your time spent studying, or greatly increase the amount you learn."

Read more here: <http://ankisrs.net/>

## Sources

- Practical Software Testing: A Process-Oriented Approach by *Ilene Burnstein*

- <http://www.guru99.com/software-testing.html>

- <http://softwaretestingfundamentals.com/>

- <http://www.tutorialspoint.com/software_testing_dictionary/index.htm>

- <http://istqbexamcertification.com/what-is-the-istqb-agile-tester-extension-certification/>

- <http://www.webopedia.com/>

Binary file not shown.
9 changes: 9 additions & 0 deletions ETS200-softwaretesting/anki/SoftwareTesting-Blackbox.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Define <b>Black box </b>testing <div>When the tester is using the black box approach, the software under test is considered a opaque box. There is no knowledge of its inner structure (i.e. how it works). The tester only knows what it does.</div><div><br /></div><div><i>Definition (ISTQB): black box testing is testing, either functional or non-functional, without reference to the internal structure of the component or system.</i></div>
To what levels is <b>Black box </b>applicable? Black box testing is applicable in integration testing, system testing and acceptance testing.
Mention some methods/testing techniques that use the black box approach - Random testing<div><br /></div><div>- Equivalence Class Partioning</div><div><br /></div><div>- Boundary Value Analysis</div><div><br /></div><div>- Cause-and-effect graphing</div><div><br /></div><div>- State transition testing</div><div><br /></div><div>- Error guessing</div>
Explain <b>Random Testing</b> Random testing is when the tester randomly selects input from the domain. Random testing may save some of the time and effort that more thoughful test input selection methods require. However, according to many testing experts, selecting inputs ranmodly has very little chance of producing an effective set of test data.
Explain <b>Equivalence Class Partioning</b> Equivalence Class partioning involves dividing (i.e. to partition) a set of test conditions into groups or sets that can be considered the same (i.e. the system should handle them equivalentnly). We then only test one condition from each group, since all conditions should be treated in the same way by the system anyway. If one condition in a partion works, we assume all of the conditions in that partion will work.
Explain <b>Boundary Value Analysis</b> In Boundary value analysis the value that are just inside/outside the boundaries (partions) are tested. That includes both valid boundaries and invalid boundaries. BVA used together with Equivalence Class Partitioning usually gives a very effective test set.
Explain <b>Error Guessing</b> "Error guessing is where the devolper uses his experience and intuition to try to find where defects may lurk in the code. The tester/developer might have past experience of similar code and can sometime make an educated ""guess"" as to which types of defects may be present and design test cases to reveal them."
Mention some advantages of <b>black box </b>testing <div>- Testing are done from a user's point of view and will help in exposing discrepancies in the specification.</div><div><br /></div><div>- Tester need not know programming languages or how the software has been implemented.</div><div><br /></div><div>- Tests can be conducted by a body independent from the developers, allowing for an objective perspective and the avoidance of developer-bias.</div><div><br /></div><div>- Test cases can be designed as soon as the specifications are complete.</div>
Mention some disadvantages of <b>black box</b>&nbsp;testing <div>- Only a small number of possible inputs can be tested and many program paths will be left untested.</div><div><br /></div><div>- Without clear specification, which is the situation in many projects, test cases will be difficult to design.</div><div><br /></div><div>- Tests can be redundant if the software designer/developer has already run a test case.</div>
Binary file not shown.
5 changes: 5 additions & 0 deletions ETS200-softwaretesting/anki/SoftwareTesting-Levels.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
What are the four levels of <b>software testing?</b> - Unit Testing<div><br /></div><div>- Integration Testing</div><div><br /></div><div>- System Testing</div><div><br /></div><div>- Acceptance Testing</div><div><br /></div>
Explain <b>Unit Testing</b> Unit Testing is a level of the software testing process where individual units/components of a software/system are tested. The purpose is to validate that each unit of the software performs as designed.
Explain <b>Integration Testing</b> Integration Testing is a level of the software testing process where individual units are combined and tested as a group. the purpose of this level of testing is to expose faults in the interaction between integrated units.
Explain <b>System Testing</b> System Testing is a level of the software testing process where a complete, integrated system/software is tested. The purpose of this test is to evaluate the system's compliance with the specified requirements.
Explain <b>Acceptance Testing</b> Acceptance Testing is a level of the software testing process where a system is tested for acceptability. The purpose of this test is to evaluate the system's compliance with the business requirements and assess whether it is acceptable for delivery.
Binary file not shown.
5 changes: 5 additions & 0 deletions ETS200-softwaretesting/anki/SoftwareTesting-Methods.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Explain <b>Black Box</b>&nbsp;Testing Black box testing is a software testing method in which the internal structure/design/implementation of the item being tested is not known to the tester.
Explain <b>White Box </b>Testing White box testing is a software testing method in which the internal structure/design/implementation of the item being tested is known to the tester.
Explain <b>Gray Box </b>Testing In Gray Box Testing, the internal structure is partially known. This involves having access to internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level.
Explain <b>Agile Testing</b> Agile Testing is a software testing practice that follows the principles of agile software development. Agile is an iterative development methodology, where requirements evolve through collaboration between the customer and self-organizing teams and agile aligns development with customer needs.
Explain <b>Ad Hoc</b>&nbsp;Testing Ad Hoc testing is a method of software testing without any planning and documentation.
16 changes: 16 additions & 0 deletions ETS200-softwaretesting/anki/SoftwareTesting-Terms-plain.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Define <b>Testing</b> <div>Testing is generally described as a group of procedures carried out to evaluate some aspect of a piece of software.</div><div><br /></div><div>or</div><div><br /></div><div>Testing(2) can be described as a process used for revealing defects in software, and for establishing that the software has attained a specified degree of quality with respect to selected attributes.</div>
Define <b>Inspection</b> Inspection is the process of manual scrutiny of some software artifact with the purpose of finding faults or demonstrating their absence
Define <b>Validation&nbsp;</b> Validation is the process of evaluating a software system or component during, or at the end of, the development cycle in order to determine whether it satisfies specified requirements.
Define <b>Verification&nbsp;</b> Verification is the process of evaluating a software system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.
Define <b>Maintainability</b> Maintainability: The effort needed to make changes in the software.
Define <b>Errors</b> an error is a mistake, misconception, or misunderstanding on the part of a software developer.
Define <b>Failure</b> A failure is the inability of a software system or component to perform its required functions within specified performance requirements.
Define <b>Faults </b>(<b>defects</b>) <div>A fault (defect) is introduced into the software as the result of an error. It is an anomaly in the software that may cause it to behave incorrectly, and not according to its specification. They are sometimes referred to as bugs.</div><div><br /></div><div>Note that a fault in the code does not always produce an failure. A fault may be hidden in the code unnoticed for a long time. But when the faulty code is run a failure have occured.</div><div><br /></div><div>Software that easily reveals its faults as failures is said to be more testable. From the testers point-of-view this is a desirable software attribute.</div>
Define <b>Oracle</b> <div>A test oracle is a document, or piece of software that allows testers to determine wheter a test has been passed or failed.</div><div><br /></div><div>A program, or a document that produces or specifies the expected outcome of a test, can serve as an oracle.</div>
Define <b>Quality</b> "Quality software is reasonably bug or defect free, delivered on time and within budget, meets requirements and/or expectations, and is maintainable.<div><br /></div><div>or</div><div><br /></div><div>Quality relates to the degree to which a system, system component, or process meets specified requirements and customer and user needs or expectations.</div><div><br /></div><div><i>ISO 8402-1986 standard defines quality as “the totality of features and characteristics of a product or service that bears its ability to satisfy stated or implied needs.""</i></div>"
What should a <b>Test Case </b>contain? <div>Contains the inputs, conditions and expected output.</div><div><br /></div><div>More specific, a test case sholud contain the following information:</div><div><br /></div><div>1. A set of test <b>inputs</b>.</div><div><br /></div><div>2. Execution <b>conditions</b>. The conditions for running the test, for example, a certain state of a database, or a configuration of a hardware device.</div><div><br /></div><div>3. Expected <b>outputs</b>. These are the specified results to be produced by the code under test.</div>
Define <b>Test</b> <div>A test is a group of related test cases, or a group of related test cases and test procedures (steps needed to carry out a test)</div><div><br /></div><div>A group of related tests is sometimes referred to as a test set. A group of of related tests that are associated with a database, and are usually run together, is sometimes reffered to as a test suite.</div>
Define <b>Test Bed</b> <div>A test bed is an environment that contains all the hardware and software needed to test a software component or a software system.</div><div><br /></div><div>This includes the entire testing environment, for example: simulators, emulators, memory checkers, hardware probes, software tools, and all other items needed to support execution of the tests.</div>
Define <b>Metric</b> &nbsp;A metric is a quantitative measure of the degree to which a system, system component, or process possesses a given attribute.
Define <b>Usability</b> Relates to the degree of effort needed to learn, operate, prepare input and interpret output of the software.
Define <b>Review</b> A review is a group meeting whose purpose is to evaluate a software artifact or a set of software artifacts.
Binary file not shown.
16 changes: 16 additions & 0 deletions ETS200-softwaretesting/anki/SoftwareTesting-Terms.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Define <b>Testing</b> <div>Testing is generally described as a group of procedures carried out to evaluate some aspect of a piece of software.</div><div><br /></div><div>or</div><div><br /></div><div>Testing(2) can be described as a process used for revealing defects in software, and for establishing that the software has attained a specified degree of quality with respect to selected attributes.</div>
Define <b>Inspection</b> Inspection is the process of manual scrutiny of some software artifact with the purpose of finding faults or demonstrating their absence
Define <b>Validation&nbsp;</b> Validation is the process of evaluating a software system or component during, or at the end of, the development cycle in order to determine whether it satisfies specified requirements.
Define <b>Verification&nbsp;</b> Verification is the process of evaluating a software system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.
Define <b>Maintainability</b> Maintainability: The effort needed to make changes in the software.
Define <b>Errors</b> an error is a mistake, misconception, or misunderstanding on the part of a software developer.
Define <b>Failure</b> A failure is the inability of a software system or component to perform its required functions within specified performance requirements.
Define <b>Faults </b>(<b>defects</b>) <div>A fault (defect) is introduced into the software as the result of an error. It is an anomaly in the software that may cause it to behave incorrectly, and not according to its specification. They are sometimes referred to as bugs.</div><div><br /></div><div>Note that a fault in the code does not always produce an failure. A fault may be hidden in the code unnoticed for a long time. But when the faulty code is run a failure have occured.</div><div><br /></div><div>Software that easily reveals its faults as failures is said to be more testable. From the testers point-of-view this is a desirable software attribute.</div>
Define <b>Oracle</b> <div>A test oracle is a document, or piece of software that allows testers to determine wheter a test has been passed or failed.</div><div><br /></div><div>A program, or a document that produces or specifies the expected outcome of a test, can serve as an oracle.</div>
Define <b>Quality</b> "Quality software is reasonably bug or defect free, delivered on time and within budget, meets requirements and/or expectations, and is maintainable.<div><br /></div><div>or</div><div><br /></div><div>Quality relates to the degree to which a system, system component, or process meets specified requirements and customer and user needs or expectations.</div><div><br /></div><div><i>ISO 8402-1986 standard defines quality as “the totality of features and characteristics of a product or service that bears its ability to satisfy stated or implied needs.""</i></div>"
What should a <b>Test Case </b>contain? <div>Contains the inputs, conditions and expected output.</div><div><br /></div><div>More specific, a test case sholud contain the following information:</div><div><br /></div><div>1. A set of test <b>inputs</b>.</div><div><br /></div><div>2. Execution <b>conditions</b>. The conditions for running the test, for example, a certain state of a database, or a configuration of a hardware device.</div><div><br /></div><div>3. Expected <b>outputs</b>. These are the specified results to be produced by the code under test.</div>
Define <b>Test</b> <div>A test is a group of related test cases, or a group of related test cases and test procedures (steps needed to carry out a test)</div><div><br /></div><div>A group of related tests is sometimes referred to as a test set. A group of of related tests that are associated with a database, and are usually run together, is sometimes reffered to as a test suite.</div>
Define <b>Test Bed</b> <div>A test bed is an environment that contains all the hardware and software needed to test a software component or a software system.</div><div><br /></div><div>This includes the entire testing environment, for example: simulators, emulators, memory checkers, hardware probes, software tools, and all other items needed to support execution of the tests.</div>
Define <b>Metric</b> &nbsp;A metric is a quantitative measure of the degree to which a system, system component, or process possesses a given attribute.
Define <b>Usability</b> Relates to the degree of effort needed to learn, operate, prepare input and interpret output of the software.
Define <b>Review</b> A review is a group meeting whose purpose is to evaluate a software artifact or a set of software artifacts.
Binary file not shown.
Loading

0 comments on commit 38d2bd1

Please sign in to comment.