Module-06 (1)

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 28

Module 6a

Version control
Application version control

Version control also known as source control is system help developers track and mange change to
file over time.

Essential tool for software development project allow team to


• Effective on code
• Previous version of code
• Track history of change in code
• Identify and bugs more easily
Application version control key concepts
Repository
It is central storage location for project source code, documentation ,and related file.
Remotely on platforms like GitHub, GitLab or bitbucket.

Commit
It is a snapshot of change made to codebase specific point in time.

Branch
It is an independent line of development that diverge from main codebase

Merge
It combines changes from one branch into another.
It is crucial process for integrating new feature

Pull Request/Merge Request(MR)


It is request to merge change from one branch into another

Conflict resolution
It occur when two or more branch made change to same code line.
Popular version control system

Subversion

Git

Mercurial
Popular version control system
Subversion:
It is centralized version control system that is easier to learn than git
Not powerful or flexible

Git
It is distributed version control system widely used for software development.
Powerful and flexible
Complex to learn

Mercurial
Similar to git
It has different command line interface
Type of version control system

Centralized Distributed
Local VCS VCS VCS
Keep database Single global Like git
file change. repository &mercurial
Allow recreation where users feature multiple
of any file past commit change repository
state Other see these Each user own
change after need and need
update to commit push,
pull and update
to share change
Module 6b
Automated testing
Application Testing
It is process of systematically evaluating software to ensure that it behave as
expected.
Unit testing
White box
Application

Functional Integration
testing testing
testing

Manual testing Grey box


System testing
Automated
Black box
testing Performance
testing
Nonfunctional Compatibility
testing testing
Usability
testing
Unit testing

It is a software testing technique where individual components or


unit software application are tested in isolation to ensure that each
unit works as intended.

Involves testing small, independent parts of code, such as


functions,methods,or classes to validate their correctness.
Automated Testing

It is use of specialized tools and scripts to automatically execute predefined


test cases for software, ensuring efficiency, speed and consistent validation
of functionality.
Automated Unit Testing
Components of Automated Unit Testing
1.Test cases
Check specific functionalities
Written to cover various scenarios
2.Test frameworks
Provide structure for organizing &execute tests
E.g. Junit for java,pytest for python
3.Test Automation Tools
Tools facilitates creation, execution & analysis of automated tests
e.g. Selenium for web application
Automated Unit Testing
1.Plan & Design
Identify unit to test
Define clear, expected test cases
Choose a testing framework
Create mock objects if needed
2.Write tests
Use framework syntax
Focus on clarity and best practices
Start small and iterate
3.Run & manage
Automate with build tools
Track results and reports
Debug and fix failures
4.Maintain &improve
Refactor tests with code changes
Increase test coverage gradually
Maintain test suite health
Test Frameworks
JUnit(java)
It is widely used testing framework for java that provides structured approach to
writing and executing unit tests.
It supports various testing needs, including unit testing ,integration testing and
system testing.

Key features:
• Annotations: it uses annotations to define test methods, setup and teardown
methods.
• Assertions: provide set of assertion method to check the expected outcomes
of tests.
• Test runners: supports test runners for executing and reporting on tests
Test framework
Pytest(python)

It is flexible and feature rich testing framework for python.


Known for simplicity, scalability and extensive plugin support make
suitable for various testing scenarios.

Key features:
• Fixture support
• Parameterized tests
• Plugins
Test frameworks
Mocha (JavaScript)

Designed for asynchronous testing in both browser & node.js environment


Features like timeouts, hooks &various reporters for test output

Key features:
• Hooks
• Reporters
• Asynchronous support
Test automation tools
Selenium

• It support only web-based application which means that the application can be opened by
the browser
• Not support stand alone application
• Programming language: Java,C#,Python,Ruby,PHP etc
• Support browsers: Firefox,IE,Opera,Safari etc
• Testing on local or remote machine via selenium server
Test automation tools
Appium

• It is popular open-source tool for automating mobile


applications on iOS and Android platforms.
• Supported programming languages:Java,C#,python, Ruby.
• Integrations with other testing frameworks and CI/CD tools
Test automation tools
QTP(Quick Test Professional )

• It is tool used to test functional regression test cases of the web-based application
• It is now known as micro focus UFT (Unified functional testing)
• The tool support record and playback feature
• Both technical &nontechnical tester can use QTP
• We can perform BPT(Business process testing)
Automated Unit Test with Jenkins
1. Set up Jenkins
2. Integrate with Version Control
3. Configure build jobs
4. Leverage plugins and tools
Module 6c
Code Quality
Static Code Analysis
It is examination of source code to identify bugs, vulnerabilities and
coding issues without expecting the program enhancing code quality
during early development stage.

Benefits
• Code structure examination
• Syntax verification
• Documentation compliance
• Quality metrics assessment
• Vulnerability identification
• Performance analysis
Static code analysis tool
ERRO
R SonarQub
LINT TOOLS
PRON e

FACEBOOK INFER
check spotbug
style s

COVERIT PMD
PROGRAMMING
Y MISTAKE DETECTOR
CODE FORMATTING CHECKS
It ensure that the source code follows consistent style make it easier to
read and understand.
Tools like check style and ESLint enforce coding standards related to
indentation, naming conventions and other formatting rules.

Purpose
• Maintain a uniform style across the entire codebase
• Enhance code readability and collaboration among developers
• Identify and correct formatting issues automatically
CODE FORMATTING CHECKS:Checkstyle

An open-source tool for static code analysis of java code.


It enforce coding standards and detects potential style and formatting issues, promoting code
quality and consistency.it audits code against set of customizable rules defined in XML,with
many available checks like naming,layouts,javadocs,whitespace etc.

Key features
• Customizable rulesets
• Integration with IDEs and build tools
• Extensible
• Output formats
CODE FORMATTING CHECKS:Checkstyle

1.Configuration
2.Running checkstyle
3.Report Generation
CODE FORMATTING CHECKS:ESLint
An open source linting tool for JavaScript and JSX code.
Analyzes code to find potential errors, enforce coding style and maintain code quality and
consistency.
It defines linting rules configured via .eslintrc file in JavaScript project.
Many built in rules available or custom rules can be defined

Features:
• Customizable rules
• Plugins
• Integration with tools
• Shareable configurations
CODE FORMATTING CHECKS:ESLint

1.Configuration
2.Running ESLint
3.Report Generation

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy