Разработка 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.2015Internet. Протоколы сети 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