Saturday, July 18, 2026

Introduction To Software Testing

Purpose of software testing: A study of how errors, defects, and failures happen, and how we catch them to increase confidence in delivered software. Analogy (car delivery vs software delivery): In car manufacturing, expectations (no damage, correct parts, documentation, pre-sales checks) are treated as baseline requirements. Software delivery often fails to meet expectations—commonly because testing is inadequate. Testing challenges: Testing is not inherently “complex,” but it’s often applied with insufficient rigour, leading to an assurance vacuum. Common issues include: Rigour gap (not done thoroughly enough) Human cost (time/coordination effort) Tooling shortfall (underuse of technology that could speed up testing) Why software fails (five cases): Airbus A380: Wiring/cabling integration problems during assembly. UK tax returns: A privacy/data leakage issue where users could see prior users’ earnings. UK “Top 10 Wanted” website: Performance collapse due to load spikes after widespread publicity. Smartphone mapping app: Data accuracy/cartographic errors (e.g., incorrect placement of a museum). US military breach: Security breach exposing sensitive personnel financial and identity data. Root causes: Designers make mistakes because of pressures like deadlines, system complexity, organizational complexity, and changing technology. Error → defect → failure model: Error: incorrect thinking/assumption/forgotten detail (invisible) Defect: the error becomes a fault in documentation/specs/design/code Failure: the defect causes the system to fail (not always, but often) Detection pitfalls: Test outcomes can be misleading: False positive (looks broken, actually works) False negative (works “in tests,” but fails in real use because it wasn’t detected) How to handle testing: Start testing early (“begin testing the moment errors begin”) to prevent propagation. Continue until confident, right through to the end of development. What’s at stake: Incorrect software can cause money loss, time loss, reputation damage, injury, or even death—especially in safety-critical systems.

 

Software Engineering / Lecture 01 01 / 14

Introduction
to Software
Testing.

Why systems fail · How we catch them
A study of errors, defects & failures.
◉ EST. 2024 · DEPT. OF CS
The analogy · expectations 02 / 14
If you were buying a new car…

A level of expectation is set the moment you walk in.

You would not expect to take delivery from the showroom with a scratch down the side of the vehicle. The car should have the right number of wheels, a steering wheel, an engine — and a spare for emergencies.

It should come with appropriate documentation, with all pre-sales checks completed and passed satisfactorily. The car you receive should be the car described in the sales literature.

If your expectations are not met, you will feel justifiably aggrieved.
Bodywork integrityVISUAL
Wheels + spareCOMPONENT
Engine specificationPERFORMANCE
Colour scheme matchAESTHETIC
Ordered extrasCONFIG
Fuel consumptionMETRIC
DocumentationPAPERWORK
The contrast · delivery expectations 03 / 14
Car delivery test vs. Software delivery
Automotive

Pre-sales
checks
passed.

Brochures, test drives, experience — all set a baseline. Deviation is the exception, not the rule.

Expectation92%
versus
Software

Delivered
not working
— often.

Examples of software being delivered not working as expected, or not working at all, are common. No single cause, but inadequate testing is a major factor.

Confidence34%
The discipline · challenges 04 / 14
Software testing challenges

Software testing is neither complex nor difficult to implement, yet it is a discipline that is seldom applied with anything approaching the necessary rigour to provide confidence in delivered software.

It is costly in human effort, or in the technology that can multiply that effort — yet seldom implemented at a level that provides any assurance software will operate effectively, efficiently or even correctly.

01
Rigour gap. Seldom applied at the level needed to inspire confidence.
02
Human cost. Expensive in people, time, and coordination.
03
Tooling shortfall. Technology that multiplies effort is underused.
04
Assurance vacuum. Rarely does testing guarantee correct operation.
Why software fails · five cases 05 / 14
Case studies in software failure

Why does software fail?

Five real-world examples where inadequate testing or design flaws led to failures of varying scale — from financial loss to national security exposure.

CASE 01
Airbus
A380
Manufacturing
CASE 02
UK Tax
Returns
Privacy
CASE 03
Top 10
Wanted
Performance
CASE 04
Mapping
App
Accuracy
CASE 05
US Military
Breach
Security
Case 01 · Airbus A380 06 / 14
Case Study 01
01
Cabling could not be joined.

Assembly
incompatibility.

After successful test flights and airworthiness accreditation, problems arose in the manufacture of the Airbus A380 aircraft. Assembly of the large sub-parts into the completed aircraft revealed enormous cabling and wiring problems.

The wiring of large sub-parts could not be joined together. The issue was quickly fixed and the aircraft entered into service within 18 months of the cabling difficulties being identified.

