Разработка WEB-системы коммерческого доступа к сети Internet на базе операционной системы FreeBSD

Разработка программного обеспечения, которое позволяет посетителям и работникам организации при помощи портативного устройства или стационарного компьютера подключаться к сети Internet по средствам WEB интерфейса. Основные пользовательские требования.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 04.04.2014
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

2.5 Применение инструмента Cron

В операционных системах UNIX, FREEBSD и им подобных для запуска программ по параметрическому расписанию используется инструмент, называемый cron [9]. С помощи cron пользователь может запускать свои программы или скрипты по расписанию.

Cron работает с конфигурационным файлом, куда записывает расписание запуска программ. с нужными параметрами, данный конфигурационный файл просматривается постоянно cron'ом и запускаются те программы, время запуска которых подошло.

Редактируется конфигурационный файл с помощью шела SSH и программы crontab. Все программы запускаемые cron, выполняются от имени пользователя или владельца конфигурационного файла.

Инструкция по cron

Редактировать файл можно двумя способами.

Первый - редактирование через crontab.

_ Наберите в командной строке шела SSH команду crontab - e. После откроется редактор VI с содержимым вашего конфигурационного файла. Если это первый запуск crontab, то файл соответственно будет пустой.

_ Отредактируйте содержимое по инструкции описаной чуть ниже.

_ Выйдите из редактора и crontab автоматически даст команду демону cron выполнить проверку файла и проиндексировать содержимое.

Минус данного способа в том что редактор VI, в котором открывается файл, очень сложен в использовании и требует определенного опыта работ с данным редактором VI.

Второй способ - приказ демону перечитать уже готовый файл. Данный способ более проще.

_ Создайте с помощи SSH конфигурационный файл на сервере для этого используйте команду touch имя_файла.

_ Отредактируйте его в файловом менеджере, например FAR или TOTAL_CMD.

_ Далее Вам необходимо выполнить команду crontab имя_файла. При этом crontab даст команду демону cron выполнить и перечитать Ваш файл.

ВАЖНО ЗАПОМНИТЬ! Для того, чтобы любое изменение конфигурационного файла вступило в силу, Вам необходимо заново выполнять команду crontab имя_файла. Но при этом все предыдущие настройки crontab будут удалены и заменены на новые.

Кроме этого, не следует путать файл конфигурации crontab с тем файлом который Вы создаете сами. Так что только команда crontab имя_файла копирует содержимое Вашего файла в нужный файл crontab, и только после этого Ваш файл в больше не нужен.

Необходимость применения технических устройств и виртуального сервера обуславливает введение соответствующих абстрактных классов которые представлены на следующей диаграмме классов.

2.6 Диаграмма классов

Рис. 2.2 Диаграмма классов (Classes diagram)

На диаграмме классов показано, какими операциями и атрибутами обладают компоненты системы. Когда пользователь, обладающий данными для входа (Логин и пароль) подключается к системе, система запускает Web интерфейс с полями ввода данных и вывода информации о статусе подключения, запускает виртуальный сервер Ngynx, фаервол ipfw открывает или же перенаправляет порты, затем идет подключение к базе данных. База данных, в которой хранятся и генерируются логины и пароли, идет выдача IP адреса по dhcp. Если полученные данные являются верными, происходит запуск cron, который отвечает за создание и удаление правил работы, открывает допустимое время данному пользователю. Между классами User и Web существует отношение обобщение которое указывает на то, что класс Web наследует ключевые атрибуты и часть операций класса User. В свою очередь, класс ipfw может также наследовать свойства и оперцаии класса Web, хотя имеет свои собственные методы open port и reroting port, которые введены в этот класс для того чтобы открыть или перенаправить порты, между классом ipfw и базой данных устанавливается отношение зависимости подчеркивающее что информация о клиентах подключаемых в качестве пользователей находятся в зависимости от того был ли перенаправлен порт. Информация, существующая в базе данных, учитывается в функционировании класса cron который обладает операциями позволяющими создавать правила работы и удалять их, распределять трафик и вести его учет.

2.7 Последовательное получение доступа и проверка авторизации

Рис. 2.3 Диаграмма последовательности получения доступа и проверки данных авторизации

На этой диаграмме отображена последовательность получения доступа и авторизации. Пользователь открывает Web - страницу, фаервол открывает доступ к Web приложению, после этого перед пользователем открывается окно для ввода данных доступа к сети, пользователь вводит данные. Система после получения данных делает запрос к базе данных, база данных делает запрос к своим данным, в это же время модуль Cron проверят правило работы в системе, после обработки данных выдаётся сообщение, может ли пользователь работать или же нужно ввести новые данные.

2.8 Диаграмма размещения

Рис. 2.4 Диаграмма размещения компонентов системы

На диаграмме размещения обозначены компоненты входящие в сервер машину FreeBSD для того чтобы система могла работать:

Фаервол ipfw служит для того чтобы открыть или перенаправить порты для работы системы.

Web - интерфейс обладающий элементами ввода данных и вывода сообщений.

База данных - в ней храняться и создаются данные для доступа пользователей системы.

Модуль Cron создает правила для работы пользователя, определяет время и закрывает рабочую сессию.

2.9 Алгоритм подключения

Рис. 2.5 Алгоритм подключения пользователя к сети.

На этой диаграмме показан алгоритм подключения, когда пользователь делает запрос к системе и получает сведения о том может ли он работать или нет.

3. Разработка документации

3.1 Требования к программному и аппаратному обеспечению

Для реализации данной системы необходимо:

· Сервер был реализован на виртуальной машине VMware Workstation 8.0

· Объем жесткого диска: 20 ггб

· Оперативная память (ОЗУ): 512 мб (Память сервера регулируется в указанных границах.)

· Использование 1 ядра процессора

· Операционная система: FreeBSD 8.0

· Системные службы: Firewall IPfw, MySQL 5, NGinx, PHP 5.3, Framework Yii 1.1.12, Perl.

· Доступ к сети Internet.

· Устройство WiFi или HUB/Switch

3.3 Руководство программиста

Для того чтобы внести какие то изменения в систему нужно с помощью встроенного текстового редактора Vim отредактировать фаил rc. conf в котором хранятся все настройки

Рис.3.9 Графическое изображение настройки системы

swapfile="NO"# Set to name of swapfile if aux swapfile desired.

apm_enable="NO"# Set to YES to enable APM BIOS functions (or NO).

apmd_enable="NO"# Run apmd to handle APM event from userland.

apmd_flags=""# Flags to apmd (if enabled).

ddb_enable="NO"# Set to YES to load ddb scripts at boot.

ddb_config="/etc/ddb. conf"# ddb (8) config file.

devd_enable="YES" # Run devd, to trigger programs on device tree changes.

devd_flags=""# Additional flags for devd (8).

kldxref_enable="NO"# Build linker. hints files with kldxref (8).

kldxref_clobber="NO"# Overwrite old linker. hints at boot.

kldxref_module_path=""# Override kern. module_path. A '; '-delimited list.

powerd_enable="NO" # Run powerd to lower our power usage.

powerd_flags=""# Flags to powerd (if enabled).

tmpmfs="AUTO"# Set to YES to always create an mfs /tmp, NO to never

tmpsize="20m"# Size of mfs /tmp if created

