Module 3
Module 3
Learning Outcomes
Intended Students should be able to meet the following intended learning outcomes:
Learning demonstrate understanding on the emerging technologies on software testing
Outcomes and development in the context of software/application development;
distinguish between the ethical and legal considerations in software/application
development; and
develop solutions which implements the concepts of software testing and
development and the ethical and legal consideration in the context of
software/application development.
Targets/ At the end of the lesson, students should be able to:
Objectives identify the emerging technologies on software testing and development;
enumerate the ethical and legal considerations in software/application
development;
discuss the concept of software testing and development; and
develop solutions that addresses the ethical and legal consideration in
software/application development.
40 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
Analysis and Modeling for Software / Application Development. To have
access to the Online Discussion, refer to this link: ____________________.
The online discussion will happen between April 21 – May 31, 2024 from
8:00AM - 11:00AM PST and/or 1:00PM - 3:00PM PST.
(For further instructions, refer to your Google Classroom and see the
schedule of activities for this module)
Some prefer saying Software testing as a White Box and Black Box Testing.
Offline Activities In simple terms, Software Testing means the Verification of Application
Under Test (AUT).
(e-Learning/Self-
Paced) White Box Testing is software testing technique in which internal
structure, design and coding of software are tested to verify flow of input-
output and to improve design, usability and security. In white box testing,
code is visible to testers so it is also called Clear box testing, Open box
testing, Transparent box testing, Code-based testing and Glass box
testing.
41 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
2. Why Software Testing is Important?
Software Testing is Important because if there are any bugs or errors in the
software, it can be identified early and can be solved before delivery of the
software product. Properly tested software product ensures reliability,
security and high performance which further results in time saving, cost
effectiveness and customer satisfaction.
42 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
Cost-Effective: It is one of the important advantages of software
testing. Testing any IT project on time helps you to save your money
for the long term. In case if the bugs caught in the earlier stage of
software testing, it costs less to fix.
Security: It is the most vulnerable and sensitive benefit of software
testing. People are looking for trusted products. It helps in removing
risks and problems earlier.
Product quality: It is an essential requirement of any software
product. Testing ensures a quality product is delivered to customers.
Customer Satisfaction: The main aim of any product is to give
satisfaction to their customers. UI/UX Testing ensures the best user
experience.
Functional Testing
Non-Functional Testing or Performance Testing
Maintenance (Regression and Maintenance)
43 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
Globalization
Interoperability
So on
Non-Functional Testing Performance
Endurance
Load
Volume
Scalability
Usability
So on
Maintenance Regression
Maintenance
Note: This is not the complete list as there are more than 150 types of testing
types and still adding. Also, note that not all testing types are applicable to
all projects but depend on the nature & scope of the project. To know more
about the types of tea
7. Program Testing
44 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
deliverables. The goal of having a testing type is to validate the Application
Under Test (AUT) for the defined Test Objective.
45 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
defining a basic set of execution paths. It is used by testing teams
when defining test cases.
13. Backward Compatibility Testing: Testing method which verifies the
behavior of the developed software with older versions of the test
environment. It is performed by testing team.
14. Beta Testing: Final testing before releasing application for
commercial purpose. It is typically done by end-users or others.
15. Benchmark Testing: Testing technique that uses representative sets
of programs and data designed to evaluate the performance of
computer hardware and software in a given configuration. It is
performed by testing teams.
16. Big Bang Integration Testing: Testing technique which integrates
individual program modules only when everything is ready. It is
performed by the testing teams.
17. Binary Portability Testing: Technique that tests an executable
application for portability across system platforms and
environments, usually for conformation to an ABI specification. It is
performed by the testing teams.
18. Boundary Value Testing: Software testing technique in which tests
are designed to include representatives of boundary values. It is
performed by the QA testing teams.
19. Bottom-Up Integration Testing: In bottom-up Integration Testing,
module at the lowest level is developed first and other modules which
go towards the 'main' program are integrated and tested one at a time.
It is usually performed by the testing teams.
20. Branch Testing: Testing technique in which all branches in the
program source code are tested at least once. This is done by the
developer.
21. Breadth Testing: A test suite that exercises the full functionality of a
product but does not test features in detail. It is performed by testing
teams.
22. Black box Testing: A method of software testing that verifies the
functionality of an application without having specific knowledge of
the application's code/internal structure. Tests are based on
requirements and functionality. It is performed by QA teams.
23. Code-driven Testing: Testing technique that uses testing
frameworks (such as x Unit) that allow the execution of unit tests to
determine whether various sections of the code are acting as expected
under various circumstances. It is performed by the development
teams.
24. Compatibility Testing: Testing technique that validates how well a
software performs in a particular hardware/software/operating
system/network environment. It is performed by the testing teams.
46 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
25. Comparison Testing: Testing technique which compares the product
strengths and weaknesses with previous versions or other similar
products. Can be performed by tester, developers, product managers
or product owners.
26. Component Testing: Testing technique similar to unit testing but
with a higher level of integration - testing is done in the context of the
application instead of just directly testing a specific method. Can be
performed by testing or development teams.
27. Configuration Testing: Testing technique which determines
minimal and optimal configuration of hardware and software, and the
effect of adding or modifying resources such as memory, disk drives
and CPU. Usually, it is performed by the Performance Testing
engineers.
28. Condition Coverage Testing: Type of software testing where each
condition is executed by making it true and false, in each of the ways
at least once. It is typically made by the Automation Testing teams.
29. Compliance Testing: Type of testing which checks whether the
system was developed in accordance with standards, procedures and
guidelines. It is usually performed by external companies which offer
"Certified OGC Compliant" brand.
30. Concurrency Testing: Multi-user testing geared towards
determining the effects of accessing the same application code,
module or database records. It usually done by performance
engineers.
31. Conformance Testing: The process of testing that an
implementation conforms to the specification on which it is based. It
is usually performed by testing teams.
32. Context Driven Testing: An Agile Testing technique that advocates
continuous and creative evaluation of testing opportunities in light of
the potential information revealed and the value of that information
to the organization at a specific moment. It is usually performed by
Agile testing teams.
33. Conversion Testing: Testing of programs or procedures used to
convert data from existing systems for use in replacement systems. It
is usually performed by the QA teams.
34. Decision Coverage Testing: Type of software testing where each
condition/decision is executed by setting it on true/false. It is
typically made by the automation testing teams.
35. Destructive Testing: Type of testing in which the tests are carried
out to the specimen's failure, in order to understand a specimen's
structural performance or material behavior under different loads. It
is usually performed by QA teams.
36. Dependency Testing: Testing type which examines an application's
requirements for pre-existing software, initial states and
47 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
configuration in order to maintain proper functionality. It is usually
performed by testing teams.
37. Dynamic Testing: Term used in software engineering to describe the
testing of the dynamic behavior of code. It is typically performed by
testing teams.
38. Domain Testing: White box testing technique which contains
checking that the program accepts only valid input. It is usually done
by software development teams and occasionally by automation
testing teams.
39. Error-Handling Testing: Software testing type which determines
the ability of the system to properly process erroneous transactions.
It is usually performed by the testing teams.
40. End-to-end Testing: Similar to system testing, involves testing of a
complete application environment in a situation that mimics real-
world use, such as interacting with a database, using network
communications, or interacting with other hardware, applications, or
systems if appropriate. It is performed by QA teams.
41. Endurance Testing: Type of testing which checks for memory leaks
or other problems that may occur with prolonged execution. It is
usually performed by performance engineers.
42. Exploratory Testing: Black box testing technique performed without
planning and documentation. It is usually performed by manual
testers.
43. Equivalence Partitioning Testing: Software testing technique that
divides the input data of a software unit into partitions of data from
which test cases can be derived. it is usually performed by the QA
teams.
44. Fault injection Testing: Element of a comprehensive test strategy
that enables the tester to concentrate on the manner in which the
application under test is able to handle exceptions. It is performed by
QA teams.
45. Formal verification Testing: The act of proving or disproving the
correctness of intended algorithms underlying a system with respect
to a certain formal specification or property, using formal methods of
mathematics. It is usually performed by QA teams.
46. Functional Testing: Type of black box testing that bases its test cases
on the specifications of the software component under test. It is
performed by testing teams.
47. Fuzz Testing: Software testing technique that provides invalid,
unexpected, or random data to the inputs of a program - a special area
of mutation testing. Fuzz testing is performed by testing teams.
48. Gorilla Testing: Software testing technique which focuses on heavily
testing of one particular module. It is performed by quality assurance
teams, usually when running full testing.
48 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
49. Gray Box Testing: A combination of Black Box and White Box testing
methodologies: testing a piece of software against its specification but
using some knowledge of its internal workings. It can be performed
by either development or testing teams.
50. Glass box Testing: Similar to white box testing, based on knowledge
of the internal logic of an application's code. It is performed by
development teams.
51. GUI software Testing: The process of testing a product that uses a
graphical user interface, to ensure it meets its written specifications.
This is normally done by the testing teams.
52. Globalization Testing: Testing method that checks proper
functionality of the product with any of the culture/locale settings
using every type of international input possible. It is performed by the
testing team.
53. Hybrid Integration Testing: Testing technique which combines top-
down and bottom-up integration techniques in order leverage
benefits of these kind of testing. It is usually performed by the testing
teams.
54. Integration Testing: The phase in software testing in which
individual software modules are combined and tested as a group. It is
usually conducted by testing teams.
55. Interface Testing: Testing conducted to evaluate whether systems or
components pass data and control correctly to one another. It is
usually performed by both testing and development teams.
56. Install/uninstall Testing: Quality assurance work that focuses on
what customers will need to do to install and set up the new software
successfully. It may involve full, partial or upgrades install/uninstall
processes and is typically done by the software testing engineer in
conjunction with the configuration manager.
57. Internationalization Testing: The process which ensures that
product's functionality is not broken and all the messages are
properly externalized when used in different languages and locale. It
is usually performed by the testing teams.
58. Inter-Systems Testing: Testing technique that focuses on testing the
application to ensure that interconnection between application
functions correctly. It is usually done by the testing teams.
59. Keyword-driven Testing: Also known as table-driven testing or
action-word testing, is a software testing methodology for automated
testing that separates the test creation process into two distinct
stages: a Planning Stage and an Implementation Stage. It can be used
by either manual or automation testing teams.
60. Load Testing: Testing technique that puts demand on a system or
device and measures its response. It is usually conducted by the
performance engineers.
49 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
61. Localization Testing: Part of software testing process focused on
adapting a globalized application to a particular culture/locale. It is
normally done by the testing teams.
62. Loop Testing: A white box testing technique that exercises program
loops. It is performed by the development teams.
63. Manual Scripted Testing: Testing method in which the test cases are
designed and reviewed by the team before executing it. It is done by
Manual Testing teams.
64. Manual-Support Testing: Testing technique that involves testing of
all the functions performed by the people while preparing the data
and using these data from automated system. it is conducted by
testing teams.
65. Model-Based Testing: The application of Model based design for
designing and executing the necessary artifacts to perform software
testing. It is usually performed by testing teams.
66. Mutation Testing: Method of software testing which involves
modifying programs' source code or byte code in small ways in order
to test sections of the code that are seldom or never accessed during
normal tests execution. It is normally conducted by testers.
67. Modularity-driven Testing: Software testing technique which
requires the creation of small, independent scripts that represent
modules, sections, and functions of the application under test. It is
usually performed by the testing team.
68. Non-functional Testing: Testing technique which focuses on testing
of a software application for its non-functional requirements. Can be
conducted by the performance engineers or by manual testing teams.
69. Negative Testing: Also known as "test to fail" - testing method where
the tests' aim is showing that a component or system does not work.
It is performed by manual or automation testers.
70. Operational Testing: Testing technique conducted to evaluate a
system or component in its operational environment. Usually it is
performed by testing teams.
71. Orthogonal array Testing: Systematic, statistical way of testing
which can be applied in user interface testing, system testing,
Regression Testing, configuration testing and Performance Testing. It
is performed by the testing team.
72. Pair Testing: Software development technique in which two team
members work together at one keyboard to test the software
application. One does the testing and the other analyzes or reviews
the testing. This can be done between one Tester and Developer or
Business Analyst or between two testers with both participants
taking turns at driving the keyboard.
50 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
73. Passive Testing: Testing technique consisting in monitoring the
results of a running system without introducing any special test data.
It is performed by the testing team.
74. Parallel Testing: Testing technique which has the purpose to ensure
that a new application which has replaced its older version has been
installed and is running correctly. It is conducted by the testing team.
75. Path Testing: Typical white box testing which has the goal to satisfy
coverage criteria for each logical path through the program. It is
usually performed by the development team.
76. Penetration Testing: Testing method which evaluates the security of
a computer system or network by simulating an attack from a
malicious source. Usually, they are conducted by specialized
penetration testing companies.
77. Performance Testing: Functional testing conducted to evaluate the
compliance of a system or component with specified performance
requirements. It is usually conducted by the performance engineer.
78. Qualification Testing: Testing against the specifications of the
previous release, usually conducted by the developer for the
consumer, to demonstrate that the software meets its specified
requirements.
79. Ramp Testing: Type of testing consisting in raising an input signal
continuously until the system breaks down. It may be conducted by
the testing team or the performance engineer.
80. Regression Testing: Type of software testing that seeks to uncover
software errors after changes to the program (e.g., bug fixes or new
functionality) have been made, by retesting the program. It is
performed by the testing teams.
81. Recovery Testing: Testing technique which evaluates how well a
system recovers from crashes, hardware failures, or other
catastrophic problems. It is performed by the testing teams.
82. Requirements Testing: Testing technique which validates that the
requirements are correct, complete, unambiguous, and logically
consistent and allows designing a necessary and sufficient set of test
cases from those requirements. It is performed by QA teams.
83. Security Testing: A process to determine that an information system
protects data and maintains functionality as intended. It can be
performed by testing teams or by specialized security-testing
companies.
84. Sanity Testing: Testing technique which determines if a new
software version is performing well enough to accept it for a major
testing effort. It is performed by the testing teams.
85. Scenario Testing: Testing activity that uses scenarios based on a
hypothetical story to help a person think through a complex problem
51 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
or system for a testing environment. It is performed by the testing
teams.
86. Scalability Testing: Part of the battery of non-functional tests which
tests a software application for measuring its capability to scale up -
be it the user load supported, the number of transactions, the data
volume etc. It is conducted by the performance engineer.
87. Statement Testing: White box testing which satisfies the criterion
that each statement in a program is executed at least once during
program testing. It is usually performed by the development team.
88. Static Testing: A form of software testing where the software isn't
actually used it checks mainly for the sanity of the code, algorithm, or
document. It is used by the developer who wrote the code.
89. Stability Testing: Testing technique which attempts to determine if
an application will crash. It is usually conducted by the performance
engineer.
90. Smoke Testing: Testing technique which examines all the basic
components of a software system to ensure that they work properly.
Typically, smoke testing is conducted by the testing team,
immediately after a software build is made.
91. Storage Testing: Testing type that verifies the program under test
stores data files in the correct directories and that it reserves
sufficient space to prevent unexpected termination resulting from
lack of space. It is usually performed by the testing team.
92. Stress Testing: Testing technique which evaluates a system or
component at or beyond the limits of its specified requirements. It is
usually conducted by the performance engineer.
93. Structural Testing: White box testing technique which takes into
account the internal structure of a system or component and ensures
that each program statement performs its intended function. It is
usually performed by the software developers.
94. System Testing: The process of testing an integrated hardware and
software system to verify that the system meets its specified
requirements. It is conducted by the testing teams in both
development and target environment.
95. System integration Testing: Testing process that exercises a
software system's coexistence with others. It is usually performed by
the testing teams.
96. Top-Down Integration Testing: Testing technique that involves
starting at the top of a system hierarchy at the user interface and using
stubs to test from the top down until the entire system has been
implemented. It is conducted by the testing teams.
97. Thread Testing: A variation of top-down testing technique where the
progressive integration of components follows the implementation of
52 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
subsets of the requirements. It is usually performed by the testing
teams.
98. Upgrade Testing: Testing technique that verifies if assets created
with older versions can be used properly and that user's learning is
not challenged. It is performed by the testing teams.
99. Unit Testing: Software verification and validation method in which a
programmer tests if individual units of source code are fit for use. It
is usually conducted by the development team.
100. User Interface Testing: Type of testing which is performed to
check how user-friendly the application is. It is performed by testing
teams.
101. Usability Testing: Testing technique which verifies the ease with
which a user can learn to operate, prepare inputs for, and interpret
outputs of a system or component. It is usually performed by end
users.
102. Volume Testing: Testing which confirms that any values that may
become large over time (such as accumulated counts, logs, and data
files), can be accommodated by the program and will not cause the
program to stop working or degrade its operation in any manner. It is
usually conducted by the performance engineer.
103. Vulnerability Testing: Type of testing which regards application
security and has the purpose to prevent problems which may affect
the application integrity and stability. It can be performed by the
internal testing teams or outsourced to specialized companies.
104. White box Testing: Testing technique based on knowledge of the
internal logic of an application's code and includes tests like coverage
of code statements, branches, paths, conditions. It is performed by
software developers.
105. Workflow Testing: Scripted end-to-end testing technique which
duplicates specific workflows which are expected to be utilized by the
end-user. It is usually conducted by testing teams.
Non-Technical Skills
53 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
cases/plans, test strategies, bug reports, etc.) created by the
software tester should be easy to read and comprehend. Dealing
with developers (in the event of bugs or any other issue) will
require a shade of discreetness and diplomacy.
Time Management & Organization Skills: Testing at times
could be a demanding job especially during the release of code. A
software tester must efficiently manage workload, have high
productivity, exhibit optimal time management, and organization
skills.
GREAT Attitude: To be a good software tester you must have a
GREAT attitude. An attitude to 'test to break', detail orientation,
willingness to learn and suggest process improvements. In the
software industry, technologies evolve with an overwhelming
speed, and a good software tester should upgrade his/her
technical Software testing skills with the changing technologies.
Your attitude must reflect a certain degree of independence where
you take ownership of the task allocated and complete it without
much direct supervision.
Passion: To Excel in any profession or job, one must have a
significant degree of the passion for it. A software tester must have
a passion for his / her field. BUT how do you determine whether
you have a passion for software testing if you have never tested
before? Simple TRY it out and if software testing does not excite
you switch to something else that holds your interest.
Technical Skills
54 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
software testing. It is extremely critical to managing defects
properly and track them in a systematic manner. Defect tracking
becomes necessary because the entire team should know about
the defect including managers, developers, and testers. Several
tools are used to log defects including QC, Bugzilla, Jira, etc.
Knowledge and hands-on experience of Automation tool: If
you see yourself as an "Automation tester" after a couple of years
working on manual testing, then you must master a tool and get
in-depth, hands-on knowledge of automation tools.
1. QA Analyst (Fresher)
2. Sr. QA Analyst (2-3 years' experience)
3. QA Team Coordinator (5-6 years' experience)
4. Test Manager (8-11 years' experience)
5. Senior Test Manager (14+ experience)
Once you have got your hand dirty in manual testing, you can pursue
following specializations
55 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
Analyst. As a Business Analyst, you will be responsible for analyzing
and assessing your company's business model and workflows. As a
BA, you will integrate these models and workflows with technology.
Ethics
A branch of philosophy
Deals with values relating to human conduct
Concerned with “rightness” and “wrongness” of actions
Self-legislated and self-enforced
Sometimes difficult to determine because of competing, equally-valid
possible choices
Law
Derived from ethical values in a society
Formally / institutionally determined and enforced through courts
and law enforcement officials
Easily determined because it is a matter of statute and the legality of
action and consequences for not adhering to the law is spelled out
56 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
violating ethical standards, some practices (such as spamming and sending
viruses) are being written or will be written into law.
Short Version
PREAMBLE
The short version of the code summarizes aspirations at a high level of the
abstraction; the clauses that are included in the full version give examples
and details of how these aspirations change the way we act as software
engineering professionals. Without the aspirations, the details can become
legalistic and tedious; without the details, the aspirations can become high
sounding but empty; together, the aspirations and the details form a cohesive
code.
57 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
2. CLIENT AND EMPLOYER – Software engineers shall act in a manner
that is in the best interests of their client and employer consistent
with the public interest.
17. How to Handle Ethics Issues When You’re Starting Off in Software
Development
Progress brings complexity. Think about the introduction of cars – yes, faster
and more efficient travel time, but what about pollution and car accidents?
Because software development proceeds at such a rate, there are many
ethical issues, some more complicated than others, that arise over time. This
piece will mention a number of key ethical issues in software development
and then we’ll consider some strategies for dealing with these issues.
58 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
server for example, lists all the individual files a person has requested
from that website. These log files can also be used in workplace
surveillance. Deleting an email or a file is also not sufficient to erase
the trail. Now when it comes to ethics, who has access to those log
files? Think about how Facebook can get access to your private life via
these log files. How long should Facebook be allowed to keep these
files? These are just some of the ethical issues in software
development that programmers and companies come into contact
with on a daily basis.
We all know many website services are just there to collect your data.
Take Google for example, here’s the data it’s got on you, states The
Guardian: where you’ve been, everything you’ve ever searched (and
deleted), an advertisement profile of you, all the apps you’ve used and
with whom you use them, your YouTube history. Google actually has
an option where you can download all the information about yourself
– believe it or not, it would fill millions of Word documents!
59 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
What safety controls can you put into place to mitigate against
this?
Could your software potentially hurt, control or profile others?
If you were born a different gender or race, might you feel
differently about the system or app you have created?
Will there be any global effects on the planet?
Is your system susceptible to bias?
60 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
fails to perfectly conform to expectations. The agreement should allow
the developer the opportunity to cure any mistakes or errors, within a
reasonable time. If a problem cannot be overcome during the cure period,
the customer will generally have the option to either extend the cure
period, terminate the agreement and demand a refund from the
developer of any development fees previously received from the
customer, or make the corrections itself and charge the developer for
costs associated with fixing the problem.
61 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
infringement, there is a real risk that the developed software could
infringe on an existing patent. There is also the risk of copyright
infringement. Still, the potential for infringement, especially patent
infringement, makes the indemnity clause particularly important in a
software development agreement. The customer should be confident it is
receiving a non-infringing piece of software, and the developer, rather
than the customer, should be liable for damages incurred by any
infringement claims by third parties. Generally, the developer will agree
to indemnify the customer for any claims that the software breaches
third-party intellectual property rights. The customer will however be
required to notify the developer of any such third-party claims promptly
and cede control of the defense and any settlement related negotiations.
Engaging Activities
Please login to Google Classroom to see the complete instructions for the
following engaging activities:
Performance Tasks
Please login to Google Class to see the complete instructions for the following performance tasks:
62 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
Learning Resources
https://www.tutorialspoint.com/software_engineering/software_testing_overview.htm
https://www.atlassian.com/continuous-delivery/software-testing
https://www.guru99.com/software-testing-introduction-importance.html
https://usersnap.com/blog/software-testing-basics/
https://www.360logica.com/blog/difference-between-software-testing-and-software-development/
https://performancelabus.com/software-test-life-cycle-stlc-importance/
https://techbeacon.com/app-dev-testing/5-key-software-testing-steps-every-engineer-should-perform
Software Testing Methodologies For Robust Software Delivery (softwaretestinghelp.com)
https://www.softwaretestingmaterial.com/software-testing/
https://www.guru99.com/white-box-testing.html
https://www.guru99.com/black-box-testing.html
https://youtu.be/TDynSmrzpXw
https://www.guru99.com/types-of-software-testing.html
https://www.guru99.com/software-testing-career-complete-guide.html
https://legaldictionary.net/consideration/
https://psu.pb.unizin.org/comm370/chapter/chapter-8-ethical-and-legal-copnsiderations/
https://www.okaloosaschools.com/fwb/sites/okaloosaschools.com.fwb/files/users/anthonybryant/wds_v1.1
_ssg_l11.pdf
https://www.computer.org/education/code-of-ethics
https://www.sqa.org.uk/e-learning/ProfIssues03CD/page_04.htm
https://blog.hyperiondev.com/index.php/2018/07/17/how-to-handle-ethics-issues-when-youre-starting-off-
in-software-development/
https://entrepreneurship.law.umich.edu/legal-issues-to-consider-in-drafting-software-development-
agreements/
https://mikeyounglaw.com/software-development-agreement/
63 | P a g e