Lecture 3 Flashcards

1
Q

What are software testing techniques ?

A

These are methods applied to verify that the application meets the functional and non functional requirements specified by the business.

Each testing technique helps to find a specific type of defect.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the two main categories of software testing?

A

These are static testing techniques and dynamic testing techniques

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Describe the two main categories of software testing

A

Static testing techniques are techniques which are used to find defects in the application without executing the code. It is done to avoid errors at an early stage of the SDLC.

Dynamic testing techniques are techniques which are used to test the dynamic behaviour of the application by executing the code. The main purpose is to test the application with dynamic inputs some of which may be allowed and some that are not

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the two categories of static testing techniques? Describe each

A

Reviews which range from informal which is peer reviews done between two testers on the artifacts (code/test cases/test data) to formal which is done by moderators who are internal/external to the organization

Static analysis which is the examination of the code or design with the aim of identifying defects that may or may not cause failures. (Reviewing code for the following of standards). A compiler is a static analysis tool since it points out syntax errors

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the three dynamic testing techniques, explain each

A

Structure based techniques which focus on how the code structure works and code coverage then you test accordingly

Experience based techniques which is the execution of testing activities with the help of experience gained over the years. Domain skill and background heavily contribute to this testing.

Specification based techniques which is the execution of tests based on specifications from the business rules to identify defects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the structure based techniques?

A

Statement coverage: (No. of statements of code exercised/total no. of statements) * 100

Decision coverage: (No. of decision outcomes exercised/total no. of decisions) * 100

Conditional coverage: Aims to identify that each outcome of every logical condition in a program has been exercised

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the experience based techniques?

A

Error guessing which is used by a tester who has good experience in testing or with the application and hence may know where the system might have a weakness. It isn’t an effective technique without structured techniques.

Exploratory testing which is hands on testing where the aim is to have maximum execution coverage with minimal planning. Test design and execution are carried out at the same time without documenting test steps. The tester gets to learn about the strengths and weaknesses of the application and this isn’t effective without structured techniques.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the specification based techniques?

A

Equivalence partitioning where you partition the input range of data into valid and non valid sections so that one partition is considered equivalent hence we only need to test any given value in a partition.

Boundary value analysis which test the boundaries of the range, both valid an invalid. This is done because boundaries are not handled gracefully in code most times.

Decision tables which are good when inputs are small and it is used to test the combination of inputs. AKA cause effect table.

State transition which is used when the application or part of it can be treated as a FSM.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What must we consider with FSMs?

A

The states a system can achieve
The events that cause a change of state
The transition from one state to another
The outcomes of change of states

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is automation testing ?

A

Testing which uses the assistance of tools, scripts and software to perform test cases by repeating pre defined actions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the benefits of automation testing?

A

Cost: can reduce hourly fees by more than 75%

Speed and accuracy: automating testing, data collection and data analysis provides actionable results quicker

Effectiveness: automation testing allows for increased test coverage and earlier detection of bugs and vulnerabilities

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the criteria for automation testing?

A

Tests that are repetitive and time consuming.
Tests that run for multiple builds
Tests that are vulnerable to human error
Tests of high risk, frequently used functions within the software
Tests that can’t be done manually
Tests that need to be run on multiple software or hardware configurations and platforms

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the automation testing approaches?

A

Linear Tools which allow users to record their actions on the application and then replay them automatically.

Data driven tools which allow the user to parameterize test cases using external data sources such as spreadsheets, databases or XML files. This allows for testing with different scenarios.

Coding tools which require the user to write code to automate the testing process. More flexible and allows for the creation of complex and customized test cases.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the categories of automated testing?

A

Functional tests which verify the software meets the acceptance criteria and business requirements

Non functional test which verifies software characteristics that aren’t related to specific functions or behaviours but the overall quality and performance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the most popular automated tests?

A

Unit testing
Smoke tests
Regression testing
Integration testing
Security tests
Performance tests
API testing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Describe unit testing

A

It is functional testing and refers to the testing of small, individual parts of the software.

17
Q

Describe smoke tests

A

Functional testing that determines if a build is stable or not. Also used to verify the functionality of software’s essential parts and establish whether it can endure further tests in the future

18
Q

Describe integration tests

A

Tests that verify if the parts of the software function together as a whole

19
Q

Describe regression tests

A

Both functional and non functional, it ensures no software component has regressed after changes are made. (Ensuring changes made didn’t make previous bugs worst)

20
Q

Describe security tests

A

Both functional and non functional, they look for vulnerabilities in the security that can be maliciously exploited

21
Q

Describe performance tests

A

Non functional tests that evaluate how stable and responsive the software is.

22
Q

Describe API testing

A

Application programming interfaces allow new software to interface with other systems so that it can function. These are done at the end of development to ensure the software performs as it should.