tmpmfs_flags="-S"# Extra mdmfs options for the mfs /tmp

varmfs="AUTO"# Set to YES to always create an mfs /var, NO to never

varsize="32m"# Size of mfs /var if created

varmfs_flags="-S"# Extra mount options for the mfs /var

populate_var="AUTO"# Set to YES to always (re) populate /var, NO to never

cleanvar_enable="YES" # Clean the /var directory

local_startup="/usr/local/etc/rc. d" # startup script dirs.

script_name_sep=" "# Change if your startup scripts' names contain spaces

rc_conf_files="/etc/rc. conf /etc/rc. conf. local"

# ZFS support

zfs_enable="NO"# Set to YES to automatically mount ZFS file systems

gptboot_enable="YES"# GPT boot success/failure reporting.

# Experimental - test before enabling

gbde_autoattach_all="NO" # YES automatically mounts gbde devices from fstab

gbde_devices="NO" # Devices to automatically attach (list, or AUTO)

gbde_attach_attempts="3" # Number of times to attempt attaching gbde devices

gbde_lockdir="/etc"# Where to look for gbde lockfiles

# GELI disk encryption configuration.

geli_devices=""# List of devices to automatically attach in addition to

# GELI devices listed in /etc/fstab.

geli_tries=""# Number of times to attempt attaching geli device.

# If empty, kern. geom. eli. tries will be used.

geli_default_flags=""# Default flags for geli (8).

geli_autodetach="YES"# Automatically detach on last close.

# Providers are marked as such when all file systems are

# mounted.

# Example use.

#geli_devices="da1 mirror/home"

#geli_da1_flags="-p - k /etc/geli/da1. keys"

#geli_da1_autodetach="NO"

#geli_mirror_home_flags="-k /etc/geli/home. keys"

geli_swap_flags="-e aes - l 256 - s 4096 - d"# Options for GELI-encrypted

# swap partitions.

root_rw_mount="YES"# Set to NO to inhibit remounting root read-write.

fsck_y_enable="YES"# Set to YES to do fsck - y if the initial preen fails.

fsck_y_flags=""# Additional flags for fsck - y

background_fsck="YES"# Attempt to run fsck in the background where possible.

background_fsck_delay="60" # Time to wait (seconds) before starting the fsck.

netfs_types="nfs: NFS nfs4: NFS4 smbfs: SMB portalfs: PORTAL nwfs: NWFS" # Net filesystems.

extra_netfs_types="NO"# List of network extra filesystem types for delayed

# mount at startup (or NO).

#############################################################

### Network configuration sub-section ######################

#############################################################

### Basic network and firewall/security options: ###

hostname="hotspot"# Set this!

hostid_enable="YES"# Set host UUID.

hostid_file="/etc/hostid"# File with hostuuid.

nisdomainname="NO"# Set to NIS domain if using NIS (or NO).

dhclient_program="/sbin/dhclient"# Path to dhcp client program.

dhclient_flags=""# Extra flags to pass to dhcp client.

#dhclient_flags_fxp0=""# Extra dhclient flags for fxp0 only

background_dhclient="NO"# Start dhcp client in the background.

#background_dhclient_fxp0="YES"# Start dhcp client on fxp0 in the background.

synchronous_dhclient="NO"# Start dhclient directly on configured

# interfaces during startup.

defaultroute_delay="30"# Time to wait for a default route on a DHCP interface.

wpa_supplicant_program="/usr/sbin/wpa_supplicant"

wpa_supplicant_flags="-s"# Extra flags to pass to wpa_supplicant

wpa_supplicant_conf_file="/etc/wpa_supplicant. conf"

#

firewall_enable="NO"# Set to YES to enable firewall functionality

firewall_script="/etc/rc. firewall" # Which script to run to set up the firewall

firewall_type="UNKNOWN"# Firewall type (see /etc/rc. firewall)

firewall_quiet="NO"# Set to YES to suppress rule display

firewall_logging="NO"# Set to YES to enable events logging

firewall_flags=""# Flags passed to ipfw when type is a file

firewall_coscripts=""# List of executables/scripts to run after

# firewall starts/stops

firewall_client_net="192.0.2.0/24" # IPv4 Network address for "client"

# firewall.

#firewall_client_net_ipv6="2001: db8: 2: 1:: /64" # IPv6 network prefix for

# "client" firewall.

firewall_simple_iif="ed1"# Inside network interface for "simple"

# firewall.

firewall_simple_inet="192.0.2.16/28" # Inside network address for "simple"

# firewall.

firewall_simple_oif="ed0"# Outside network interface for "simple"

# firewall.

firewall_simple_onet="192.0.2.0/28" # Outside network address for "simple"

# firewall.

#firewall_simple_iif_ipv6="ed1"# Inside IPv6 network interface for "simple"

# firewall.

#firewall_simple_inet_ipv6="2001: db8: 2: 800:: /56" # Inside IPv6 network prefix

# for "simple" firewall.

#firewall_simple_oif_ipv6="ed0"# Outside IPv6 network interface for "simple"

# firewall.

#firewall_simple_onet_ipv6="2001: db8: 2: 0:: /56" # Outside IPv6 network prefix

# for "simple" firewall.

firewall_myservices=""# List of TCP ports on which this host

# offers services for "workstation" firewall.

firewall_allowservices=""# List of IPs which have access to

# $firewall_myservices for "workstation"

# firewall.

firewall_trusted=""# List of IPs which have full access to this

# host for "workstation" firewall.

firewall_logdeny="NO"# Set to YES to log default denied incoming

# packets for "workstation" firewall.

firewall_nologports="135-139,445 1026,1027 1433,1434" # List of TCP/UDP ports

# for which denied incoming packets are not

# logged for "workstation" firewall.

firewall_nat_enable="NO"# Enable kernel NAT (if firewall_enable == YES)

firewall_nat_interface=""# Public interface or IPaddress to use

firewall_nat_flags=""# Additional configuration parameters

dummynet_enable="NO"# Load the dummynet (4) module

ip_portrange_first="NO"# Set first dynamically allocated port

ip_portrange_last="NO"# Set last dynamically allocated port

ike_enable="NO"# Enable IKE daemon (usually racoon or isakmpd)

ike_program="/usr/local/sbin/isakmpd"# Path to IKE daemon

ike_flags=""# Additional flags for IKE daemon

ipsec_enable="NO"# Set to YES to run setkey on ipsec_file

ipsec_file="/etc/ipsec. conf"# Name of config file for setkey

natd_program="/sbin/natd"# path to natd, if you want a different one.

natd_enable="NO"# Enable natd (if firewall_enable == YES).

natd_interface=""# Public interface or IPaddress to use.

natd_flags=""# Additional flags for natd.

ipfilter_enable="NO"# Set to YES to enable ipfilter functionality

ipfilter_program="/sbin/ipf"# where the ipfilter program lives

ipfilter_rules="/etc/ipf.rules"# rules definition file for ipfilter, see

# /usr/src/contrib/ipfilter/rules for examples

ipfilter_flags=""# additional flags for ipfilter

ipnat_enable="NO"# Set to YES to enable ipnat functionality

ipnat_program="/sbin/ipnat"# where the ipnat program lives

ipnat_rules="/etc/ipnat.rules"# rules definition file for ipnat

ipnat_flags=""# additional flags for ipnat