Estimated rectification cost
$6.1BILLION
Case 02 · UK Government tax filing 07 / 14
Case Study 02
02
You could see what the previous user earned.

Privacy
breach.

When the UK Government introduced online filing of tax returns, a user could sometimes see the amount that a previous user earned.

This was regardless of the physical location of the two applicants — a session or data leakage defect with serious privacy implications for every citizen using the system.

Failure category
DATALEAKAGE
Case 03 · UK's top 10 wanted 08 / 14
Case Study 03
03
The site was taken offline.

Performance
collapse.

In November 2005, information on the UK's top 10 wanted criminals was displayed on a website. The publication was described in newspapers, on morning radio and television, and as a result many people attempted to access the site.

The performance of the website proved inadequate under this load and it had to be taken offline. The publicity created performance peaks beyond the capacity of the website.

Failure category
LOADSPIKE
Case 04 · Smartphone mapping app 09 / 14
Case Study 04
04
A museum sat in the middle of a river.

Cartographic
errors.

A new smartphone mapping application was introduced in September 2012. Among many other problems, a museum was incorrectly located in the middle of a river, and Sweden's second city, Gothenburg, seemed to have disappeared from at least one map.

A high-profile launch with low-quality data undermined user trust within hours.

Failure category
DATAACCURACY
Case 05 · US military security breach 10 / 14
Case Study 05
05
Perhaps "all" personnel compromised.

Personnel
exposure.

Security breaches at the US military resulted in the payment details of many personnel — perhaps even "all" — being compromised.

The exposed data included names, addresses, email addresses and bank details: the full financial identity of serving members of one of the world's most security-conscious organisations.

Failure category
SECURITYBREACH
Root cause · human fallibility 11 / 14
Do system designers make mistakes?

Of course they do. People are fallible.

To understand what's going on, we need to start at the beginning — with the people who design systems. Pressures bear down on designers and increase the likelihood of defects in specifications, designs and code.

P/01
Deadlines
P/02
System complexity
P/03
Organisational complexity
P/04
Changing technology
Anatomy · error → defect → failure 12 / 14
Error, Defect, Failure

From invisible thought to visible collapse.

STAGE / 01
Error
An incorrect thought, a wrong assumption, or a thing forgotten. Intangible — you cannot touch it. Where major system failures usually begin.
STAGE / 02
Defect
When the error is written down, it becomes a fault or defect in a document. If used to specify a component, the component may be built faulty.
STAGE / 03
Failure
A faulty component built into a system causes the system to fail. Not always guaranteed — but errors in thought tend to lead to faulty components, and faulty components cause system failure.
Detection · false signals & strategy 13 / 14
Not every apparent failure is a real failure

Test results can lie — in both directions.

False Positive
+

Looks broken.
Isn't.

The tester misunderstood what should happen in those precise circumstances. The application or system is actually performing correctly.

False Negative

Looks fine.
Isn't.

A real failure exists, but is not identified as such — the test is seen as correct, and the defect slips through into production.

AVOIDANCEBegin testing the moment errors begin — at the start of development. Find faults before they propagate.
RECTIFICATIONContinue until confident no serious failures remain — right through to the end of the development process.
Conclusion · what is at stake 14 / 14
Incorrect software can harm…

People. Companies.
The environment.

— LOSS / 01
Money
— LOSS / 02
Time
— LOSS / 03
Reputation
— LOSS / 04
Injury
— LOSS / 05
Death
A train carrying nuclear waste. An aircraft at altitude. A hospital life support system. Software failures can cause all of these at once.
Read More

Thursday, July 11, 2024

Linear vs Non-linear Transformations



.

What is a linear transformation? A linear transformation is a mathematical function that maps a vector space to another vector space in a way that preserves addition and scalar multiplication. This means that the output of the transformation is directly proportional to the input, and there is no bending or curving in the transformation. 

.

What is a nonlinear transformation? A nonlinear transformation is a mathematical function that does not preserve addition and scalar multiplication. This means that the output of the transformation is not directly proportional to the input, and there is bending or curving involved in the transformation. 

.

What are some examples of linear transformations? Some examples of linear transformations include translations, rotations, reflections, and dilations. In mathematics, linear transformations are often represented by matrices, and the most common linear transformations are those that involve multiplication by a constant or addition of a constant. 

.

What are some examples of nonlinear transformations? Some examples of nonlinear transformations include polynomial functions, trigonometric functions, logarithmic functions, and exponential functions. These functions involve operations such as squaring, taking the sine or cosine, or raising to a power other than 1, which results in a nonlinear transformation. 

.

What is the difference between linear and nonlinear transformations? The main difference between linear and nonlinear transformations is that linear transformations preserve addition and scalar multiplication, while nonlinear transformations do not. This means that linear transformations result in straight lines or planes, while nonlinear transformations result in curves or surfaces. Additionally, linear transformations can be represented by matrices, while nonlinear transformations cannot be represented by a single matrix.

.

Reference: https://www.physicsforums.com/threads/difference-between-linear-and-nonlinear-transformation.351908/

Read More

Wednesday, May 29, 2024

Free Plagiarism Checker


 

.

A plagiarism checker is a program that checks if the words or ideas in a document match what someone else has written before. It looks through the document and compares it to a lot of other things that have been published online, like websites, books, and papers. If it finds parts that are the same as something else, it can tell you that there might be plagiarism, which is when you use someone else's work without giving them credit. This is important for things like school assignments and writing, to make sure the work is original.

.

From a technical perspective, a plagiarism checker will typically flag several types of sentences or content as potential plagiarism:


Direct verbatim copying - This includes taking a sentence or paragraph from another source word-for-word without proper attribution. Even a single sentence copied directly is considered plagiarism.


Close paraphrasing - If the wording of a sentence or passage is very similar to the original source, with only minor changes in phrasing, this can be flagged as unacceptable paraphrasing that amounts to plagiarism. The checker looks for sentence structure, key phrases, and close matches in word choice.


Mosaic plagiarism - This refers to piecing together content from multiple sources, altering a few words here and there, to create the appearance of original work. The plagiarism checker will identify these composite passages as too similar to the original sources.


Ideas or concepts - Even if the wording is not directly copied, if the key ideas, theories, or findings presented are taken from another work without proper citation, this can constitute plagiarism of intellectual property.


The plagiarism checker's algorithms are designed to identify all of these different types of plagiarized content to uphold standards of academic integrity and original authorship.

.

It is possible for two people to coincidentally write content that is similar or even appear nearly identical, without any intentional plagiarism taking place. This can happen when authors independently arrive at the same conclusions, use common phrasing or terminology within a particular field, or describe standard processes or concepts in a similar way. In such cases, the plagiarism checker may flag the content as potentially plagiarized, even though the similarity is purely coincidental. The onus is then on the author to provide context, demonstrate their own independent research and thought process, and show that they did not copy the work of others. As long as proper citations are provided for any referenced sources, unintentional similarity should not be considered plagiarism. Plagiarism checkers have limitations and can flag false positives, so it's important for authors to be able to explain and justify any coincidental overlap in their writing.

.

[1] https://plagiarismdetector.net/

Plagiarismdetector.net is a reliable online tool for detecting plagiarism. It offers a completely free and accurate way to check for copied content. Here are some key features of this plagiarism checker:

Deep Search: Unlike basic plagiarism checkers, this tool performs a thorough analysis. It considers lexical frequencies, word choice, matching phrases, and other important factors.

URL or File Uploading: You can either copy and paste your text or upload a page URL or a file. This flexibility makes it convenient for users.

No Ads, No Word Limit: Plagiarismdetector.net ensures a clean interface without distracting ads. Plus, there’s no word limit, so you can check longer documents.

Multiple Languages Supported: It can detect plagiarism in over 150 languages, including English, German, Arabic, Spanish, Portuguese, French, Italian, Filipino, Russian, Hindi, Malay, and more

.

[2] https://app.grammarly.com/

Grammarly’s plagiarism checker is a powerful tool that ensures the originality of your writing. Here’s how it works:

Comparison to Web Pages and Academic Papers:

When you click the Plagiarism button in Grammarly, it compares your text to billions of web pages and academic papers stored in private databases.

It looks for sentences or paragraphs that have been published elsewhere.

Flagging and Citation Alerts:

Grammarly flags text that may need a citation.

In some cases, it even provides links to the source where matching text was detected1.

Premium Features:

Grammarly’s Premium plagiarism checker goes beyond basic alerts:

It flags specific sentences that require citations.

Provides reference information about the source.

Calculates an overall originality score for your document.

Offers advanced writing feedback and corrections across various dimensions.

Privacy Assurance:

Rest assured, your writing remains private.

Grammarly’s plagiarism checker does not make your content searchable publicly or in any other database.

No other plagiarism checkers will see your text.

.

[3] https://smallseotools.com/plagiarism-checker/

