Assignment-6
Assignment-6
- 6
Subject – EST&T
--------------------------------------------------------------------------------------------------------------------------------------------
process in detail.?
According to McCall’s model, three software quality factors are included in the product
revision category
Maintainability :
This factor considers the efforts that will be needed by users and maintenance
personnel to identify the reasons for software failures, to correct the failures, and to
verify the success of the corrections.
Flexibility :
This factor deals with the capabilities and efforts required to support adaptive
maintenance activities of the software. These include adapting the current software to
additional circumstances and customers without changing the software. This factor’s
requirements also support perfective maintenance activities, such as changes and
additions to the software in order to improve its service and to adapt it to changes in the
firm’s technical or commercial environment.
Testability :
Testability requirements deal with the testing of the software system as well as with its
operation. It includes predefined intermediate results, log files, and also the automatic
diagnostics performed by the software system prior to starting the system, to find out
whether all components of the system are in working order and to obtain a report about
the detected faults. Another type of these requirements deals with automatic diagnostic
checks applied by the maintenance technicians to detect the causes of software failures.
a) Quality Metrics:
Although much cannot be done to alter the quality of the product during this
phase, following are the fixes that can be carried out to eliminate the defects as
soon as possible with excellent fix quality.
b) Six Sigma :
--------------------------------------------------------------------------------
d) TMM :
When a software is tested, there are so many processes which are followed
in order to attain maximum quality and minimizing defects or errors. Test
Maturity Model is one of such model which has a set of structured levels. TMM
is now replaced by Test Maturity Model Integration(TMMI) is a 5 level model
which provides a framework to measure the maturity of the testing processes.
Benefits of TMM:
1. Organized:
we have discussed all the 5 levels of TMM. Each level is well
defined and has a particular aim to achieve. This makes TMM a well-
organized model with clear goals.
2. Assurance of quality:
when we integrate testing with all the phases of software life cycle,
higher quality is achievable. Testing of test processes would optimize the
results which in turn gives assurance of good quality product.
3. Defect prevention:
as I mentioned earlier that TMM focuses on defect prevention
rather than defect detection by making testing process a part of all phases
of software life cycle. This would ensure that maximum defects are
prevented and final product is mostly defect free.
4. Clear requirements:
when requirements and designs are reviewed and test plans and test
cases are tested against requirements, the main test objectives are clearer
and hence, testing is more accurate.
Assignment No. - 5
Explain software test metrics.
Software testing metrics are a way to measure and monitor your test activities.
More importantly, they give insights into your team's test progress, productivity, and the
quality of the system under test. ... Result Metrics: metrics that are mostly an absolute
measure of an activity/process completed.
The goal of software testing metrics is to improve the efficiency and
effectiveness in the software testing process and to help make better decisions for
further testing process by providing reliable data about the testing process.
Types of Test Metrics
Process Metrics: It can be used to improve the process efficiency of the SDLC ( Software
Development Life Cycle)
Product Metrics: It deals with the quality of the software product
Project Metrics: It can be used to measure the efficiency of a project team or any
testing tools being used by the team members
The basic COCOMO model provide an accurate size of the project parameters. The
Where
KLOC is the estimated size of the software product indicate in Kilo Lines of Code,
Effort is the total effort required to develop the software product, expressed in person
months (PMs)
Example1: Suppose a project was estimated to be 400 KLOC. Calculate the effort and
development time for each of the three model i.e., organic, semi-detached & embedded.
Effort=a1*(KLOC)a2 PM
Tdev=b 1*(efforts)b2 Months
Estimated Size of project= 400 KLOC
(i)Organic Mode
E=2.4*(400)1.05=1295.31PM
D = 2.5 * (1295.31)0.38=38.07 PM
(ii)Semidetached Mode
E=3.0*(400)1.12=2462.79PM
D = 2.5 * (2462.79)0.35=38.45 PM
E=3.6*(400)1.20=4772.81PM
D = 2.5 * (4772.8)0.32 = 38 PM
2) Describe Intermediate COCOMO model in detail.
Intermediate Model:
The basic Cocomo model considers that the effort is only a function of the number
of lines of code and some constants calculated according to the various software systems.
The intermediate COCOMO model recognizes these facts and refines the initial estimates
obtained through the basic COCOMO model by using a set of 15 cost drivers based on
various attributes of software engineering.
Hardware attributes -
o Run-time performance constraints
o Memory constraints
o The volatility of the virtual machine environment
o Required turnabout time
Personnel attributes -
o Analyst capability
o Software engineering capability
o Applications experience
o Virtual machine experience
o Programming language experience
Project attributes -
o Use of software tools
o Application of software engineering methods
o Required development schedule
E=ai (KLOC)bi*EAF
D=ci (E)di
3) Explain Function Point Metrics.//////
The conceptual Idea behind the FPM is that size of the software product is directly
dependent on the number of different functions or features it supports. ... Beside using the
number of the input and output data values function point metric computes the size of a
A test organization defines who is responsible for what activity in the test process. The
organization defines the test functions, test facilities and test activities. It defines the
competencies and knowledge of the people involved.
In this structure, the test group reports into the Development Manager, the person
managing the work of the programmers. Given what you've learned about software testing,
this should raise a red flag of warning to youthe people writing the code and the people
finding bugs in that code reporting to the same person has the potential for big problems.
The organizational structure for a small project often has the test team reporting to the
development manager.
shows another common organizational structure where both the test group and the
development group report to the manager of the project. In this arrangement, the
test group often has its own lead or manager whose interest and attention is
focused on the test team and their work. This independence is a great advantage
when critical decisions are made regarding the software's quality. The test team's
voice is equal to the voices of the programmers and other groups contributing to
the product.
In an organization where the test team reports to the project manager, there's some
independence of the testers from the programmers.
The downside, however, is that the project manager is making the final decision on
quality. This may be fine, and in many industries and types of software, it's
perfectly acceptable. In the development of high-risk or mission-critical systems,
however, it's sometimes beneficial to have the voice of quality heard at a higher
level. The organization shown in Figure 21.4 represents such a structure.
Three organizational structures are just simplified examples of the many types
possible and that the positives and negatives discussed for each can vary widely
The nodes in the graph indicate the smallest group of commands of a program, and a
directed edge in it connects the two nodes i.e. if second command might immediately
M = E – N + 2P
where,
Steps that should be followed in calculating cyclomatic complexity and test cases
design are:
Construction of graph with nodes and edges from code.
Identification of independent paths.
Cyclomatic Complexity Calculation
Design of Test Cases
A = 10
IF B > C THEN
A=B
ELSE
A=C
ENDIF
Print A
Print B
Print C
c) Test planning
A Test Plan is a detailed document that describes the test strategy, objectives,
schedule, estimation, deliverables, and resources required to perform testing for a
software product. Test Plan helps us determine the effort needed to validate the
quality of the application under test. The test plan serves as a blueprint to conduct
software testing activities as a defined process, which is minutely monitored and
controlled by the test manager.
Help people outside the test team such as developers, business managers,
customers understand the details of testing.
Test Plan guides our thinking. It is like a rule book, which needs to be
followed.
Whenever large scale systems are designed, object oriented testing is done
rather than the conventional testing strategies as the concepts of object
oriented programming is way different from that of conventional ones.
The whole object oriented testing revolves around the fundamental entity
known as “class”.
With the help of “class” concept, larger systems can be divided into small well
defined units which may then be implemented separately.
The object oriented testing can be classified as like conventional systems.
These are called as the levels for testing.
Object Oriented Testing : Levels / Techniques
The levels of object oriented testing can be broadly classified into three categories.
These are:
1. Class Testing
o Class testing is also known as unit testing.
o In class testing, every individual classes are tested for errors or bugs.
o Class testing ensures that the attributes of class are implemented as per the
design and specifications. Also, it checks whether the interfaces and methods
are error free of not.
2. Inter-Class Testing
o It is also called as integration or subsystem testing.
o Inter class testing involves the testing of modules or sub-systems and their
coordination with other modules.
3. System Testing
o In system testing, the system is tested as whole and primarily functional
testing techniques are used to test the system. Non-functional requirements
like performance, reliability, usability and test-ability are also tested.
mosting, a software testing technique exclusively adopted to test the applications that are
hosted on web in which the application interfaces and other functionalities are tested
1. Functionality Testing - The below are some of the checks that are performed but not
limited to the below list:
Verify there is no dead page or invalid redirects.
First check all the validations on each field.
Wrong inputs to perform negative testing.
Verify the workflow of the system.
Verify the data integrity.
2. Usability testing - To verify how the application is easy to use with.
Test the navigation and controls.
Content checking.
Check for user intuition.
3. Interface testing - Performed to verify the interface and the dataflow from one system
to other.
4. Compatibility testing- Compatibility testing is performed based on the context of the
application.
Browser compatibility
Operating system compatibility
Compatible to various devices like notebook, mobile, etc.
5. Performance testing - Performed to verify the server response time and throughput
under various load conditions.
Load testing - It is the simplest form of testing conducted to understand the
behaviour of the system under a specific load. Load testing will result in
measuring important business critical transactions and load on the database,
application server, etc. are also monitored.
Stress testing - It is performed to find the upper limit capacity of the system and
also to determine how the system performs if the current load goes well above the
expected maximum.
Soak testing - Soak Testing also known as endurance testing, is performed to
determine the system parameters under continuous expected load. During soak
tests the parameters such as memory utilization is monitored to detect memory
leaks or other performance issues. The main aim is to discover the system's
performance under sustained use.
Spike testing - Spike testing is performed by increasing the number of users
suddenly by a very large amount and measuring the performance of the system.
The main aim is to determine whether the system will be able to sustain the work
load.
6. Security testing - Performed to verify if the application is secured on web as data
theft and unauthorized access are more common issues and below are some of the
techniques to verify the security level of the system.
Injection
Broken Authentication and Session Management
Cross-Site Scripting (XSS)
Insecure Direct Object References
Security Misconfiguration
Sensitive Data Exposure
Missing Function Level Access Control
Cross-Site Request Forgery (CSRF)
Using Components with Known Vulnerabilities
Unvalidated Redirects and Forwards
.
handheld mobile devices is tested for its functionality, usability and consistency.
Usability testing is carried out to verify if the application is achieving its goals and
getting a favorable response from users. This is important as the usability of
an application is its key to commercial success (it is nothing but user friendliness).
[9]
Another important part of usability testing is to make sure that the user
experience is uniform across all devices.[10] This section of testing hopes to
address the key challenges of the variety of mobile devices and the diversity in
mobile platforms/OS, which is also called device fragmentation. One key portion of
this type of usability testing is to be sure that there are no major errors in the
functionality, placement, or sizing of the user interface on different devices.[11]
Installation testing: Certain mobile applications come pre-installed on the device
whereas others have to be installed by the store. Installation testing verifies that
the installation process goes smoothly without the user having to face any
difficulty. This testing process covers installation, updating and uninstalling of
an application
Certification testing: To get a certificate of compliance, each mobile device
needs to be tested against the guidelines set by different mobile platforms.
Security testing: Checks vulnerabilities to hacking, authentication and
authorization policies, data security, session management and other security
standards.[12]
Location testing: Connectivity changes with network and location, but you can't
mimic those fluctuating conditions in a lab. Only in Country[clarification needed] non-
automated testers can perform comprehensive usability and functionality testing.
Outdated software testing: Not everyone regularly updates their operating
system. Some Android users might not even have access to the newest version.
Professional testers can test outdated software.
Load testing: When many users all attempt to download, load, and use an app or
game simultaneously, slow load times or crashes can occur causing many
customers to abandon your app, game, or website. In-country human testing done
manually is the most effective way to test load. [13]
Black-box testing: Where the application is tested without looking at
the applications code and logic. The tester has specific test data to input and the
corresponding output that the application should produce, and inputs the test
data looking for the program to output data consistent with what the tester was
expecting. This method of test can be applied virtually to every level of software
testing: unit, integration, system and acceptance.
Responsiveness
The one thing to look out for while testing is whether the application fits properly in the
device resolution. A tester must check if there are any horizontal scrolling, alignment or
padding issues, and sizes of font and buttons in different devices.
Integration Testing
The rating of an application depends on its usability as well as functionality. Integration
testing is a must thing to carry out at the user’s end to check whether the application is
reliable, all the critical functionalities work properly as well as there is no significant impact
on performance after merging new features.
Security
If the application has features like online transaction and payment gateways, testing
should be executed to ensure that there are no chance of any fraudulent activities and
local storage of payment-related data in the device.
Performance Testing
Often a web application gets too slow or crashes when the internet traffic increases all of
a sudden. Performance testing should be carried out to ensure that there is no impact on
the speed of performing an activity using the application.
Usability Testing
Interactive and dynamic web applications are always popular among users. Proper unit
testing should be carried out across devices from the user’s perspective to ensure there
are no such issues that may impact the usability of the application.
Entry and Exit Points
There are stages when a user will need to navigate out from the application to a third-
party website and redirect from another website or gateway to the application. It is a real
challenge to test whether this feature works properly.
Firewalls
Often a web application is blocked by certain firewalls or port. This may be because of the
security certificate or something else. Testing should be conducted to ensure that it
behaves properly across all firewalls.
Accessibility Testing
W3C has mentioned several guidelines stated in Section 508 and WCAG which requires a
website to be accessible by all people, especially people with disabilities. Testing should be
conducted to ensure that users with hearing or sight disabilities can access the website
with the use of screen-reader and other devices.
Project Deadline
Testing is often not conducted properly when a project is coming nearer to the deadline. It
should be planned beforehand to ensure that there is a proper time for testing the
functionality, performance, and usability of the application before it is deployed in
production.
The screen size affects the way an application will appear on different devices. It is one of
the most complicated mobile app testing challenges since developers must now
concentrate on its adaptability to various mobile screens. This includes resizing the apps
and adjusting to multiple screen resolutions to maintain consistency across all devices.
This might turn out to be a challenge unless an application is thoroughly tested.
ecurity concerns
Security concerns are a huge roadblock for the mobile app testing team. Although private
cloud-based mobile app testing tools like LambdaTest are secure, there are several
concerns that app developers regularly face.
Easier access to the cache: Mobile devices are more prone to breaches since it is simpler to
access the cache. Suspicious programs can therefore find easy routes to private
information through mobile applications unless built and tested to nullify the
vulnerabilities.
Poor encryption: Encryptions are the first walls between user data and malignant sources.
Poor or no encryption in mobile applications can attract hackers like a moth to the flame.
The initial half of 2020 witnessed data breaches that disclosed 36 billion records.
Therefore, developers must build apps with more robust encryption coding and then the
app testing team to ensure the encryption works well.
Too many app testing tools
There is a wide range of cloud-based mobile app testing tools not built from a one-size-
fits-all perspective. There are separate tools for the different kinds of applications, some
more which only test Android apps and others that check the ones for iOS. There is no
shortage of platforms and tools that test applications of all specifications.