ipmon_enable="NO"# Set to YES for ipmon; needs ipfilter or ipnat

ipmon_program="/sbin/ipmon"# where the ipfilter monitor program lives

ipmon_flags="-Ds"# typically "-Ds" or "-D /var/log/ipflog"

ipfs_enable="NO"# Set to YES to enable saving and restoring

# of state tables at shutdown and boot

ipfs_program="/sbin/ipfs"# where the ipfs program lives

ipfs_flags=""# additional flags for ipfs

pf_enable="NO"# Set to YES to enable packet filter (pf)

pf_rules="/etc/pf. conf"# rules definition file for pf

pf_program="/sbin/pfctl"# where the pfctl program lives

pf_flags=""# additional flags for pfctl

pflog_enable="NO"# Set to YES to enable packet filter logging

pflog_logfile="/var/log/pflog"# where pflogd should store the logfile

pflog_program="/sbin/pflogd"# where the pflogd program lives

pflog_flags=""# additional flags for pflogd

ftpproxy_enable="NO"# Set to YES to enable ftp-proxy (8) for pf

ftpproxy_flags=""# additional flags for ftp-proxy (8)

pfsync_enable="NO"# Expose pf state to other hosts for syncing

pfsync_syncdev=""# Interface for pfsync to work through

pfsync_syncpeer=""# IP address of pfsync peer host

pfsync_ifconfig=""# Additional options to ifconfig (8) for pfsync

tcp_extensions="YES"# Set to NO to turn off RFC1323 extensions.

log_in_vain="0"# >=1 to log connects to ports w/o listeners.

tcp_keepalive="YES"# Enable stale TCP connection timeout (or NO).

tcp_drop_synfin="NO"# Set to YES to drop TCP packets with SYN+FIN

# NOTE: this violates the TCP specification

icmp_drop_redirect="NO" # Set to YES to ignore ICMP REDIRECT packets

icmp_log_redirect="NO"# Set to YES to log ICMP REDIRECT packets

network_interfaces="auto"# List of network interfaces (or "auto").

cloned_interfaces=""# List of cloned network interfaces to create.

#cloned_interfaces="gif0 gif1 gif2 gif3" # Pre-cloning GENERIC config.

ifconfig_lo0="inet 127.0.0.1"# default loopback device configuration.

ifconfig_em0="DHCP"

ifconfig_em1="inet 192.168.100.1 netmask 255.255.255.0"

#ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry.

#ifconfig_ed0_ipx="ipx 0x00010010"# Sample IPX address family entry.

#ifconfig_fxp0_name="net0"# Change interface name from fxp0 to net0.

#vlans_fxp0="101 vlan0"# vlan (4) interfaces for fxp0 device

#create_args_vlan0="vlan 102"# vlan tag for vlan0 device

#wlans_ath0="wlan0"# wlan (4) interfaces for ath0 device

#wlandebug_wlan0="scan+auth+assoc"# Set debug flags with wlanddebug (8)

#ipv4_addrs_fxp0="192.168.0.1/24 192.168.1.1-5/28" # example IPv4 address entry.

#

#autobridge_interfaces="bridge0"# List of bridges to check

#autobridge_bridge0="tap* vlan0"# Interface glob to automatically add to the bridge

#

# If you have any sppp (4) interfaces above, you might also want to set

# the following parameters. Refer to spppcontrol (8) for their meaning.

sppp_interfaces=""# List of sppp interfaces.

#sppp_interfaces=".0"# example: sppp over.

#spppconfig_.0="authproto=chap myauthname=foo myauthsecret='top secret' hisauthname=some-gw hisauthsecret='another secret'"

gif_interfaces=""# List of GIF tunnels.

#gif_interfaces="gif0 gif1"# Examples typically for a router.

# Choose correct tunnel addrs.

#gifconfig_gif0="10.1.1.1 10.1.2.1"# Examples typically for a router.

#gifconfig_gif1="10.1.1.2 10.1.2.2"# Examples typically for a router.

fec_interfaces=""# List of Fast EtherChannels.

#fec_interfaces="fec0 fec1"

#fecconfig_fec0="fxp0 dc0"# Examples typically for two NICs

#fecconfig_fec1="em0 em1 bge0 bge1"# Examples typically for four NICs

# User ppp configuration.

ppp_enable="NO"# Start user-ppp (or NO).

ppp_program="/usr/sbin/ppp"# Path to user-ppp program.

ppp_mode="auto"# Choice of "auto", "ddial", "direct" or "dedicated".

# For details see man page for ppp (8). Default is auto.

ppp_nat="YES"# Use PPP's internal network address translation or NO.

ppp_profile="papchap"# Which profile to use from /etc/ppp/ppp. conf.

ppp_user="root"# Which user to run ppp as

# Start multiple instances of ppp at boot time

#ppp_profile="profile1 profile2 profile3"# Which profiles to use

#ppp_profile1_mode="ddial"# Override ppp mode for profile1

#ppp_profile2_nat="NO"# Override nat mode for profile2

# profile3 uses default ppp_mode and ppp_nat

### Network daemon (miscellaneous) ###

hostapd_enable="NO"# Run hostap daemon.

syslogd_enable="YES"# Run syslog daemon (or NO).

syslogd_program="/usr/sbin/syslogd" # path to syslogd, if you want a different one.

syslogd_flags="-s"# Flags to syslogd (if enabled).

inetd_enable="NO"# Run the network daemon dispatcher (YES/NO).

inetd_program="/usr/sbin/inetd"# path to inetd, if you want a different one.

inetd_flags="-wW - C 60"# Optional flags to inetd

hastd_enable="NO"# Run the HAST daemon (YES/NO).

hastd_program="/sbin/hastd"# path to hastd, if you want a different one.

hastd_flags=""# Optional flags to hastd.

#

# named. It may be possible to run named in a sandbox, man security for

# details.

#

named_enable="YES"# Run named, the DNS server (or NO).

named_program="/usr/sbin/named" # Path to named, if you want a different one.

named_conf="/etc/namedb/named. conf" # Path to the configuration file

#named_flags=""# Use this for flags OTHER than - u and - c

named_pidfile="/var/run/named/pid" # Must set this in named. conf as well

named_uid="bind" # User to run named as

named_chrootdir="/var/named"# Chroot directory (or "" not to auto-chroot it)

named_chroot_autoupdate="YES"# Automatically install/update chrooted

# components of named. See /etc/rc. d/named.

named_symlink_enable="YES"# Symlink the chrooted pid file

named_wait="NO" # Wait for working name service before exiting

named_wait_host="localhost" # Hostname to check if named_wait is enabled

named_auto_forward="NO" # Set up forwarders from /etc/resolv. conf

named_auto_forward_only="NO" # Do "forward only" instead of "forward first"

#

# kerberos. Do not run the admin daemons on slave servers

#

kerberos5_server_enable="NO"# Run a kerberos 5 master server (or NO).

kerberos5_server="/usr/libexec/kdc"# path to kerberos 5 KDC

kerberos5_server_flags="--detach"# Additional flags to the kerberos 5 server

kadmind5_server_enable="NO"# Run kadmind (or NO)

kadmind5_server="/usr/libexec/kadmind"# path to kerberos 5 admin daemon

kpasswdd_server_enable="NO"# Run kpasswdd (or NO)

kpasswdd_server="/usr/libexec/kpasswdd"# path to kerberos 5 passwd daemon

gssd_enable="NO"# Run the gssd daemon (or NO).

gssd_flags=""# Flags for gssd.

rwhod_enable="NO"# Run the rwho daemon (or NO).

rwhod_flags=""# Flags for rwhod

rarpd_enable="NO"# Run rarpd (or NO).

rarpd_flags="-a"# Flags to rarpd.

bootparamd_enable="NO"# Run bootparamd (or NO).

bootparamd_flags=""# Flags to bootparamd

pppoed_enable="NO"# Run the PPP over Ethernet daemon.

pppoed_provider="*"# Provider and ppp (8) config file entry.

pppoed_flags="-P /var/run/pppoed. pid"# Flags to pppoed (if enabled).

pppoed_interface="fxp0"# The interface that pppoed runs on.

sshd_enable="YES"# Enable sshd

sshd_program="/usr/sbin/sshd"# path to sshd, if you want a different one.

sshd_flags=""# Additional flags for sshd.

ftpd_enable="NO"# Enable stand-alone ftpd.

ftpd_program="/usr/libexec/ftpd" # Path to ftpd, if you want a different one.

ftpd_flags=""# Additional flags to stand-alone ftpd.

### Network daemon (NFS): All need rpcbind_enable="YES" ###

amd_enable="NO"# Run amd service with $amd_flags (or NO).

amd_program="/usr/sbin/amd"# path to amd, if you want a different one.

amd_flags="-a /. amd_mnt - l syslog /host /etc/amd. map /net /etc/amd. map"

amd_map_program="NO"# Can be set to "ypcat - k amd. master"

nfs_client_enable="NO"# This host is an NFS client (or NO).

nfs_access_cache="60"# Client cache timeout in seconds

nfs_server_enable="NO"# This host is an NFS server (or NO).

nfs_server_flags="-u - t - n 4"# Flags to nfsd (if enabled).

mountd_enable="NO"# Run mountd (or NO).

mountd_flags="-r"# Flags to mountd (if NFS server enabled).

weak_mountd_authentication="NO"# Allow non-root mount requests to be served.

nfs_reserved_port_only="NO"# Provide NFS only on secure port (or NO).

nfs_bufpackets=""# bufspace (in packets) for client

rpc_lockd_enable="NO"# Run NFS rpc. lockd needed for client/server.

rpc_lockd_flags=""# Flags to rpc. lockd (if enabled).

rpc_statd_enable="NO"# Run NFS rpc. statd needed for client/server.

rpc_statd_flags=""# Flags to rpc. statd (if enabled).

rpcbind_enable="NO"# Run the portmapper service (YES/NO).

rpcbind_program="/usr/sbin/rpcbind"# path to rpcbind, if you want a different one.

rpcbind_flags=""# Flags to rpcbind (if enabled).

rpc_ypupdated_enable="NO"# Run if NIS master and SecureRPC (or NO).

keyserv_enable="NO"# Run the SecureRPC keyserver (or NO).

keyserv_flags=""# Flags to keyserv (if enabled).

nfsv4_server_enable="NO"# Enable support for NFSv4

nfscbd_enable="NO"# NFSv4 client side callback daemon

nfscbd_flags=""# Flags for nfscbd

nfsuserd_enable="NO"# NFSv4 user/group name mapping daemon

nfsuserd_flags=""# Flags for nfsuserd

### Network Time Services options: ###

timed_enable="NO"# Run the time daemon (or NO).

timed_flags=""# Flags to timed (if enabled).

ntpdate_enable="NO"# Run ntpdate to sync time on boot (or NO).

ntpdate_program="/usr/sbin/ntpdate"# path to ntpdate, if you want a different one.

ntpdate_flags="-b"# Flags to ntpdate (if enabled).

ntpdate_config="/etc/ntp. conf"# ntpdate (8) configuration file

ntpdate_hosts=""# Whitespace-separated list of ntpdate (8) servers.

ntpd_enable="NO"# Run ntpd Network Time Protocol (or NO).

ntpd_program="/usr/sbin/ntpd"# path to ntpd, if you want a different one.

ntpd_config="/etc/ntp. conf"# ntpd (8) configuration file

ntpd_sync_on_start="NO"# Sync time on ntpd startup, even if offset is high

ntpd_flags="-p /var/run/ntpd. pid - f /var/db/ntpd. drift"

# Flags to ntpd (if enabled).

# Network Information Services (NIS) options: All need rpcbind_enable="YES" ###

nis_client_enable="NO"# We're an NIS client (or NO).

nis_client_flags=""# Flags to ypbind (if enabled).

nis_ypset_enable="NO"# Run ypset at boot time (or NO).

nis_ypset_flags=""# Flags to ypset (if enabled).

nis_server_enable="NO"# We're an NIS server (or NO).

nis_server_flags=""# Flags to ypserv (if enabled).

nis_ypxfrd_enable="NO"# Run rpc. ypxfrd at boot time (or NO).

nis_ypxfrd_flags=""# Flags to rpc. ypxfrd (if enabled).

nis_yppasswdd_enable="NO"# Run rpc. yppasswdd at boot time (or NO).

nis_yppasswdd_flags=""# Flags to rpc. yppasswdd (if enabled).

### SNMP daemon ###

# Be sure to understand the security implications of running SNMP v1/v2

# in your network.

bsnmpd_enable="NO"# Run the SNMP daemon (or NO).

bsnmpd_flags=""# Flags for bsnmpd.

### Network routing options: ###

defaultrouter="NO"# Set to default gateway (or NO).

static_arp_pairs=""# Set to static ARP list (or leave empty).

static_routes=""# Set to static route list (or leave empty).

natm_static_routes=""# Set to static route list for NATM (or leave empty).

gateway_enable="YES"# Set to YES if this host will be a gateway.

router_enable="NO"# Set to YES to enable a routing daemon.

router="/sbin/routed"# Name of routing daemon to use if enabled.

router_flags="-q"# Flags for routing daemon.

mrouted_enable="NO"# Do IPv4 multicast routing.

mrouted_program="/usr/local/sbin/mrouted"# Name of IPv4 multicast

# routing daemon. You need to

# install it from package or

# port.

mrouted_flags=""# Flags for multicast routing daemon.

ipxgateway_enable="NO"# Set to YES to enable IPX routing.

ipxrouted_enable="NO"# Set to YES to run the IPX routing daemon.

ipxrouted_flags=""# Flags for IPX routing daemon.

arpproxy_all="NO"# replaces obsolete kernel option ARP_PROXYALL.

forward_sourceroute="NO"# do source routing (only if gateway_enable is set to "YES")

accept_sourceroute="NO"# accept source routed packets to us

### ATM interface options: ###

atm_enable="NO"# Configure ATM interfaces (or NO).

#atm_netif_hea0="atm 1"# Network interfaces for physical interface.

#atm_sigmgr_hea0="uni31"# Signalling manager for physical interface.

#atm_prefix_hea0="ILMI"# NSAP prefix (UNI interfaces only) (or ILMI).

#atm_macaddr_hea0="NO"# Override physical MAC address (or NO).

#atm_arpserver_atm0="0x47.0005.80.999999.9999.9999.9999.999999999999.00" # ATMARP server address (or local).

#atm_scsparp_atm0="NO"# Run SCSP/ATMARP on network interface (or NO).

atm_pvcs=""# Set to PVC list (or leave empty).

atm_arps=""# Set to permanent ARP list (or leave empty).

### Bluetooth ###

hcsecd_enable="NO"# Enable hcsecd (8) (or NO)

hcsecd_config="/etc/bluetooth/hcsecd. conf" # hcsecd (8) configuration file

sdpd_enable="NO"# Enable sdpd (8) (or NO)

sdpd_control="/var/run/sdp"# sdpd (8) control socket

sdpd_groupname="nobody"# set spdp (8) user/group to run as after

sdpd_username="nobody"# it initializes

bthidd_enable="NO"# Enable bthidd (8) (or NO)

bthidd_config="/etc/bluetooth/bthidd. conf" # bthidd (8) configuration file

bthidd_hids="/var/db/bthidd. hids" # bthidd (8) known HID devices file

rfcomm_pppd_server_enable="NO"# Enable rfcomm_pppd (8) in server mode (or NO)

rfcomm_pppd_server_profile="one two"# Profile to use from /etc/ppp/ppp. conf

#

#rfcomm_pppd_server_one_bdaddr=""# Override local bdaddr for 'one'

rfcomm_pppd_server_one_channel="1"# Override local channel for 'one'

#rfcomm_pppd_server_one_register_sp="NO"# Override SP and DUN register

#rfcomm_pppd_server_one_register_dun="NO"# for 'one'

#

#rfcomm_pppd_server_two_bdaddr=""# Override local bdaddr for 'two'

rfcomm_pppd_server_two_channel="3"# Override local channel for 'two'

#rfcomm_pppd_server_two_register_sp="NO"# Override SP and DUN register

#rfcomm_pppd_server_two_register_dun="NO"# for 'two'

ubthidhci_enable="NO"# Switch an USB BT controller present on

#ubthidhci_busnum="3"# bus 3 and addr 2 from HID mode to HCI mode.

#ubthidhci_addr="2"# Check usbconfig list to find the correct

# numbers for your system.

### Miscellaneous network options: ###

icmp_bmcastecho="NO"# respond to broadcast ping packets

### IPv6 options: ###

ipv6_enable="NO"# Set to YES to set up for IPv6.

ipv6_network_interfaces="auto"# List of network interfaces (or "auto").

ipv6_defaultrouter="NO"# Set to IPv6 default gateway (or NO).

#ipv6_defaultrouter="2002: c058: 6301:: "# Use this for 6to4 (RFC 3068)

ipv6_static_routes=""# Set to static route list (or leave empty).

#ipv6_static_routes="xxx"# An example to set fec0: 0000: 0000: 0006:: /64

# route toward loopback interface.

#ipv6_route_xxx="fec0: 0000: 0000: 0006:: - prefixlen 64:: 1"

ipv6_gateway_enable="NO"# Set to YES if this host will be a gateway.

ipv6_router_enable="NO"# Set to YES to enable an IPv6 routing daemon.

ipv6_router="/usr/sbin/route6d"# Name of IPv6 routing daemon.

ipv6_router_flags=""# Flags to IPv6 routing daemon.

#ipv6_router_flags="-l"# Example for route6d with only IPv6 site local

# addrs.

#ipv6_router_flags="-q"# If you want to run a routing daemon on an end

# node, you should stop advertisement.

#ipv6_network_interfaces="ed0 ep0"# Examples for router

# or static configuration for end node.

# Choose correct prefix value.

#ipv6_prefix_ed0="fec0: 0000: 0000: 0001 fec0: 0000: 0000: 0002" # Examples for rtr.

#ipv6_prefix_ep0="fec0: 0000: 0000: 0003 fec0: 0000: 0000: 0004" # Examples for rtr.

#ipv6_ifconfig_ed0="fec0: 0: 0: 5:: 1 prefixlen 64"# Sample manual assign entry

#ipv6_ifconfig_ed0_alias0="fec0: 0: 0: 5:: 2 prefixlen 64" # Sample alias entry.

ipv6_default_interface="NO"# Default output interface for scoped addrs.

# Now this works only for IPv6 link local

# multicast addrs.

rtsol_flags=""# Flags to IPv6 router solicitation.

rtsold_enable="NO"# Set to YES to enable an IPv6 router

# solicitation daemon.

rtsold_flags="-a"# Flags to an IPv6 router solicitation

# daemon.

rtadvd_enable="NO"# Set to YES to enable an IPv6 router

# advertisement daemon. If set to YES,

# this router becomes a possible candidate

# IPv6 default router for local subnets.

rtadvd_interfaces=""# Interfaces rtadvd sends RA packets.

mroute6d_enable="NO"# Do IPv6 multicast routing.

mroute6d_program="/usr/local/sbin/pim6dd"# Name of IPv6 multicast

# routing daemon. You need to

# install it from package or

# port.

mroute6d_flags=""# Flags to IPv6 multicast routing daemon.

stf_interface_ipv4addr=""# Local IPv4 addr for 6to4 IPv6 over IPv4

# tunneling interface. Specify this entry

# to enable 6to4 interface.

stf_interface_ipv4plen="0"# Prefix length for 6to4 IPv4 addr,

# to limit peer addr range. Effective value

# is 0-31.

stf_interface_ipv6_ifid="0: 0: 0: 1"# IPv6 interface id for stf0.

# If you like, you can set "AUTO" for this.

stf_interface_ipv6_slaid="0000"# IPv6 Site Level Aggregator for stf0

ipv6_faith_prefix="NO"# Set faith prefix to enable a FAITH

# IPv6-to-IPv4 TCP translator. You also need

# faithd (8) setup.

ipv6_ipv4mapping="NO"# Set to "YES" to enable IPv4 mapped IPv6 addr

# communication. (like:: ffff: a. b. c. d)

ipv6_ipfilter_rules="/etc/ipf6.rules"# rules definition file for ipfilter,

# see /usr/src/contrib/ipfilter/rules

# for examples

ip6addrctl_enable="YES"# Set to YES to enable default address selection

ip6addrctl_verbose="NO"# Set to YES to enable verbose configuration messages

#############################################################

### System console options #################################

#############################################################

keyboard=""# keyboard device to use (default /dev/kbd0).

keymap="NO"# keymap in /usr/share/syscons/keymaps/* (or NO).

keyrate="NO"# keyboard rate to: slow, normal, fast (or NO).

keybell="NO" # See kbdcontrol (1) for options. Use "off" to disable.

keychange="NO"# function keys default values (or NO).

cursor="NO"# cursor type {normal|blink|destructive} (or NO).

scrnmap="NO"# screen map in /usr/share/syscons/scrnmaps/* (or NO).

font8x16="NO"# font 8x16 from /usr/share/syscons/fonts/* (or NO).

font8x14="NO"# font 8x14 from /usr/share/syscons/fonts/* (or NO).

font8x8="NO"# font 8x8 from /usr/share/syscons/fonts/* (or NO).

blanktime="300"# blank time (in seconds) or "NO" to turn it off.

saver="NO"# screen saver: Uses /boot/kernel/${saver}_saver. ko

moused_nondefault_enable="YES" # Treat non-default mice as enabled unless

# specifically overriden in rc. conf (5).

moused_enable="NO"# Run the mouse daemon.

moused_type="auto"# See man page for rc. conf (5) for available settings.

moused_port="/dev/psm0"# Set to your mouse port.

moused_flags=""# Any additional flags to moused.

mousechar_start="NO"# if 0xd0-0xd3 default range is occupied in your

# language code table, specify alternative range

# start like mousechar_start=3, see vidcontrol (1)

allscreens_flags=""# Set this vidcontrol mode for all virtual screens

allscreens_kbdflags=""# Set this kbdcontrol mode for all virtual screens

#############################################################

### Mail Transfer Agent (MTA) options ######################

#############################################################

mta_start_script="/etc/rc. sendmail"

# Script to start your chosen MTA, called by /etc/rc.

# Settings for /etc/rc. sendmail and /etc/rc. d/sendmail:

sendmail_enable="NO"# Run the sendmail inbound daemon (YES/NO).

sendmail_pidfile="/var/run/sendmail. pid"# sendmail pid file

sendmail_procname="/usr/sbin/sendmail"# sendmail process name

sendmail_flags="-L sm-mta - bd - q30m" # Flags to sendmail (as a server)

sendmail_submit_enable="YES"# Start a localhost-only MTA for mail submission

sendmail_submit_flags="-L sm-mta - bd - q30m - ODaemonPortOptions=Addr=localhost"

# Flags for localhost-only MTA

sendmail_outbound_enable="YES"# Dequeue stuck mail (YES/NO).

sendmail_outbound_flags="-L sm-queue - q30m" # Flags to sendmail (outbound only)

sendmail_msp_queue_enable="YES"# Dequeue stuck clientmqueue mail (YES/NO).

sendmail_msp_queue_flags="-L sm-msp-queue - Ac - q30m"

# Flags for sendmail_msp_queue daemon.

sendmail_rebuild_aliases="NO"# Run newaliases if necessary (YES/NO).

#############################################################

### Miscellaneous administrative options ###################

#############################################################

auditd_enable="NO"# Run the audit daemon.

auditd_program="/usr/sbin/auditd"# Path to the audit daemon.

auditd_flags=""# Which options to pass to the audit daemon.

cron_enable="YES"# Run the periodic job daemon.

cron_program="/usr/sbin/cron"# Which cron executable to run (if enabled).

cron_dst="YES"# Handle DST transitions intelligently (YES/NO)

cron_flags=""# Which options to pass to the cron daemon.

lpd_enable="NO"# Run the line printer daemon.

lpd_program="/usr/sbin/lpd"# path to lpd, if you want a different one.

lpd_flags=""# Flags to lpd (if enabled).

nscd_enable="NO"# Run the nsswitch caching daemon.

chkprintcap_enable="NO"# Run chkprintcap (8) before running lpd.

chkprintcap_flags="-d"# Create missing directories by default.

dumpdev="NO"# Device to crashdump to (device name, AUTO, or NO).

dumpdir="/var/crash"# Directory where crash dumps are to be stored

savecore_flags=""# Used if dumpdev is enabled above, and present.

crashinfo_enable="YES"# Automatically generate crash dump summary.

crashinfo_program="/usr/sbin/crashinfo"# Script to generate crash dump summary.

quota_enable="NO"# turn on quotas on startup (or NO).

check_quotas="YES"# Check quotas on startup (or NO).

quotaon_flags="-a"# Turn quotas on for all file systems (if enabled)

quotaoff_flags="-a"# Turn quotas off for all file systems at shutdown

quotacheck_flags="-a"# Check all file system quotas (if enabled)

accounting_enable="NO"# Turn on process accounting (or NO).

ibcs2_enable="NO"# Ibcs2 (SCO) emulation loaded at startup (or NO).

ibcs2_loaders="coff"# List of additional Ibcs2 loaders (or NO).

# Emulation/compatibility services provided by /etc/rc. d/abi

sysvipc_enable="NO"# Load System V IPC primitives at startup (or NO).

linux_enable="NO"# Linux binary compatibility loaded at startup (or NO).

svr4_enable="NO"# SysVR4 emulation loaded at startup (or NO).

clear_tmp_enable="NO"# Clear /tmp at startup.

clear_tmp_X="YES" # Clear and recreate X11-related directories in /tmp

ldconfig_insecure="NO"# Set to YES to disable ldconfig security checks

ldconfig_paths="/usr/lib/compat /usr/local/lib /usr/local/lib/compat/pkg"

# shared library search paths

ldconfig32_paths="/usr/lib32" # 32-bit compatibility shared library search paths

ldconfig_paths_aout="/usr/lib/compat/aout /usr/local/lib/aout"

# a. out shared library search paths

ldconfig_local_dirs="/usr/local/libdata/ldconfig"

# Local directories with ldconfig configuration files.

ldconfig_local32_dirs="/usr/local/libdata/ldconfig32"

# Local directories with 32-bit compatibility ldconfig

# configuration files.

kern_securelevel_enable="NO"# kernel security level (see security (7))

kern_securelevel="-1"# range: - 1.3; `-1' is the most insecure

# Note that setting securelevel to 0 will result

# in the system booting with securelevel set to 1, as

# init (8) will raise the level when rc (8) completes.

update_motd="YES"# update version info in /etc/motd (or NO)

entropy_file="/entropy"# Set to NO to disable caching entropy through reboots.

# /var/db/entropy-file is preferred if / is not avail.

entropy_dir="/var/db/entropy" # Set to NO to disable caching entropy via cron.

entropy_save_sz="2048"# Size of the entropy cache files.

entropy_save_num="8"# Number of entropy cache files to save.

harvest_interrupt="YES"# Entropy device harvests interrupt randomness

harvest_ethernet="YES"# Entropy device harvests ethernet randomness

harvest_p_to_p="YES"# Entropy device harvests point-to-point randomness

dmesg_enable="YES"# Save dmesg (8) to /var/run/dmesg. boot

watchdogd_enable="NO"# Start the software watchdog daemon

watchdogd_flags=""# Flags to watchdogd (if enabled)

devfs_rulesets="/etc/defaults/devfs.rules /etc/devfs.rules" # Files containing

# devfs (8) rules.

devfs_system_ruleset=""# The name (NOT number) of a ruleset to apply to /dev

devfs_set_rulesets=""# A list of /mount/dev=ruleset_name settings to

# apply (must be mounted already, i. e. fstab (5))

performance_cx_lowest="HIGH"# Online CPU idle state

performance_cpu_freq="NONE"# Online CPU frequency

economy_cx_lowest="HIGH"# Offline CPU idle state

economy_cpu_freq="NONE"# Offline CPU frequency

virecover_enable="YES"# Perform housekeeping for the vi (1) editor

ugidfw_enable="NO"# Load mac_bsdextended (4) rules on boot

bsdextended_script="/etc/rc. bsdextended"# Default mac_bsdextended (4)

# ruleset file.

newsyslog_enable="YES"# Run newsyslog at startup.

newsyslog_flags="-CN"# Newsyslog flags to create marked files

mixer_enable="YES"# Run the sound mixer.

#############################################################

### Jail Configuration #######################################

#############################################################

jail_enable="NO"# Set to NO to disable starting of any jails

jail_list=""# Space separated list of names of jails

jail_set_hostname_allow="YES" # Allow root user in a jail to change its hostname

jail_socket_unixiproute_only="YES" # Route only TCP/IP within a jail

jail_sysvipc_allow="NO"# Allow SystemV IPC use from within a jail

#

# To use rc's built-in jail infrastructure create entries for

# each jail, specified in jail_list, with the following variables.

# NOTES:

# - replace 'example' with the jail's name.

# - except rootdir, hostname, ip and the _multi<n> addresses,

# all of the following variables may be made global jail variables

# if you don't specify a jail name (ie. jail_interface, jail_devfs_ruleset).

#

#jail_example_rootdir="/usr/jail/default"# Jail's root directory

#jail_example_hostname="default. domain.com"# Jail's hostname

#jail_example_interface=""# Jail's interface variable to create IP aliases on

#jail_example_fib="0"# Routing table for setfib (1)

#jail_example_ip="192.0.2.10, 2001: db8:: 17"# Jail's primary IPv4 and IPv6 address

#jail_example_ip_multi0="2001: db8:: 10"# and another IPv6 address

#jail_example_exec_start="/bin/sh /etc/rc"# command to execute in jail for starting

#jail_example_exec_afterstart0="/bin/sh command"# command to execute after the one for

# starting the jail. More than one can be

# specified using a trailing number

#jail_example_exec_stop="/bin/sh /etc/rc. shutdown"# command to execute in jail for stopping

#jail_example_devfs_enable="NO"# mount devfs in the jail

#jail_example_devfs_ruleset="ruleset_name"# devfs ruleset to apply to jail -

# usually you want "devfsrules_jail".

#jail_example_fdescfs_enable="NO"# mount fdescfs in the jail

#jail_example_procfs_enable="NO"# mount procfs in jail

#jail_example_mount_enable="NO"# mount/umount jail's fs

#jail_example_fstab=""# fstab (5) for mount/umount

#jail_example_flags="-l - U root"# flags for jail (8)

#############################################################

### Define source_rc_confs, the mechanism used by /etc/rc. * ##

### scripts to source rc_conf_files overrides safely. ##

#############################################################

if [-z "${source_rc_confs_defined}"]; then

source_rc_confs_defined=yes

source_rc_confs () {

local i sourced_files

for i in ${rc_conf_files}; do

case ${sourced_files} in

*: $i: *)

;;

*)

sourced_files="${sourced_files}: $i: "

if [-r $i]; then

. $i

fi

;;

esac

done

}

fi

nginx_enable="YES"

php_fpm_enable="YES"

mysql_enable="YES"

3.4 Руководство пользователя

Для того чтобы подключиться к сети нам нужно будет любое устройство с LAN выходом или WiFi адаптером, будь это компьютер, ноутбук, планшет или телефон, после подключения для доступа к сети Internet мы должны зайти в браузер и увидеть следующее окно:

Рис. 3.10 Стартовая страница

После того как мы увидели стартовую страницу мы ввели логин и пароль, при удачном наборе логина и пароля мы увидим следующее окно

Рис. 3.11 Диалоговое окно с сообщением о корректном подключении к сети

Если же логин и пароль не совпали то вас автоматически перебросит на стартовую страницу, а если этот логин или пароль используется то вы получите следующее сообщение:

Рис. 3.12 Диалоговое окно с сообщением о том что Ваш логин и пароль уже задействован

4. Экспериментальный раздел

Тестирование программного обеспечения - процесс исследования программного обеспечения (ПО) с целью получения информации о качестве продукта.

Существующие на сегодняшний день методы тестирования ПО не позволяют однозначно и полностью выявить все дефекты и установить корректность функционирования анализируемой программы, поэтому все существующие методы тестирования действуют в рамках формального процесса проверки исследуемого или разрабатываемого ПО.

Такой процесс формальной проверки или верификации может доказать, что дефекты отсутствуют с точки зрения используемого метода. (То есть, нет никакой возможности точно установить или гарантировать отсутствие дефектов в программном продукте с учётом человеческого фактора, присутствующего на всех этапах жизненного цикла ПО).

Существует множество подходов к решению задачи тестирования и верификации ПО, но эффективное тестирование сложных программных продуктов - это процесс в высшей степени творческий, не сводящийся к следованию строгим и чётким процедурам или созданию таковых.

С точки зрения ISO 9126 [1], Качество (программных средств) можно определить как совокупную характеристику исследуемого ПО с учётом следующих составляющих:

· Надёжность.

· Сопровождаемость.

· Практичность.

· Эффективность.

· Мобильность.

· Функциональность.

Уровни тестирования

Модульное тестирование (юнит-тестирование) - тестируется минимально возможный для тестирования компонент, например, отдельный класс или функция. Часто модульное тестирование осуществляется разработчиками ПО.

Интеграционное тестирование - тестируются интерфейсы между компонентами, подсистемами. При наличии резерва времени на данной стадии тестирование ведётся итерационно, с постепенным подключением последующих подсистем.

Системное тестирование - тестируется интегрированная система на её соответствие требованиям.

Альфа-тестирование - имитация реальной работы с системой штатными разработчиками, либо реальная работа с системой потенциальными пользователями/заказчиком. Чаще всего альфа-тестирование проводится на ранней стадии разработки продукта, но в некоторых случаях может применяться для законченного продукта в качестве внутреннего приёмочного тестирования. Иногда альфа-тестирование выполняется под отладчиком или с использованием окружения, которое помогает быстро выявлять найденные ошибки. Обнаруженные ошибки могут быть переданы тестировщикам для дополнительного исследования в окружении, подобном тому, в котором будет использоваться ПО.

Бета-тестирование - в некоторых случаях выполняется распространение версии с ограничениями (по функциональности или времени работы) для некоторой группы лиц, с тем чтобы убедиться, что продукт содержит достаточно мало ошибок. Иногда бета-тестирование выполняется для того, чтобы получить обратную связь о продукте от его будущих пользователей.

Часто для свободного/открытого ПО стадия альфа-тестирования характеризует функциональное наполнение кода, а бета-тестирования - стадию исправления ошибок. При этом как правило на каждом этапе разработки промежуточные результаты работы доступны конечным пользователям.

Статическое и динамическое тестирование

Описанные выше техники - тестирование белого ящика и тестирование чёрного ящика - предполагают, что код исполняется, и разница состоит лишь в той информации, которой владеет тестировщик. В обоих случаях это динамическое тестирование.

При статическом тестировании программный код не выполняется - анализ программы происходит на основе исходного кода, который вычитывается вручную, либо анализируется специальными инструментами. В некоторых случаях, анализируется не исходный, а промежуточный код (такой как байт-код или код на MSIL).

Также к статическому тестированию относят тестирование требований, спецификаций, документации.

Тестирование "белого ящика" и "чёрного ящика"

В терминологии профессионалов тестирования, фразы "тестирование белого ящика" и "тестирование чёрного ящика" относятся к тому, имеет ли разработчик тестов доступ к исходному коду тестируемого ПО, или же тестирование выполняется через пользовательский интерфейс либо прикладной программный интерфейс, предоставленный тестируемым модулем.

При тестировании белого ящика (англ. white-box testing, также говорят - прозрачного ящика), разработчик теста имеет доступ к исходному коду программ и может писать код, который связан с библиотеками тестируемого ПО. Это типично для юнит-тестирования (англ. unit testing), при котором тестируются только отдельные части системы. Оно обеспечивает то, что компоненты конструкции - работоспособны и устойчивы, до определённой степени. При тестировании белого ящика используются метрики покрытия кода.

При тестировании чёрного ящика, тестировщик имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования. Например, тестирующий модуль может виртуально нажимать клавиши или кнопки мыши в тестируемой программе с помощью механизма взаимодействия процессов, с уверенностью в том, все ли идёт правильно, что эти события вызывают тот же отклик, что и реальные нажатия клавиш и кнопок мыши. Как правило, тестирование чёрного ящика ведётся с использованием спецификаций или иных документов, описывающих требования к системе. Как правило, в данном виде тестирования критерий покрытия складывается из покрытия структуры входных данных, покрытия требований и покрытия модели (в тестировании на основе моделей).

При тестировании серого ящика разработчик теста имеет доступ к исходному коду, но при непосредственном выполнении тестов доступ к коду, как правило, не требуется.

Если "альфа-" и "бета-тестирование" относятся к стадиям до выпуска продукта (а также, неявно, к объёму тестирующего сообщества и ограничениям на методы тестирования), тестирование "белого ящика" и "чёрного ящика" имеет отношение к способам, которыми тестировщик достигает цели.

Бета-тестирование в целом ограничено техникой чёрного ящика (хотя постоянная часть тестировщиков обычно продолжает тестирование белого ящика параллельно бета-тестированию). Таким образом, термин "бета-тестирование" может указывать на состояние программы (ближе к выпуску чем "альфа"), или может указывать на некоторую группу тестировщиков и процесс, выполняемый этой группой. Итак, тестировщик может продолжать работу по тестированию белого ящика, хотя ПО уже "в бете" (стадия), но в этом случае он не является частью "бета-тестирования" (группы/процесса).

Организация тестирования программ.

Тестирование программного продукта одновременно проводится в 3-ёх направлениях:

Проверка кода (review): Тестер просматривает исходный код визуально и пытается найти нём ошибки, а так же различные несоответствия кода и требований к нему. Под требованием понимается стандарт, которого придерживается разработчики данного проекта, реакция на те или иные действия со стороны среды воздействия на ПО, поведение программного продукта в различных ситуациях.

Тестирование высокого уровня: Здесь главная цель тестирования - выяснить, удовлетворяет ли разработка всем требованиям заказчика. Для программного продукта пишутся эмуляторы, с помощью которых тестер может наблюдать за работой системы в роли оператора. Он видит, как система осуществляет диалог с пользователем, какие сообщения она выдаёт, как реагирует на различные события, сохраняет информацию и т.д. Большинство обнаруживаемых ошибок на этом этапе связанно с ошибками взаимодействия программного продукта с пользователем - вывод ошибочных сообщений, не правильная реакция на запрос от оператора и т.п.

Тестирование низкого уровня: Тестер проверяет, на сколько логически полно исходный код покрывает всё возможные варианты работы системы, для которой он разрабатывается.

Существуют стандарты тестирования, они зависят от того в какой области применяется разрабатываемое ПО. Ниже представлены некоторые из них:

Стандарт ISO 9001

ISO 9001 - стандарт, основанный на принципах контроля качества. В нём, по существу, задаются ключевые функциональные требования, для каждого из которых нужно сказать, что делается, как сделать то, что сказано, и иметь возможность показать, что было сделано. Реализация данного стандарта в среде ПО - ISO 9000-3.

Стандарт ISO/IEC 12207 и IEEE/EIA 12207

ISO/IEC 12207 - это международный стандарт, описывающий структуру процессов жизненного цикла ПО от концепции до изъятия из обращения. Стандарт IEEE/EIA 12207 - адаптация ISO/IEC 12207 для США.

В соответсвии с этими стандартами в той или иной отрасли производства выдвигаются требования к тестрованию ПО. Например в авиации США на основе ISO/IEC 12207 был выработан стандарт RTCA (Requirements and Technical Concepts for Aviation). В нём перечисленны следующие требования к тестированию верхнего и нуижнего уровня: Тестирование верхнего уровня:


Подобные документы

  • Принципы формирования имен в сети Internet, элементы браузера Internet Explorer. Добавление Web-страницы в список избранных. Средства ускорения доступа к часто посещаемым страницам. Способы обеспечения доступа к ресурсам сети Internet в автономном режиме.

    лабораторная работа [3,4 M], добавлен 24.05.2015

  • Internet. Протоколы сети Internet. Принцип работы Internet. Прикладные программы. Возможности в Internet? Правовые нормы. Политика и Internet. Этические нормы и частная коммерческая Internet. Соображения безопасности. Объем сети Internet.

    дипломная работа [128,8 K], добавлен 23.06.2007

  • История развития сети Internet. Общая характеристика сети Internet. Протоколы. Услуги предоставляемые сетью. Internet - мировая сеть. Компьютерная зависимость. Internet-2. Нехватка мощностей Internet. Создание Internet-2. Структура Internet-2.

    контрольная работа [19,5 K], добавлен 06.10.2006

  • Организация локальной сети на основе Windows Server 2008. Выбор сетевой архитектуры, маршрутизатора для доступа в Internet. Характеристика программного обеспечения, выбранного в качестве сетевого экрана для защиты информации от внешних атак и вирусов.

    курсовая работа [166,8 K], добавлен 07.05.2015

  • Общие характеристики операционной системы Android. Разработка приложения на основе создания менеджера файлов. Получение с помощью приложения доступа к файлам, хранящимся в "облачном хранилище" в сети Интернет. Расчет стоимости программного обеспечения.

    дипломная работа [2,7 M], добавлен 03.04.2015

  • История сети Internet. Из чего состоит Internet? Протоколы сети Internet. Сети с коммутацией пакетов. Межсетевой протокол (IP). Протокол управления передачей (ТСР). Доменная система имён. Правовые нормы. Сетевая этика. Соображения безопасности.

    реферат [129,3 K], добавлен 23.11.2006

  • Хранение данных в сети Internet. Гипертекстовые документы, виды файлов. Графические файлы, их виды и особенности. Поисковые системы и правила поиска информации. Обзор поисковых систем сети Internet. Все о поисковых системах Yandex, Google, Rambler.

    курсовая работа [918,3 K], добавлен 26.03.2011

  • История создания сети Internet, ее административное устройство и архитектура. Организация доступа к сети, структура ее функционирования. Характеристика интернет-протоколов. Особенности сетевой этики. Охрана труда и техника безопасности при работе на ПК.

    курсовая работа [43,8 K], добавлен 20.05.2013

  • Общие сведения об Internet/Intranet. Основы технологии Internet/Intranet. Принципы организации WWW. Корпоративные Intranet-сети. Преимущества и недостатки Internet/Intranet-технологии. Архитектура Internet/Intranet-приложений.

    реферат [27,6 K], добавлен 23.05.2007

  • Стадии разработки сайта для научно-производственного предприятия "Этна – Информационные технологии" с целью его последующего размещения в глобальной сети. Сайт представляет собой справочно-информационную систему. Алгоритм метода доступа к Internet.

    дипломная работа [747,1 K], добавлен 20.05.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.