SmallSEOTools’ Plagiarism Checker is a 100% free online tool that detects plagiarism and provides rapid and reliable findings. To use it, simply copy and paste your text into the provided box, then click the blue button labeled “Check Plagiarism.” Within seconds, your article will be scanned for duplicate content. The user-friendly interface ensures a quick and hassle-free experience. Notably, this web-based utility supports multi-platform access, so whether you’re on Android, iOS, Windows, Linux, or Mac, you can easily check for plagiarism without installing any plugins or software. Plus, there are no costs involved, making it an excellent choice for students, teachers, researchers, writers, publishers, and bloggers. Beyond detecting plagiarism, it also provides a list of matching sources, allowing users to verify and cite their work effectively

.

[4] https://www.duplichecker.com/

Duplichecker is a free online plagiarism checker that verifies whether content is partially or fully plagiarized on the internet. It works by analyzing each sentence and comparing it to existing content online. Users can paste text, drop files, or upload documents in formats such as .tex, .txt, .doc, .docx, .odt, .pdf, and .rtf. The tool provides results in percentage, revealing the uniqueness of the content and highlighting any matching sources. Additionally, Duplichecker respects user privacy by not saving uploaded material, ensuring data security and confidentiality

.

[5] https://www.quetext.com/

Quetext is a leading platform for plagiarism detection. It has assisted over 5 million students, teachers, and content writers in fixing writing issues, building citations, and ensuring the originality of their work. Quetext’s deep search technology analyzes text to identify instances of plagiarism, while also providing AI-powered solutions for writing improvement. With an easy-to-use interface and precise results, Quetext is a reliable tool for detecting various types of plagiarism, including paraphrasing. Whether you’re a student or a professional writer, Quetext helps you maintain the integrity of your content

.

[6] https://www.paraphraser.io/plagiarism-checker

Paraphraser.io’s Plagiarism Checker is a valuable online tool that scans your content for plagiarism. Whether you’re a student, professional writer, or blogger, this tool ensures the authenticity of your work. Here are its key features:


In-Depth Checking: Paraphraser.io employs advanced AI technology to perform an in-depth search for similarities and duplication across online sources. Its robust databases delve into vast libraries on the internet, fetching original and authentic material.

Accuracy in Results: Unlike magic tricks, this plagiarism checker provides authentic results in real-time. It doesn’t falsely identify unreasonable duplication; instead, it focuses on precision.

Free to Use: The best part? It’s completely free! You can scan your files for plagiarism without any cost. Just visit the Paraphraser.io Plagiarism Checker and start using it.

Multiple Input Options: Along with copy-pasting, you can upload URLs or files for a speedy check. It’s quick, efficient, and helps you maintain the integrity of your content.

.

[7] https://papersowl.com/free-plagiarism-checker


PapersOwl’s plagiarism detection tool provides all the essential information you need to address plagiarized content. Whether you unintentionally fell victim to plagiarism or borrowed text from various sources, this tool delivers an accurate percentage through its online plagiarism checker. Simply copy and paste your text into the platform, and it swiftly analyzes your work, offering a uniqueness percentage, identifying sources, and even suggesting a “Make It Unique” button for rewriting. It’s a convenient and reliable solution for maintaining academic integrity and ensuring originality in your writing
.

[8] https://www.customwritings.com/howtowrite/plagiarism-checker/

CustomWritings.com offers a plagiarism checker to ensure the originality of your work. You can insert your text for analysis (available in English only), and the tool will compare it against its database. If any similarities are found, it will highlight them, allowing you to make necessary changes.


.





Read More

Monday, May 13, 2024

How to create PHP Laravel project on Replit platform?

.

To create a PHP Laravel project on Replit, follow these steps:

  1. Visit the Replit website at https://replit.com/ and log in to your account. If you don't have an account, you can create one for free.
  2. Once you're logged in, click on the "New Repl" button on the top-right corner of the page.
  3. In the pop-up window that appears, type "Laravel" in the search box.
  4. Select the "Laravel ... " option from the list of templates.
  5. Click on the "Create Repl" button. Replit will create a new repl with the PHP Web Server template.

.

  

Read More

How to create PHP Web project on Replit platform?


.

To create a PHP Web project on Replit, follow these steps:

  1. Visit the Replit website at https://replit.com/ and log in to your account. If you don't have an account, you can create one for free.
  2. Once you're logged in, click on the "New Repl" button on the top-right corner of the page.
  3. In the pop-up window that appears, type "PHP Web" in the search box.
  4. Select the "PHP Web Server" option from the list of templates.
  5. Click on the "Create Repl" button. Replit will create a new repl with the PHP Web Server template.

.
 

Read More

How to create PHP CLI project on Replit platform?


.

