Module-06 (1)
Module-06 (1)
Module-06 (1)
Version control
Application version control
Version control also known as source control is system help developers track and mange change to
file over time.
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
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
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)
Key features:
• Fixture support
• Parameterized tests
• Plugins
Test frameworks
Mocha (JavaScript)
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 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
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