Software Engineering Week 15-16 Flashcards

1.75 final grade for Software Engineering

1
Q

it is not a single process or tool, it’s a collection of tool and process working together to automate the manual process.

This uses various libraries, test
data and various reusable modules to automate the manual process to save the time of the tester. It is a set of rules which is used for creating and designing test cases.

A

Automation testing framework

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

This term refers to lowering of human involvement in various processes and doing the same process automatically with less human involvement.

It is the process of automating repetitive processes of users to make the work efficient which saves a lot of time.

A

Automation

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

This not only offers the benefit of reusing the code which saves a lot of time but it also help others to write the code in a standard format. Hence, this framework handles
all the issues which occur while running the test.

It is also useful when users want to repeat the same process using test scripts whenever it is required to test on multiple browsers at the same time.

A

Test Automation Framework

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

This framework is based on the concept of record and playback mode that is always achieved in a linear manner.

This framework mostly used for testing on the
small applications in which step are written in a sequential order.

A

Linear Scripting Framework

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

This break down test cases into small modules.

There, the modules are independently tested first and then the application is tested as a whole which makes each test independent.

A

Modular Testing Framework

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

In this testing framework, a separate file in a tabular format is used to store both the input and expected output results.

A driver script where all test cases are called can execute all the test cases with multiple sets of data. This driver script contains navigation that spreads through the program which covers both reading of data files and logging of test status information.

A

Data Driven Testing Framework

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

This framework separates script logic from test data, then stores the data externally. After that, it stores the keywords in a different location.

Since user can use the same keyword across different test scripts which re-uses the code.

A

Keyword Driven Testing Framework

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

This framework improves the weaknesses of different test frameworks. It is a combination of many types of end-to-end testing approaches which uses the advantages of other frameworks.

A

Hybrid Testing Framework

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

This is an approach in which test cases are developed to specify and validate what will the code do. It starts with designing part and develop test cases for small functionalities for your application, which instructs developers to write code if previous script fails.

A

Test Driven Development Framework (TDD)

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

This has been derived from the TDD approach and in this method tests are more focused and are based on the system behaviour. Testers can create test
cases in simple English language which helps even the non-technical people to easily analyse and understand the tests.

A

Behaviour Driven Development Framework (BDD)

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

Test framework helps in making the best use of resources, it does this by making
the process easier with use of different resources according to organisational needs.

A

Optimisation of Resources

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

Test automation frameworks increase the volume of testing by perform test on
many devices as it’s not possible to perform manual testing on all devices.

A

Increased Volume of Testing

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

Test automation frameworks enable simultaneous testing on different types of devices.

When test scripts are automated, than testers can perform the script on other devices at the same time.

A

Simultaneous Testing

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

Performing different test cases manually can be very time consuming so
instead of it we can run all the test cases from our script in very less time.

A

Enhanced Speed and Reliability

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

An automation script minimises the time taken to prepare and run tests. With
increased efficiency and speed, we can gain more output in less time.

A

More Output in Less Time

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

Test automation framework helps in fixing bugs at an early stage which don’t
need much manpower to carry which saves time and expenses of the organisation.

A

Fixing Bugs at an Early Stage

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

With a test automation framework, you don’t need to see all test cases, you can run the test cases and come back later and view the result. User doesn’t need to be present at execution time physically.

A

Remote Testing

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

You can use your automation script in any of your other application or website
which has same functionality which increase the code re-usability.

A

Reusable Automation Code

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

QA automation assumes using tools to automatically review, assess, and validate a software product against the set
requirements for code quality, functionality (business logic), and user experience.

A

Building Automation Frameworks

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

This testing allows you to improve software testing speed without compromising its quality. A
purpose-built automated testing framework can help you test all the nooks and crannies of your product and ensure
end-to-end tests coverage for different usage scenarios.

A

Automated software testing

21
Q

This framework is a collection of rules, tools, and processes your organization uses to perform
comprehensive QA at different stages of your software development lifecycle.

A

Test automation framework

22
Q

Quality assurance is a multi-faceted activity. You can probe newly built software from different angles to ensure it works like it was meant to and has no critical bugs or vulnerabilities.

A

How to Build a Test Automation Framework Step-by-Step

  1. Determine The Optimal Test Automation Framework Architecture
23
Q

Design a Reference Test Automation Framework

Conceptually, all QA automation frameworks have four layers:

A

Test generation

Test definition

Test execution

Test adaptation

24
Q

The test generation layer sets the baseline for subsequent QA automation. Your goal here is to formalize your main
test types, design manual tests, and set up test data capture and generation to support the selected QA scenarios.

A

Test Generation Layer

25
Q

Components (and supporting tools) of Test Generation Layer are used to:

A

Edit and navigate test suite structures

Align test cases to test objectives (or SUT requirements)

Document the test design

26
Q

At this stage, you need to analyze the available test data and match it to the planned test cases. Then begin designing
test scripts for the approved use cases.

The components (and supporting tools) of this layer are used to:

Partition (constrain), parameterize, or instantiate test data

Document the test data, test cases, and/or test procedures

A

Test Definition Layer

27
Q

With all the prep work done, you are ready to move to actual QA work. This part of a test framework
includes all the tools you need to run, log, and report on automated test case execution.

A

Test Execution Layer

28
Q

A robust test execution layer provides the following capabilities:

A

Auto-set up and tear down of the SUT for test execution (i.e. set of test cases including test data)

Rapid configuration and parameterization of the test setup

Interpretation of both test data and test cases and subsequent transformation of them into executable scripts

SUT response validation (i.e. comparison of expected and actual results) for reporting

Precise control and proper timing for automated test execution

29
Q

As mentioned earlier, a testing automation framework is a combination of processes and tools. The previous section
described the process layout. Now let’s focus on the QA automation tools.

A

Decide on Your Test Automation Tech Stack

30
Q

community-developed and supported software you can use without any license purchases. There are
no constraints for customization.

A

Open-source

31
Q

licensed software, offering access to a rich set of native functionality out of the box.

A

Proprietary tools

32
Q

any combination of the above two options within your AQA framework.

A

Custom solutions

33
Q

When deciding on your QA automation stack, you should always take into account:

A

Programming languages (most QA tools are language-specific)

Operating systems (your testers are using)

Platform support (web, mobile, tablet, etc)

Some of the automated testing tools we recommend at Edvantis are:

34
Q

cross-browser web testing framework

A

Selenium WebDriver

35
Q

end-to-end JavaScript testing framework

A

Cypress

36
Q

open-source desktop automation testing framework

A

WinAppDriver

37
Q

After you’ve selected your test framework, you need to decide on the implementation approach. To better illustrate
different paths to implementation, we’ll use Selenium.

A

Decide on Your Path to Implementation

38
Q

Similar to other QA automation tools, Selenium supports several test design patterns:

A

Wrapper methods: In software engineering, a wrapper is a method of encapsulation. Essentially, you create a
custom variant of executing a certain function because the original one doesn’t meet all your requirements (e.g. it
is too complex to execute or doesn’t perform all aspects of testing you need). Then add this wrapper into your
framework.

Abstraction methods: Abstraction is a technique software engineers use to hide unnecessary details from the users.
In test frameworks, abstracting certain functionalities promotes better code structure and maintainability.

Page Object method: This is the most commonly used method for organizing test cases. Here you denote each web
page of an app as a class file — such that contains only all corresponding web page elements. Then perform tests
on these elements. Doing so reduces code duplication and improves test maintenance.

39
Q

Automated testing is heavily-reliant on data. The more data you have — the better outcomes you’ll gain. However,
when you are doing QA at the pre-production stages, you may be lacking meaningful first-hand data to cover all
testing scenarios.

Therefore, consider extra test data generations strategies such as:

Synthetic data from automated data generation tools

Mass copy of data from production to testing environment

Mass copy of test data from legacy systems

Manual test data creation

A

Develop Test Data

40
Q

In software engineering, a wrapper is a method of encapsulation.

Essentially, you create a custom variant of executing a certain function because the original one doesn’t meet all your requirements (e.g. it
is too complex to execute or doesn’t perform all aspects of testing you need). Then add this wrapper into your framework.

A

Wrapper methods

41
Q

is a technique software engineers use to hide unnecessary details from the users.
In test frameworks, abstracting certain functionalities promotes better code structure and maintainability.

A

Abstraction methods

42
Q

This is the most commonly used method for organizing test cases. Here you denote each web
page of an app as a class file — such that contains only all corresponding web page elements. Then perform tests on these elements. Doing so reduces code duplication and improves test maintenance.

A

Page Object method

43
Q

enables meaningful and effective implementation of CI/CD. Automation Testing is at the core of any CI/CD pipeline.

A

Automation
Role of Automation on CI/CD

44
Q

whole concept of CI/CD revolves around:

A

build fast, test fast,
fail fast.

45
Q

Test automation offers the following advantages:

A

-Reduces manual efforts when the same test must be run repetitively. This frees up more time to perform rigorous manual tests.

-Gives immediate feedback.

-Tests can be more accurate and cover more test cases.

-Helps generate and compare multiple test results, ensuring product consistency.

-Becomes an integral part of the CI/CD pipeline, abiding with its principle of build fast, fail fast.

46
Q

Many teams follow the Test Driven Development (TDD) approach. Unit tests are written by the
developers and run as a part of the build phase.

A

Unit Tests

47
Q

After every commit is built and deployed onto the development environment, these tests are run to check if the newly added module/changes work well together. Some organizations have a dedicated environment to run integration tests.

A

Integration Tests

48
Q

Regression tests are run once nightly to ensure that the newly added changes do not impact the
existing code. This helps make sure the day’s work is all good and gives feedback if any changes are necessary.

A

Regression Tests

49
Q

Before releasing the code to the production environment, a set of tests are run to
evaluate the responsiveness and stability of the system. These tests are run on the UAT/Pre-Production environment
after the code is deployed at the end of the sprint.

A

Performance and Load Tests