To create a PHP CLI project on Replit, follow these steps:

  1. Visit the Replit website at https://replit.com/ and log in to your account. If you don't have an account, you can create one for free.
  2. Once you're logged in, click on the "New Repl" button on the top-right corner of the page.
  3. In the pop-up window that appears, choose "PHP" as the language for your repl.
  4. Select the "CLI" option from the list of templates. This will set up a Command Line Interface (CLI) project using PHP.
  5. Click on the "Create Repl" button. Replit will create a new repl with the PHP CLI template.
  6. You will now see the code editor where you can start writing your PHP CLI application. By default, there will be a simple "Hello, World!" example in the editor.
  7. Modify the code according to your requirements. You can add your PHP CLI application logic, functions, classes, and any other necessary code.
  8. To run your PHP CLI application, click on the green "Run" button located at the top of the editor. Replit will execute your PHP code in the terminal and display the output.
  9. You can interact with your PHP CLI application through the terminal. Enter any input required by your application and observe the output.

.


Read More

What is Replit?

.

Replit is an AI-driven software creation platform that allows users to build, share, and ship software quickly. 

It provides a collaborative environment where multiple users can work together on code, review and debug code, and leave comments for efficient collaboration. 

Replit also offers Replit AI, which uses artificial intelligence to assist with tasks such as code generation, debugging, and autocomplete. 

With Replit Deployments, users can easily launch production-ready applications. 

Replit aims to empower software creators and provide them with the tools they need to bring their ideas to life.

.

Read More

Sunday, May 12, 2024

How to create Java project on Replit platform?

 


To create a Java project on Replit, follow these steps:

[1] Visit the Replit website at https://replit.com/ and log in to your account. If you don't have an account, you can create one for free.

[2] Once you're logged in, click on the "New Repl" button on the top-right corner of the page.

[3] In the pop-up window that appears, type "Java" in the search box.

[4] Select the "Java ... " option from the list of templates.

[5] Enter a name for your peoject.

[6] Click on the "Create Repl" button. 

[7] Replit will create a new repl project using the template that you have chosen.


If you plan to build and run Java application using Maven, add the Maven executable path in the Replit Run configuration file:



Modify the first two lines as follows:

#compile = "javac -classpath .:target/dependency/* -d . $(find . -type f -name '*.java')"

run = "mvn clean install && mvn exec:java -Dexec.mainClass='Main'"


Read More

Sunday, April 14, 2024

Multi-label Hate Speech and Abusive Language Detection


 .

Multi-label hate speech and abusive language detection is a task in natural language processing (NLP) that aims to identify and classify text snippets into multiple categories, such as hate speech, offensive language, and abusive content. 

The goal is to develop machine learning models that can automatically flag and filter out such content in various online platforms and applications.

.

Typical steps involved in building a multi-label hate speech and abusive language detection system:


[1] Dataset collection: Gather a large and diverse dataset of text samples that cover a range of hate speech and abusive language. The dataset should be labeled with multiple categories, indicating the presence or absence of each type of content.

[2] Data preprocessing: Clean the collected dataset by removing irrelevant information, normalizing text (e.g., lowercasing, removing punctuation), and handling special characters or symbols specific to the dataset.

[3] Feature extraction: Transform the preprocessed text into numerical representations that machine learning models can understand. Common techniques include bag-of-words, TF-IDF (Term Frequency-Inverse Document Frequency), word embeddings (e.g., Word2Vec, GloVe), or contextual embeddings (e.g., BERT, GPT). These representations capture the semantic and contextual information in the text.

[4] Model training: Select an appropriate machine learning algorithm or model architecture for multi-label classification. Popular choices include logistic regression, support vector machines (SVM), random forests, and deep learning models like convolutional neural networks (CNNs) or recurrent neural networks (RNNs). Train the model using the labeled dataset, optimizing the model's parameters to minimize the classification error.

[5] Model evaluation: Assess the performance of the trained model using appropriate evaluation metrics such as precision, recall, F1-score, or area under the receiver operating characteristic curve (AUROC). Cross-validation or holdout validation techniques can be used to obtain reliable performance estimates.

[6] Model fine-tuning: Iterate on the model by adjusting hyperparameters, experimenting with different architectures, or incorporating additional features to improve performance. This step involves a trial-and-error process to find the best configuration.

[7] Deployment: Once the model achieves satisfactory performance, integrate it into the target application or platform where hate speech and abusive language detection is required. The model can be used to automatically classify new, unseen text data.

.

It's important to note that hate speech and abusive language detection is a challenging task, and there are limitations to fully automated systems. Contextual understanding, sarcasm, and cultural nuances pose difficulties in accurately identifying these types of content. Therefore, combining automated detection with human moderation and continuous model updates is often necessary to achieve effective content filtration.
.

🤓


Read More